Сейчас на форуме: Slinger, Rio (+5 невидимых)

 eXeL@B —› Основной форум —› ACProtect - фишки протектора
Посл.ответ Сообщение

Ранг: 17.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 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
mov ebp, esp
sub esp, 10

Есть ли способ точно восстановить то, что было сперто? Ато вдруг будет сперто много или неудастся догадаться.

2. С импортом все вроде просто. Все символьные строки закодированы Кодирование осуществляется просто сдвигом каждого символа циклически на 3 бита в лево/право (уже непомню, не суть). Поэтому получается импорт безовсякого импрека. А так вообще прот импорт поганит. Переходники детские строит. Но есть апи, которую прот любит особо - MessageBoxA. С ней все непросто.

3.OEP есть, импорт есть, дамп есть... в дампе есть туева хуча CALL 0058D0DD. По адресу вызова там определяется, какой код необходимо выполнить. Нужный код расшифровывается (xor, ключ однобайтовый , вычисляется из адреса EP в программу. он равен D8) и на место вызова вместо CALL 0058D0DD записывается CALL на расшифрованый участок кода. Восстановил все эти участки.

4. Остались приколы с функцией MessageBoxA... Вот тут я кончился. Вот адреса по которым происходит что-то плохое
4EC333, 4F29FB, 4F9BEA, 4F61E6, 4DFB32

Если кто-то бодался с этим протом, то не сочтите за труд поделиться опытом. А если кто захочет впервые поковыряться в нем, то маленькое напутствие: в проте дофига слоев расшифровки. Это убивает.. Все они выглядят примерно одинакого. В цикле расшифровки куча мусора, бесполезных прыжков и трюков со стеком. Но каждый цикл заканчивается условным прыжком в младшие адреса кода. Зная это проходить слои расшивровки немного легче: находите первый условный прыг на младшие адреса и ставите бряк на следующую за прыгом команду. Вот вроде бы (не пользовался) и скрипт который помогает проходить слои расшифровки (скрипт не мой, я его чесно спер ) ):
LABEL01:
find eip,#0F85????FFFF#
add $RESULT,6
bp $RESULT
esto
bc eip
msgyn "One more layer?"
cmp $RESULT,0
jne LABEL01
ret



PS: Интерес представляет собственно распаковка проги. То, что счетчик запусков можно сбросить стерев файло в корне диска C я знаю )
PPS: то, до чего я дошел могу выложить, если кто-то не хочет начинать распаковку с нуля




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 18 октября 2006 09:38
· Личное сообщение · #2

[HIGHLIGHT=asm]
push ebp
mov ebp, esp
sub esp, 10 [/HIGHLIGHT]
А откуда ты знаешь что на стеке выделяется именно 10h bytes? Или это библиотечная функция?



Ранг: 17.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 18 октября 2006 10:14
· Личное сообщение · #3

1. гуляя по коду протектора наткнулся на сравнение EP с двумя константами: 18C000 и FFC30. Отсюда и подумал, что OEP это 4FFC30. Значит 6 байт сперто и их надо вернуть как-то.
2. посмотрел как выглядят регистры и стек на EP в запротекченой проге
3. посмотрел как выглядят регистры и стек на falseOEP (4FFC36) в запротекченой проге.
4. в 6 байт уместился приведенный код. После его выполнения в строке 4FFC36 распакованой проги, значения регистров EBP и ESP такиеже как и в запротекченой.

Т.е. если коротко, то я просто попытался догадаться... Не удивлюсь особо, если я всеж не угадал.



Ранг: 17.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 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 Иначе записывается адрес функции.

Пропатчив понятным образом этот цикл я получил нормальную секцию импорта.

00597A1A and dword ptr [esi+C], 0 ; занопить. здесь затирается Name RVA

00597A87 mov byte ptr [ebx], al ; занопить блок. Здесь затирается имя библы
00597A89 inc ebx
00597A8A cmp byte ptr [ebx], al
00597A8C ^jnz short 00597A87

00597B16 mov byte ptr [ebx], al ; занопить блок. Здесь затирается имя api-функции
00597B18 inc ebx
00597B19 cmp byte ptr [ebx], al
00597B1B ^jnz short 00597B16

00597B2C jnz short 00597B38 ; заменить на jmps. Типа мессажбокс ненайден

00597B46 je short 00597B5D ; занопить чтобы небыло переходников

00597B52 je short 00597B5D ; занопить чтобы небыло переходников

00597BBE mov dword ptr [edi], eax ;занопить, чтобы получить чистую секцию импорта


00597BDA - конец цикла создания импорта. стоя на этой строке можно дампить .idata
Вот и все с импортом. И без импрека (хоть это и не показатель)

В атаче бинарник секции .idata
39c8_18.10.2006_CRACKLAB.rU.tgz - .idata.rar



Ранг: 103.1 (ветеран), 3thx
Активность: 0.070.01
Статус: Участник

Создано: 18 октября 2006 11:07
· Личное сообщение · #5

Sax0n
Я тож с етой прогой калупалса, но наткнувшись на пошифрованные куски кода забил, механизм понял, но после 4 шт. решил, что бесполезно и их там еще много... так их там много?

-----
Crack your mind, save the planet




Ранг: 17.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 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 байт) а там будет что-то типа:

0058E322 mov dword ptr [edx+C], eax ; это было сперто
0058E325 xor esp, ecx ; мусор
0058E327 xor esp, ecx ; мусор
0058E329 mov eax, dword ptr [ebx] ; и это было сперто
0058E32B retn


Собственно вернуть на место сами инструкции достаточно проблематично. Нужно, как мне представляется, писать анализатор этих 0x0A байтных функций и искать там полезные 5байт кода. Я лишь расшифровал все функции и во все места с CALL _DISPATCHER прописал жестко CALL _Decrypted_code_N



Ранг: 200.3 (наставник)
Активность: 0.090
Статус: Участник

Создано: 18 октября 2006 12:48 · Поправил: DrFits
· Личное сообщение · #7

Глянул прогу - IAT правил почти как и ты, импорт прикрутил к дампу, поправил EP проги, т.к. на основе EP раскриптовывается участок в ВМ (ВМ-сдампил тоже(чтоб ВМ неразбирать) => неотрезал). Остался один баг - щас лень смотреть, окошко выскакивает с ошибкой, функционал недопер как посмотреть.Если надо - могу выложить что получилось.
P.S:Сильно не пинать - я новичек;)

-----
Само плывет в pуки только то, что не тонет.





Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 18 октября 2006 13:05
· Личное сообщение · #8

Sax0n пишет:
Собственно вернуть на место сами инструкции достаточно проблематично. Нужно, как мне представляется, писать анализатор этих 0x0A байтных функций и искать там полезные 5байт кода.

На самом деле это не сложно, вариантов мусора у прота немного, анализатор довольно простой. Но в принципе способ который ты использовал наиболее быстр и описан в статьях ещё Нарвахой.

Sax0n пишет:
4. Остались приколы с функцией MessageBoxA...

Эту функцию прот использует для своих апи (читай SDK), возможно это апи проверки регистрации - тогда можно просто вернуть TRUE, а возможно они отвечают за расшифровку кусков кода - тогда без ключа наверно нераспаковать (хотя мож там есть какие-то дыры в реализации крипты, но их надо искать, а на такой редкий прот как ацпр тратить время...), вообщем всё зависит от того насколько хорошо афторы проги прочитали сдк прота и как они его использовали.

DrFits пишет:
т.к. на основе EP раскриптовывается участок в ВМ (ВМ-сдампил тоже(чтоб ВМ неразбирать) => неотрезал)

ВМ ? данунах =) раньше там всегда был обыкновенный метаморф, хотя мож версия какая-то новая... что ты называешь ВМ ?



Ранг: 200.3 (наставник)
Активность: 0.090
Статус: Участник

Создано: 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уки только то, что не тонет.





Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 18 октября 2006 14:02
· Личное сообщение · #10

DrFits пишет:
который эмулирует спертые инструкции, я думал что это ВМ называется

ВМ - виртуальная машина. Если инструкции просто преобразовали (полиморф, метаморф) и разбавили мусором, то какая тут ВМ ? %) это обычное исполнение команд процессором, а не обработка псевдокода функцией виртуальной машины.



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 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



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 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




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 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




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 19 октября 2006 03:47
· Личное сообщение · #14

Первый скрипт запускается с оригинального оеп, второй с оеп пакера.
Таблицу импорта, можно востановить если поймать пакер при распаковке секции с импортом, но нужно несколько джампов или занопить или изменить (не помню уже), когда пакер распакует секцию, нужно её сдампить и прикрудить к дампу, а дальше пе редактором всё поправить.



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 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
Остальное пустяки если захотите сами востановите, ну все вроде там ни чего больше нет!



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 20 октября 2006 04:26
· Личное сообщение · #16

Вот примерно так должно пулучится если кому интересно вот
slil.ru/23277786



Ранг: 17.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 20 октября 2006 14:14
· Личное сообщение · #17

Все. Разобрался сам со всеми вопросами. всем помогавшим большое спасибо за помощь. тема раскрыта.


 eXeL@B —› Основной форум —› ACProtect - фишки протектора
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати