![]() |
eXeL@B —› Основной форум —› Нужен ACProtect 2.0 |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 03 января 2007 09:32 · Поправил: HoBleen · Личное сообщение · #1 Скачал из раздела протекторов ACProtect 2.0, попробовал запаковать блокнот, но в зависимости от опций либо вообще не запускается, либо пишет что, мол, все ок (создано нное кол-во переходников), но по-настоящему опция не навесилась. Пробовал и на других файлах - результат тот же. В связи с этим прошу дать проги (можно крякмисы) с опциями защиты "Code Replace" и "API Call into protection code". ![]() |
|
Создано: 03 января 2007 09:33 · Личное сообщение · #2 |
|
Создано: 03 января 2007 09:52 · Личное сообщение · #3 |
|
Создано: 03 января 2007 10:00 · Личное сообщение · #4 |
|
Создано: 03 января 2007 11:05 · Личное сообщение · #5 |
|
Создано: 03 января 2007 19:54 · Личное сообщение · #6 |
|
Создано: 03 января 2007 23:25 · Личное сообщение · #7 pavka пишет: Хочешь поковырять Code Replace ковыряй сам ACProtect 2.0 причем лучше последней сборки! Нету там нифига! Качал с сайта www.ultraprotect.com/ и лайт, и профешонал - там только защита ОЕР хардварными бряками. Научился снимать все, кроме Code Replace - их видел только в 1-х версиях, снимаю с пом. скрипта, API Call into protection code - вообще не понял что это такое, воровство ОЕР с хардварными бряками - сейчас изучаю. ![]() |
|
Создано: 04 января 2007 00:20 · Личное сообщение · #8 HoBleen пишет: Нету там нифига! Качал с сайта www.ultraprotect.com/ и лайт, и профешонал - там только защита ОЕР хардварными бряками. Ты просто не понимаешь о чем идет речь ! Там практический весь код Code Replace Если у тебя есть желание я могу тебе дать ACProtect 2.0 где премерно % 90 кода востановлено он практический распакован но без ключа там уже получается смесь распаковки и взлома сизифов труд в общем но для навыка прохождения CR полезно ![]() |
|
Создано: 04 января 2007 03:07 · Личное сообщение · #9 pavka пишет: Там практический весь код Code Replace Это то дерьмо, которое динамически расшифровывается и прыгает потом в выделенный участок памяти ? Если да, то я помнится дампил сей участок, и прикручивал его в виде отдельной секции, а указатель на него лежит в дампе и элементарно правится на нужный. ----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels ![]() |
|
Создано: 04 января 2007 04:00 · Поправил: HoBleen · Личное сообщение · #10 pavka пишет: Ты просто не понимаешь о чем идет речь ! Я так понимаю что CR - это спертые 5 байт, в самых первых версиях был просто call на них, в 1.3+ - на одну-единственную ф-ю, которая анализировала адрес возврата и по нему исполняла уже чуть разбавленный мусором код в опр. участке памяти (по крайней мере в анпакмисах с tut4you.com это так). Если ошибаюсь - поправь меня. ![]() |
|
Создано: 04 января 2007 05:03 · Личное сообщение · #11 Smon Это в старых версиях была примитивная смесь реплейса испласинга решалась элементарным копипастом и убираним процедур записи! А тут ну примерно так вот начало на примереACProtect 2.0 00498535 68 F4084B00 push ACProtec.004B08F4 ; ASCII "JCALG1_GetInfo" 0049853A 8B45 F4 mov eax,dword ptr ss:[ebp-C] 0049853D 50 push eax 0049853E E8 E9E9F6FF call ACProtec.00406F2C ; jmp to kernel32.GetProcAddress 00498543 A3 70E16B00 mov dword ptr ds:[6BE170],eax 00498548 60 pushad <-------- начало 00498549 F9 stc 0049854A 40 inc eax 0049854B 81E2 5B2929D8 and edx,D829295B 00498551 4F dec edi 00498552 72 0E jb short ACProtec.00498562 00498554 73 0C jnb short ACProtec.00498562 00498556 7A 76 jpe short ACProtec.004985CE 00498558 17 pop ss 00498559 77 15 ja short ACProtec.00498570 0049855B ^ 79 E8 jns short ACProtec.00498545 0049855D 07 pop es 0049855E 0000 add byte ptr ds:[eax],al 00498560 0073 EB add byte ptr ds:[ebx-15],dh далее если в двух словах готовится служебный код который будет записывать код рабочий вот он готов 0049A481 006D 00 add byte ptr ss:[ebp],ch 0049A484 51 push ecx 0049A485 803E 68 cmp byte ptr ds:[esi],68 0049A488 B9 25000000 mov ecx,25 0049A48D 75 1C jnz short ACProtec.0049A4AB 0049A48F 90 nop 0049A490 90 nop 0049A491 90 nop 0049A492 90 nop 0049A493 57 push edi 0049A494 8DBD 002D4000 lea edi,dword ptr ss:[ebp+402D00] 0049A49A F3:A6 repe cmps byte ptr es:[edi],byte ptr ds:[> 0049A49C 0BC9 or ecx,ecx 0049A49E 75 0A jnz short ACProtec.0049A4AA 0049A4A0 90 nop 0049A4A1 90 nop 0049A4A2 90 nop 0049A4A3 90 nop 0049A4A4 FE85 252D4000 inc byte ptr ss:[ebp+402D25] 0049A4AA 5F pop edi 0049A4AB 803E 35 cmp byte ptr ds:[esi],35 0049A4AE 75 13 jnz short ACProtec.0049A4C3 0049A4B0 90 nop 0049A4B1 90 nop 0049A4B2 90 nop 0049A4B3 90 nop 0049A4B4 B9 07000000 mov ecx,7 0049A4B9 F3:A6 repe cmps byte ptr es:[edi],byte ptr ds:[> 0049A4BB 0BC9 or ecx,ecx 0049A4BD 74 0D je short ACProtec.0049A4CC 0049A4BF 90 nop 0049A4C0 90 nop 0049A4C1 90 nop 0049A4C2 90 nop 0049A4C3 59 pop ecx 0049A4C4 46 inc esi 0049A4C5 ^ E2 BD loopd short ACProtec.0049A484 0049A4C7 EB 26 jmp short ACProtec.0049A4EF 0049A4C9 90 nop 0049A4CA 90 nop 0049A4CB 90 nop 0049A4CC 60 pushad 0049A4CD E8 1FE9FFFF call ACProtec.00498DF1 0049A4D2 B8 00010000 mov eax,100 0049A4D7 E8 22E9FFFF call ACProtec.00498DFE 0049A4DC 8BC8 mov ecx,eax 0049A4DE 8DBD 6D404000 lea edi,dword ptr ss:[ebp+40406D] естествено каждый участок отработав превращается обратно в мусор и далее собственно из за чего весь сыр бор 00498551 B8 FF770100 mov eax,177FF 00498556 E8 E9A1F6FF call ACProtec.00402744 0049855B 8B15 D8375200 mov edx,dword ptr ds:[5237D8] ; ACProtec.0073DBCC 00498561 8902 mov dword ptr ds:[edx],eax 00498563 B8 FF310000 mov eax,31FF 00498568 E8 D7A1F6FF call ACProtec.00402744 0049856D 8B15 34345200 mov edx,dword ptr ds:[523434] ; ACProtec.0073DBD0 00498573 8902 mov dword ptr ds:[edx],eax 00498575 B8 FF4F0000 mov eax,4FFF 0049857A E8 C5A1F6FF call ACProtec.00402744 0049857F 8B15 74385200 mov edx,dword ptr ds:[523874] ; ACProtec.0073DBD4 00498585 8902 mov dword ptr ds:[edx],eax 00498587 E9 CD6C0000 jmp ACProtec.0049F259 это рабочий код его мы и искали 0049F259 90 nop 0049F25A 90 nop 0049F25B 90 nop 0049F25C 90 nop 0049F25D 90 nop 0049F25E A1 14375200 mov eax,dword ptr ds:[523714] 0049F263 33D2 xor edx,edx 0049F265 8910 mov dword ptr ds:[eax],edx 0049F267 A1 0C345200 mov eax,dword ptr ds:[52340C] 0049F26C 33D2 xor edx,edx 0049F26E 8910 mov dword ptr ds:[eax],edx 0049F270 C705 645D5200 00000100 mov dword ptr ds:[525D64],10000 Из всей этой каши нам нужно выделить только рабочий код все остальное удалить Код криптующий обратно очень приметный идеально подходит для меток ну и совет держать окно дампа в виде диззасама Вот из такого дерьма все основные процедуры в сабже ![]() |
|
Создано: 04 января 2007 05:10 · Личное сообщение · #12 |
|
Создано: 04 января 2007 06:41 · Личное сообщение · #13 |
|
Создано: 05 января 2007 00:27 · Личное сообщение · #14 pavka А смысл разбирать это дерьмо ? Если и так работает, самокриптуется и самораскриптуется. Просто выделять память под сплайс и всё, или менять указатели, они всёрно в чистом виде лежат. ![]() ----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels ![]() |
|
Создано: 05 января 2007 01:34 · Личное сообщение · #15 |
|
Создано: 05 января 2007 03:25 · Личное сообщение · #16 Самый большой плюс в том, что эта гавноопция весьма ненадёжна (большинство программ под ней не работают вообще), следовательно вероятность встречи данного прота с данной опцией на шароварке практически минимальна. ![]() ----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels ![]() |
|
Создано: 05 января 2007 03:44 · Личное сообщение · #17 Smon Если бы там было все так просто! Какие то процедуры действительно можно не трогать они без проблемм отработают на примере анпакми от Теди Роджерса если сдампить Unpakmee c OEP Obfucation Enabled С точки 0048058A U> 61 popad 0048058B 56 push esi 0048058C 8F05 81B84600 pop dword ptr ds:[46B881] 00480592 FF35 81B84600 push dword ptr ds:[46B881] 00480598 890C24 mov dword ptr ss:[esp],ecx 0048059B 891C24 mov dword ptr ss:[esp],ebx 0048059E 892C24 mov dword ptr ss:[esp],ebp 004805A1 8925 89B94600 mov dword ptr ds:[46B989],esp 004805A7 FF35 89B94600 push dword ptr ds:[46B989] 004805AD 8F05 59B84600 pop dword ptr ds:[46B859] 004805B3 FF35 59B84600 push dword ptr ds:[46B859] 004805B9 8F05 E9B94600 pop dword ptr ds:[46B9E9] 004805BF 8B2D E9B94600 mov ebp,dword ptr ds:[46B9E9] 004805C5 51 push ecx 004805C6 8F05 F5B94600 pop dword ptr ds:[46B9F5] 004805CC FF35 F5B94600 push dword ptr ds:[46B9F5] 004805D2 C70424 FFFFFFFF mov dword ptr ss:[esp],-1 004805D9 90 nop 004805DA 90 nop 004805DB 60 pushad 004805DC E8 0B000000 call UnPackMe.004805EC 004805E1 ^ 77 83 ja short UnPackMe.00480566 004805E3 04 24 add al,24 004805E5 04 C3 add al,0C3 004805E7 7A 11 jpe short UnPackMe.004805FA 004805E9 7B 0F jpo short UnPackMe.004805FA 004805EB ^ 76 83 jbe short UnPackMe.00480570 004805ED C4047A les eax,fword ptr ds:[edx+edi*2] 004805F0 F67B F4 idiv byte ptr ds:[ebx-C] 004805F3 ^ 79 E8 jns short UnPackMe.004805DD 004805F5 - E9 FFFFFF71 jmp 724805F9 004805FA ^ EB F8 jmp short UnPackMe.004805F4 код нормально отработает и прога будет работать ! Другая част реплайса своебразная защита от дампа она дофига чего испольльзует для раскриптовки и просто так в дампе работать не будет ;) И все это не выделеной памяти а в коде и правка любого байта до того как код отработает сам понимаешь к чему приведет! По этому только один способ выделить рабочий код и копипаст в дамп и занопить мусор! Хотя я видел у китайцев исходники проги для очистки реплейса но они по моему только для конкретной проги ну и все в квадратиках в общем хрен че поймешь! ![]() |
|
Создано: 05 января 2007 03:48 · Личное сообщение · #18 |
|
Создано: 05 января 2007 03:59 · Поправил: HoBleen · Личное сообщение · #19 |
|
Создано: 05 января 2007 13:12 · Личное сообщение · #20 Гм, а что в версии 2.0 code replace`ом стали называть то что раньше было 'Embedded protector' ? Code replace эте пятибайтовые куски которые тырятся по всему коду и которые можно восстановить в оригинале 1 в 1, либо просто переделать процедуру их обработки. А 'Embedded protector' это куски кода которые динамически распаковываются и запаковываются каждый своей процедурой (т.е. листинг чего выше привёл pavka), единственная функция к которой такое прот применяет сам - это стар проги (OEP obfuscation), а чтоб такое было и в других частях кода - надо в исходники защищаемой проги вставлять call mark`и. ![]() |
|
Создано: 05 января 2007 13:31 · Поправил: HoBleen · Личное сообщение · #21 Да бог с ним, с этим именованием, меня больше волнует вот что: в хелпе написано, что для ACProtectAPI используется MessageBoxA с параметрами -1, @some_struct, 0, (1 или 0). А в реальных прогах используется MessageBoxA с параметрами (-1, 0, 0, 5), (-1, 0, 0, 2) либо (-1, 0, 0, 3). Еще хукается RegisterHotKeyA, обычный ли это переходник или он используется для регистрации? ![]() |
|
Создано: 05 января 2007 21:20 · Личное сообщение · #22 |
|
Создано: 06 января 2007 12:55 · Личное сообщение · #23 |
|
Создано: 07 января 2007 06:53 · Личное сообщение · #24 |
|
Создано: 07 января 2007 06:58 · Личное сообщение · #25 |
|
Создано: 07 января 2007 07:48 · Личное сообщение · #26 |
|
Создано: 07 января 2007 08:01 · Личное сообщение · #27 |
|
Создано: 09 января 2007 08:23 · Личное сообщение · #28 |
|
Создано: 09 января 2007 17:48 · Личное сообщение · #29 |
|
Создано: 09 января 2007 22:09 · Личное сообщение · #30 |
. 1 . 2 . >> |
![]() |
eXeL@B —› Основной форум —› Нужен ACProtect 2.0 |