![]() |
eXeL@B —› Основной форум —› ACProtect - фишки протектора |
Посл.ответ | Сообщение |
|
Создано: 18 октября 2006 08:46 · Личное сообщение · #1 Таргет: AutoFlowchart v1.01 (_hччp://www.ezprog.com/autoflowchart.exe ~1.3Мб) Протекчена по всей видимости ACProtect'ом. Какой версии и им ли точно незнаю ибо peid молчит. Но по ощущениям оно. Из той инфы, которя была у меня по данному проту, удалось нарыть только толковое описание антиотладочных приемов. Все остальное - боян.Поковыряв его денек пришел вот к чему: 1. OEP. Находится легко бряком на доступ к секции CODE. Но и тут похож засада небольшая. Бряк срабатывает на 4FFC36, но похож 6 байт сперто и OEP = 4FFC30. Недостающие байты я сочинил ![]() push ebp
Есть ли способ точно восстановить то, что было сперто? Ато вдруг будет сперто много или неудастся догадаться. 2. С импортом все вроде просто. Все символьные строки закодированы ![]() 3.OEP есть, импорт есть, дамп есть... в дампе есть туева хуча CALL 0058D0DD. По адресу вызова там определяется, какой код необходимо выполнить. Нужный код расшифровывается (xor, ключ однобайтовый ![]() 4. Остались приколы с функцией MessageBoxA... Вот тут я кончился. Вот адреса по которым происходит что-то плохое 4EC333, 4F29FB, 4F9BEA, 4F61E6, 4DFB32
Если кто-то бодался с этим протом, то не сочтите за труд поделиться опытом. А если кто захочет впервые поковыряться в нем, то маленькое напутствие: в проте дофига слоев расшифровки. Это убивает.. Все они выглядят примерно одинакого. В цикле расшифровки куча мусора, бесполезных прыжков и трюков со стеком. Но каждый цикл заканчивается условным прыжком в младшие адреса кода. Зная это проходить слои расшивровки немного легче: находите первый условный прыг на младшие адреса и ставите бряк на следующую за прыгом команду. Вот вроде бы (не пользовался) и скрипт который помогает проходить слои расшифровки (скрипт не мой, я его чесно спер ![]() LABEL01:
PS: Интерес представляет собственно распаковка проги. То, что счетчик запусков можно сбросить стерев файло в корне диска C я знаю ![]() PPS: то, до чего я дошел могу выложить, если кто-то не хочет начинать распаковку с нуля ![]() |
|
Создано: 18 октября 2006 09:38 · Личное сообщение · #2 |
|
Создано: 18 октября 2006 10:14 · Личное сообщение · #3 1. гуляя по коду протектора наткнулся на сравнение EP с двумя константами: 18C000 и FFC30. Отсюда и подумал, что OEP это 4FFC30. Значит 6 байт сперто и их надо вернуть как-то. 2. посмотрел как выглядят регистры и стек на EP в запротекченой проге 3. посмотрел как выглядят регистры и стек на falseOEP (4FFC36) в запротекченой проге. 4. в 6 байт уместился приведенный код. После его выполнения в строке 4FFC36 распакованой проги, значения регистров EBP и ESP такиеже как и в запротекченой. Т.е. если коротко, то я просто попытался догадаться... Не удивлюсь особо, если я всеж не угадал. ![]() |
|
Создано: 18 октября 2006 10:50 · Поправил: Sax0n · Личное сообщение · #4 Распишу пока восстановление импорта по шагам (мож кому пригодится) 1. Запустить прогу под отладчиком, IAT (гдето в секции .idata) и поставить хардварный бряк на запись в ячейку. 2. Перезапустить прогу. Сработает бряк. Теперь можно изучить цикл создания импорта и найти начало цикла. 3. Начало цикла - 597A0D. Хардбряк на выполнение на этот адрес. И снова перезапуск проги. 4.1 Затирается Name RVA в Import Directory Table - ссылка на имя библы. 4.2 Расшифровывается имя библы 4.3 Если еще не загружена такая библиотека, то она грузится 4.4 Расшифрованое имя затирается 4.5 Обрабатываются функции 4.5.1 Расшифровывается имя функции 4.5.2 Запрашивается адрес функции (GetProcAddress) 4.5.3 Если функция MessageBoxA - то строится переходник (отдельно) 4.5.4 Если библа из kernel32 или user32 то строится переходник 4.5.5 Иначе записывается адрес функции. Пропатчив понятным образом этот цикл я получил нормальную секцию импорта.
00597BDA - конец цикла создания импорта. стоя на этой строке можно дампить .idata Вот и все с импортом. И без импрека (хоть это и не показатель) ![]() В атаче бинарник секции .idata ![]() ![]() |
|
Создано: 18 октября 2006 11:07 · Личное сообщение · #5 |
|
Создано: 18 октября 2006 12:11 · Личное сообщение · #6 Styx Пошифрованные куски - это ты имел в виду типа CALL 0058D0DD в моем описании? если да, то таких вызовов в проге 999 (посчитал на калькуляторе ![]() Прот тырит из проги 5байт (естественно дизасмом, естественно инструкции не разрываются), и вставляет на это место CALL _DISPATCHER (5 байт). Там в цикле просматривается таблица (TABLE START : 58D382, TABLE END : 58E31E) Если элемент таблицы совпадает с адресом вызова, то индекс этого элемента используется для вычисления адреса куска кода со спертыми инструкциями (сам код зашифрован, расшифровка - xor с D8 побайтно). Адрес нужного куска вычисляется как CRYPTED_CODE_START+I*0x0A, где I - индекс найденного элемента в предыдущей таблице (CRYPTED_CODE_START : 58E322, CRYPTED_CODE_SIZE : 2706) Потом код расшифровывается и по адресу вызова прописывается CALL _Decrypted_code_N (5 байт) а там будет что-то типа:
Собственно вернуть на место сами инструкции достаточно проблематично. Нужно, как мне представляется, писать анализатор этих 0x0A байтных функций и искать там полезные 5байт кода. Я лишь расшифровал все функции и во все места с CALL _DISPATCHER прописал жестко CALL _Decrypted_code_N ![]() |
|
Создано: 18 октября 2006 12:48 · Поправил: DrFits · Личное сообщение · #7 Глянул прогу - IAT правил почти как и ты, импорт прикрутил к дампу, поправил EP проги, т.к. на основе EP раскриптовывается участок в ВМ (ВМ-сдампил тоже(чтоб ВМ неразбирать) => неотрезал). Остался один баг - щас лень смотреть, окошко выскакивает с ошибкой, функционал недопер как посмотреть.Если надо - могу выложить что получилось. P.S:Сильно не пинать - я новичек;) ----- Само плывет в pуки только то, что не тонет. ![]() |
|
Создано: 18 октября 2006 13:05 · Личное сообщение · #8 Sax0n пишет: Собственно вернуть на место сами инструкции достаточно проблематично. Нужно, как мне представляется, писать анализатор этих 0x0A байтных функций и искать там полезные 5байт кода. На самом деле это не сложно, вариантов мусора у прота немного, анализатор довольно простой. Но в принципе способ который ты использовал наиболее быстр и описан в статьях ещё Нарвахой. Sax0n пишет: 4. Остались приколы с функцией MessageBoxA... Эту функцию прот использует для своих апи (читай SDK), возможно это апи проверки регистрации - тогда можно просто вернуть TRUE, а возможно они отвечают за расшифровку кусков кода - тогда без ключа наверно нераспаковать (хотя мож там есть какие-то дыры в реализации крипты, но их надо искать, а на такой редкий прот как ацпр тратить время...), вообщем всё зависит от того насколько хорошо афторы проги прочитали сдк прота и как они его использовали. DrFits пишет: т.к. на основе EP раскриптовывается участок в ВМ (ВМ-сдампил тоже(чтоб ВМ неразбирать) => неотрезал) ВМ ? данунах =) раньше там всегда был обыкновенный метаморф, хотя мож версия какая-то новая... что ты называешь ВМ ? ![]() |
|
Создано: 18 октября 2006 13:20 · Поправил: DrFits · Личное сообщение · #9 Ну а как еще называть код, который эмулирует спертые инструкции, я думал что это ВМ называется, хотя там метаморф тоже присутствует? [HIGHLIGHT=asm]00404479 8B30 mov esi, dword ptr ds:[eax] 0040447B E8 40A11800 call 0058E5C0 ; пример инструкции спертой 00404480 E8 45A11800 call 0058E5CA 00404485 55 push ebp [/HIGHLIGHT] Просто в метаморфе раскриптовываются инструкции для эмуляции, а потом они выполняются, как я писал - в раскриптовке учавствует и значение EP программы, поэтому я в своем дампе поменял EP на первоначальную ----- Само плывет в pуки только то, что не тонет. ![]() |
|
Создано: 18 октября 2006 14:02 · Личное сообщение · #10 DrFits пишет: который эмулирует спертые инструкции, я думал что это ВМ называется ВМ - виртуальная машина. Если инструкции просто преобразовали (полиморф, метаморф) и разбавили мусором, то какая тут ВМ ? %) это обычное исполнение команд процессором, а не обработка псевдокода функцией виртуальной машины. ![]() |
|
Создано: 18 октября 2006 18:05 · Личное сообщение · #11 Sax0n пишет: Из той инфы, которя была у меня по данному проту, удалось нарыть только толковое описание антиотладочных приемов. Все остальное - боян. Плохо искал инфы полным полно! ;) Антиотладочных приемов? Так по сравнению к примеру с Ехекриптором о них и говорить не стоит! Импорт так же востановить проще чем у некотрых пакеров! Единственая проблема как правило Коде реплейс с использованием дебаг регистров! При небольшом количестве можно обойтись элементарным трейсом! Соде сплайсинг если используется так вообще элементарный! 5стырено ? тут и говорить не о чем К примеру вот начло в самом ACprotecte2 0079E4B1 61 popad 0079E4B2 8B06 mov eax,dword ptr ds:[esi] 0079E4B4 8F05 058B7800 pop dword ptr ds:[788B05] 0079E4BA FF35 058B7800 push dword ptr ds:[788B05] 0079E4C0 5E pop esi 0079E4C1 56 push esi 0079E4C2 8F05 45887800 pop dword ptr ds:[788845] 0079E4C8 FF35 45887800 push dword ptr ds:[788845] 0079E4CE C70424 FC6B4000 mov dword ptr ss:[esp],ACProtec.00406BFC 0079E4D5 8F05 7D887800 pop dword ptr ds:[78887D] 0079E4DB FF15 7D887800 call dword ptr ds:[78887D] 0079E4E1 A1 B4375200 mov eax,dword ptr ds:[5237B4] 0079E4E6 8B00 mov eax,dword ptr ds:[eax] 0079E4E8 52 push edx 0079E4E9 891C24 mov dword ptr ss:[esp],ebx 0079E4EC 57 push edi 0079E4ED BF CCE84600 mov edi,ACProtec.0046E8CC 0079E4F2 8BDF mov ebx,edi 0079E4F4 5F pop edi 0079E4F5 50 push eax 0079E4F6 B8 D5887800 mov eax,ACProtec.007888D5 0079E4FB 8918 mov dword ptr ds:[eax],ebx 0079E4FD 58 pop eax 0079E4FE 90 nop 0079E4FF 90 nop 0079E500 60 pushad 0079E501 EB 0B jmp short ACProtec.0079E50E Вот востановленое начало 004FEE90 > 55 push ebp 004FEE91 8BEC mov ebp,esp 004FEE93 83C4 F0 add esp,-10 004FEE96 B8 D4EB4F00 mov eax,ACProtec.004FEBD4 004FEE9B E8 5C7DF0FF call ACProtec.00406BFC 004FEEA0 A1 B4375200 mov eax,dword ptr ds:[5237B4] 004FEEA5 8B00 mov eax,dword ptr ds:[eax] 004FEEA7 E8 20FAF6FF call ACProtec.0046E8CC 004FEEAC 8B0D 28355200 mov ecx,dword ptr ds:[523528] ; ACProtec.00525D38 004FEEB2 A1 B4375200 mov eax,dword ptr ds:[5237B4] 004FEEB7 8B00 mov eax,dword ptr ds:[eax] 004FEEB9 8B15 8CBF4700 mov edx,dword ptr ds:[47BF8C] ; ACProtec.0047BFD8 004FEEBF E8 20FAF6FF call ACProtec.0046E8E4 004FEEC4 8B0D 44345200 mov ecx,dword ptr ds:[523444] ; ACProtec.00525D2C 004FEECA A1 B4375200 mov eax,dword ptr ds:[5237B4] 004FEECF 8B00 mov eax,dword ptr ds:[eax] 004FEED1 8B15 4CB94700 mov edx,dword ptr ds:[47B94C] ; ACProtec.0047B998 004FEED7 E8 08FAF6FF call ACProtec.0046E8E4 004FEEDC A1 B4375200 mov eax,dword ptr ds:[5237B4] 004FEEE1 8B00 mov eax,dword ptr ds:[eax] 004FEEE3 E8 7CFAF6FF call ACProtec.0046E964 004FEEE8 E8 BB5AF0FF call ACProtec.004049A8 ![]() |
|
Создано: 19 октября 2006 01:58 · Личное сообщение · #12 В этой проге вобще все просто коде реплейс в одном месте Если очистить от мусора то будет примерно так 0058D0DD 60 pushad 0058D0DE 90 nop .................................................. 0058D288 E8 13510000 call UAutoFlo.005923A0 0058D28D 8B4424 20 mov eax,dword ptr ss:[esp+20] 0058D291 33C9 xor ecx,ecx 0058D293 8B9C8D 82234000 mov ebx,dword ptr ss:[ebp+ecx*4+402382] 0058D29A 039D EA614000 add ebx,dword ptr ss:[ebp+4061EA] 0058D2A0 3BC3 cmp eax,ebx 0058D2A2 74 07 je short UAutoFlo.0058D2AB 0058D2A4 90 nop 0058D2A5 90 nop 0058D2A6 90 nop 0058D2A7 90 nop 0058D2A8 41 inc ecx 0058D2A9 ^ EB E8 jmp short UAutoFlo.0058D293 0058D2AB 8DB5 22334000 lea esi,dword ptr ss:[ebp+403322] 0058D2B1 B8 0A000000 mov eax,0A 0058D2B6 F7E1 mul ecx 0058D2B8 03F0 add esi,eax 0058D2BA 51 push ecx 0058D2BB 56 push esi 0058D2BC 8A85 CD204000 mov al,byte ptr ss:[ebp+4020CD] 0058D2C2 0AC0 or al,al 0058D2C4 75 28 jnz short UAutoFlo.0058D2EE ...................................................................... ................. 0058D2F8 90 nop 0058D2F9 5E pop esi 0058D2FA 8BFE mov edi,esi 0058D2FC 90 nop 0058D305 59 pop ecx 0058D306 56 push esi 0058D307 90 nop .......................................................... 0058D30F 50 push eax .......................................................... 0058D323 90 nop 0058D324 58 pop eax 0058D325 03C3 add eax,ebx 0058D327 90 nop 0058D328 90 nop 0058D329 90 nop 0058D32A 5E pop esi 0058D32B 56 push esi 0058D32C 33C9 xor ecx,ecx 0058D32E 83F9 08 cmp ecx,8 0058D331 74 0E je short UAutoFlo.0058D341 ...................................................................... ................... 0058D337 8B448C 04 mov eax,dword ptr ss:[esp+ecx*4+4] 0058D33B 89048C mov dword ptr ss:[esp+ecx*4],eax 0058D33E 41 inc ecx 0058D33F ^ EB ED jmp short UAutoFlo.0058D32E 0058D341 89348C mov dword ptr ss:[esp+ecx*4],esi 0058D344 60 pushad 0058D345 E8 00000000 call UAutoFlo.0058D34A 0058D34A 5E pop esi ...................................................................... ........ 0058D37F 61 popad 0058D380 61 popad 0058D381 C3 retn все что между этими командами залить нопами и вот по аддрессам у меня они начинаются с 0058E320 до 00590A27 копипастнуть из запущеной проги в дамп там такого вида команды 00590A14 03D6 add edx,esi 00590A16 33C9 xor ecx,ecx 00590A18 894D FC mov dword ptr ss:[ebp-4],ecx 00590A1B 2BD6 sub edx,esi 00590A1D C3 retn 00590A1E 33CA xor ecx,edx 00590A20 8B46 64 mov eax,dword ptr ds:[esi+64] 00590A23 33CA xor ecx,edx 00590A25 8903 mov dword ptr ds:[ebx],eax 00590A27 C3 retn 0058E446 8B45 F8 mov eax,dword ptr ss:[ebp-8] 0058E449 33CF xor ecx,edi 0058E44B 03C3 add eax,ebx 0058E44D C3 retn 0058E44E 33FA xor edi,edx 0058E450 8B40 08 mov eax,dword ptr ds:[eax+8] 0058E453 03D8 add ebx,eax 0058E455 33FA xor edi,edx 0058E457 C3 retn Код что привел DrFits можно вообще убрать и переписать на стандартный дельфи вот так 00404473 55 push ebp 00404474 8BEC mov ebp,esp 00404476 53 push ebx 00404477 56 push esi 00404478 57 push edi 00404479 A1 37FC4F00 mov eax,dword ptr ds:[4FFC37] 0040447E 85C0 test eax,eax 00404480 74 4B je short UAutoFlo.004044CD 00404482 8B30 mov esi,dword ptr ds:[eax] 00404484 33DB xor ebx,ebx 00404486 8B78 04 mov edi,dword ptr ds:[eax+4] 00404489 33D2 xor edx,edx 0040448B 55 push ebp 0040448C 68 B9444000 push UAutoFlo.004044B9 00404491 64:FF32 push dword ptr fs:[edx] 00404494 64:8922 mov dword ptr fs:[edx],esp 00404497 3BF3 cmp esi,ebx 00404499 7E 14 jle short UAutoFlo.004044AF 0040449B 8B04DF mov eax,dword ptr ds:[edi+ebx*8] 0040449E 43 inc ebx 0040449F 891D 40465200 mov dword ptr ds:[524640],ebx 004044A5 85C0 test eax,eax 004044A7 74 02 je short UAutoFlo.004044AB 004044A9 > FFD0 call eax 004044AB 3BF3 cmp esi,ebx 004044AD ^ 7F EC jg short UAutoFlo.0040449B 004044AF 33C0 xor eax,eax 004044B1 5A pop edx 004044B2 59 pop ecx 004044B3 59 pop ecx 004044B4 64:8910 mov dword ptr fs:[eax],edx 004044B7 EB 14 jmp short UAutoFlo.004044CD 004044B9 ^ E9 FEF9FFFF jmp UAutoFlo.00403EBC 004044BE E8 31FFFFFF call UAutoFlo.004043F4 004044C3 E8 08FDFFFF call UAutoFlo.004041D0 004044C8 E8 57FDFFFF call UAutoFlo.00404224 ![]() |
|
Создано: 19 октября 2006 03:42 · Личное сообщение · #13 Кошдато, написал пару скриптов для этого прота, но, не оптимизировал их, приведу их текст здесь, кому интересно может их оптимизировать: Коде сплисинг: // Для работы скрипта нужно отредактировать строку: // findop eip,#E8????1F00#, E8????1F00 - это CALL XXXXXX, а в этом вызове JMP DWORD PTR // DS:[хххххх]. // Скрипт предназначен для востановления этих вызовов в UltraProtect 1.x -> RISCO Software Inc. var _eip var _oep var _memcpy var _eip2 start: bpmc gpa "memcpy", "msvcrt.dll" mov _memcpy, $RESULT mov _oep,eip mov eip,401000 l1: findop eip,#E8????2?00# cmp $RESULT,0 je l3 l2: mov eip,$RESULT mov _eip,eip sti sti mov _eip2,eip exec pushad push 5 push {_eip2} push {_eip} call {_memcpy} popad ende mov eip,_eip jmp l1 l3: mov eip,_oep mov _oep,eip mov eip,401000 l4: findop eip,#E8????1?00# cmp $RESULT,0 je not l5: mov eip,$RESULT mov _eip,eip sti sti mov _eip2,eip exec pushad push 5 push {_eip2} push {_eip} call {_memcpy} popad ende mov eip,_eip jmp l4 not: mov eip,_oep ret Украденные байты: var faund var _CreateFileW start: bpmc gpa "CreateFileW","kernel32.dll" mov _CreateFileW,$RESULT bp _CreateFileW esto esto bc eip rtu rtu find eip,#C8000000??????????????90909090# cmp $RESULT,0 je not mov faund,$RESULT sub faund,E bpwm faund,1 esto esto find eip,#61# cmp $RESULT,0 je not bp $RESULT find eip,#60# cmp $RESULT,0 je not bp $RESULT bpmc esto bc eip sti cmt eip, "This is stolen bytes !!!" esto bc eip find eip,#FF25??????00# cmp $RESULT,0 je not bphws $RESULT, "x" MSG "Writen stolen bytes." esto bphwc eip sti cmt eip, "This is OEP !!!" ret not: MSG "Not supported." ret ![]() |
|
Создано: 19 октября 2006 03:47 · Личное сообщение · #14 Первый скрипт запускается с оригинального оеп, второй с оеп пакера. Таблицу импорта, можно востановить если поймать пакер при распаковке секции с импортом, но нужно несколько джампов или занопить или изменить (не помню уже), когда пакер распакует секцию, нужно её сдампить и прикрудить к дампу, а дальше пе редактором всё поправить. ![]() |
|
Создано: 19 октября 2006 07:26 · Личное сообщение · #15 Вот 004074BC - FF25 20565000 jmp dword ptr ds:[505620] <--------0059178D 004074B4 - FF25 20565000 jmp dword ptr ds:[505620] <------- UAutoFlo.0059178D 0059178D это еще одна процедура с коде реплейс самя большая процедура там 004F5C1D 61 popad 004F5C1E 8D85 F0FEFFFF lea eax,dword ptr ss:[ebp-110] 004F5C24 33C9 xor ecx,ecx 004F5C26 BA 00010000 mov edx,100 004F5C2B E8 D4D6F0FF call UAutoFlo.00403304 004F5C30 6A 00 push 0 004F5C32 6A 00 push 0 004F5C34 8D85 F0FEFFFF lea eax,dword ptr ss:[ebp-110] 004F5C3A 50 push eax 004F5C3B 6A FF push -1 004F5C3D E8 7218F1FF call UAutoFlo.004074B4 004F5C42 8D85 E0FEFFFF lea eax,dword ptr ss:[ebp-120] 004F5C48 8D95 F0FEFFFF lea edx,dword ptr ss:[ebp-110] 004F5C4E B9 00010000 mov ecx,100 004F5C53 E8 CCEDF0FF call UAutoFlo.00404A24 004F5C58 8B85 E0FEFFFF mov eax,dword ptr ss:[ebp-120] 004F5C5E 8D95 E4FEFFFF lea edx,dword ptr ss:[ebp-11C] 004F5C64 E8 F32FF1FF call UAutoFlo.00408C5C 004F5C69 83BD E4FEFFFF 00 cmp dword ptr ss:[ebp-11C],0 004F5C70 74 6D je short UAutoFlo.004F5CDF 004F5C72 8D45 F4 lea eax,dword ptr ss:[ebp-C] 004F5C75 8D95 F0FEFFFF lea edx,dword ptr ss:[ebp-110] 004F5C7B B9 00010000 mov ecx,100 004F5C80 E8 9FEDF0FF call UAutoFlo.00404A24 004F5C85 8D95 D8FEFFFF lea edx,dword ptr ss:[ebp-128] 004F5C8B 8B45 F4 mov eax,dword ptr ss:[ebp-C] 004F5C8E E8 C92FF1FF call UAutoFlo.00408C5C 004F5C93 8B8D D8FEFFFF mov ecx,dword ptr ss:[ebp-128] 004F5C99 8D85 DCFEFFFF lea eax,dword ptr ss:[ebp-124] 004F5C9F BA C85D4F00 mov edx,UAutoFlo.004F5DC8 ; ASCII " Register to: " 004F5CA4 E8 17EEF0FF call UAutoFlo.00404AC0 004F5CA9 8B95 DCFEFFFF mov edx,dword ptr ss:[ebp-124] 004F5CAF 8B45 FC mov eax,dword ptr ss:[ebp-4] 004F5CB2 8B80 20040000 mov eax,dword ptr ds:[eax+420] 004F5CB8 E8 DB7EF6FF call UAutoFlo.0045DB98 004F5CBD 33D2 xor edx,edx 004F5CBF 8B45 FC mov eax,dword ptr ss:[ebp-4] 004F5CC2 8B80 E4030000 mov eax,dword ptr ds:[eax+3E4] 004F5CC8 E8 BB7DF6FF call UAutoFlo.0045DA88 004F5CCD 33D2 xor edx,edx 004F5CCF 8B45 FC mov eax,dword ptr ss:[ebp-4] 004F5CD2 8B80 D8030000 mov eax,dword ptr ds:[eax+3D8] 004F5CD8 E8 4FA0F7FF call UAutoFlo.0046FD2C 004F5CDD EB 49 jmp short UAutoFlo.004F5D28 004F5CDF 6A 01 push 1 004F5CE1 6A 00 push 0 004F5CE3 8D45 FB lea eax,dword ptr ss:[ebp-5] 004F5CE6 50 push eax 004F5CE7 6A FF push -1 004F5CE9 E8 C617F1FF call UAutoFlo.004074B4 004F5CEE 8D95 D0FEFFFF lea edx,dword ptr ss:[ebp-130] 004F5CF4 33C0 xor eax,eax 004F5CF6 8A45 FB mov al,byte ptr ss:[ebp-5] 004F5CF9 E8 9230F1FF call UAutoFlo.00408D90 004F5CFE 8B8D D0FEFFFF mov ecx,dword ptr ss:[ebp-130] 004F5D04 8D85 D4FEFFFF lea eax,dword ptr ss:[ebp-12C] 004F5D0A BA E05D4F00 mov edx,UAutoFlo.004F5DE0 ; ASCII " Trial Time : " 004F5D0F E8 ACEDF0FF call UAutoFlo.00404AC0 004F5D14 8B95 D4FEFFFF mov edx,dword ptr ss:[ebp-12C] 004F5D1A 8B45 FC mov eax,dword ptr ss:[ebp-4] 004F5D1D 8B80 20040000 mov eax,dword ptr ds:[eax+420] 004F5D23 E8 707EF6FF call UAutoFlo.0045DB98 004F5D28 60 pushad 004F5D29 6A 04 push 4 004F5D2B 6A 00 push 0 004F5D2D 6A 00 push 0 004F5D2F 68 FFFFFFFF push -1 004F5D34 E8 8317F1FF call UAutoFlo.004074BC 004F5D39 EB 1E jmp short UAutoFlo.004F5D59 00419532 E8 F1FEFFFF call UAutoFlo.00419428 Остальное пустяки если захотите сами востановите, ну все вроде там ни чего больше нет! ![]() |
|
Создано: 20 октября 2006 04:26 · Личное сообщение · #16 |
|
Создано: 20 октября 2006 14:14 · Личное сообщение · #17 |
![]() |
eXeL@B —› Основной форум —› ACProtect - фишки протектора |
Эта тема закрыта. Ответы больше не принимаются. |