Сейчас на форуме: zds, -Sanchez- (+9 невидимых)

 eXeL@B —› Протекторы —› Разбор Asprotect VM на примере MyProxy 7.10
Посл.ответ Сообщение


Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 02 ноября 2005 06:28
· Личное сообщение · #1

В этом топе я и может кто ещё попробуем разковырять вм аспра. В этом топе не надо флудить, флуд будет удаляться. Разговор только на тему вм! Вот инфа о проге:
Сайт: myproxy.desofto.com/index_ru.htm
Размер: 856 КБ
Аспр: 2.ХХ
ОЕР(найдено скриптом от sanniassin): 00D502E5




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 02 ноября 2005 06:37
· Личное сообщение · #2

Как найти вызов вм? Если потрейсить от ОЕР чуть-чуть, вы увидите вот такой код:
00D50919 2BC5 SUB EAX, EBP
00D5091B 68 F206D500 PUSH 0D506F2
00D50920 E8 DBF61800 CALL 00EE0000
00D50925 68 FD07D500 PUSH 0D507FD
00D5092A E8 D1F61800 CALL 00EE0000

Второй call - вызов вм.
Скрипт для поиска ОЕР я приаттачил.

8a5c_aspr_1.32_2.0_OEP.txt




Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 02 ноября 2005 12:17
· Личное сообщение · #3

> Второй call - вызов вм.

А первый разве нет?




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 02 ноября 2005 12:29
· Личное сообщение · #4

DrGolova пишет:
А первый разве нет?

) Ну тоже) Только после второго прога запускается, а после первого нет Там видать какая-то инструкция типа mov проэмулена, а во втором типа call/jmp.



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 02 ноября 2005 12:37 · Поправил: Smon
· Личное сообщение · #5

по мойму можно считать любой аспровый калл входом в вм - будь там эмуляция или простые ворованные байты вперемешку с мусором
PS: Главное чтобы Mario555 не придрался опять к моим словам

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




Ранг: 115.3 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 02 ноября 2005 20:51
· Личное сообщение · #6

Рад бы по участвовать, но это сново Delphi




Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 03 ноября 2005 00:49
· Личное сообщение · #7

> Рад бы по участвовать, но это сново Delphi

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



Ранг: 115.3 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 03 ноября 2005 04:16
· Личное сообщение · #8

Мне показалась Сишные программы новый протектор криптует лучше, т.к. там аспровое начало значителино длиннее и код витееватие, а Delphi пройденный этап.



Ранг: 136.5 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 03 ноября 2005 06:58
· Личное сообщение · #9

Посмотрел эту прогу. До ОЕР дошел по другому (через последнее исключение, затем на последний call перед Retn), а там уже близко. так мне проще, скрипт занимается всего несколько строк.
Нечто подобное я ранее уже встречал. Протрассировал начало проги и нашел следующее (у Вас будут другие адреса, последние 4 цифры должны совпасть).
01060920 E8 DBF61900 CALL 01200000 ; 1- вход в ВМ
выход из нее находится в секции 01200000 +10000. Ставим на нее бряк и немного трассируем
0121009F FF6424 FC JMP NEAR [DWORD SS:ESP-4] это адрес возврата из ВМ
01060A74 53 PUSH EBX ; -1 выход из ВМ
....
01060619 E8 E2F91900 CALL 01200000 ; 2- вход в ВМ
.....
0121009F FF6424 FC JMP NEAR [DWORD SS:ESP-4] ; MyProxy.00406CF4
00406CF4 E8 0793C700 CALL 01080000 ; -2 выход из ВМ
И сразу попадаем на вызов эмулируемой аспром АПИ-функции. F2,F9 и появляется
00406CF4 E8 0B93F200 CALL 01330004 ; -2
бряк на Retn функции VirtualAlloc и в стеке по смещению видим
$+40 793B4B16 kernel32.GetCommandLineA
можно бряк на начало VirtualAllocEx и тогда в стеке та же функции, но по смещению
$+5C 793B4B16 kernel32.GetCommandLineA
Вообщем все то же, что мы и раньше видели (топик Asprotect от А до Я).
Мне кажется, основной вопрос состоит в том, как всю распаковку автоматизировать. Ведь этих
CALL 01200000 только в этой секции 01060000 насчитал 28 штук. А ведь, по опыту, и в других секциях их немало. Предыдущую прогу, упакованную такм же аспром с ВМ, я временно оставил только потому, что
устал в ручную править эти ВМ. А скрипт уже не удовлетворял меня по своим возможностям. Какие есть идеи по снижению ручного труда?



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 03 ноября 2005 10:29
· Личное сообщение · #10

Можно сдампить всё выделенные регионы и прицепить их к дампу - некрасиво конечно, но ведь работает.=) А со скриптами - универсальный сделать практически невозможно - ну если только на каждую версию свой...

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels





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

Создано: 03 ноября 2005 12:59
· Личное сообщение · #11

Smon пишет:
А со скриптами - универсальный сделать практически невозможно - ну если только на каждую версию свой...

ну немного подправлять сигны конечно приходилось, но при этом скрипт нормально работал с данной версией ВМ (аспры с 1,31 до 2,1 вроде), конечно с новой (которая в 2,2beta и т.п.) он не справлялся, там нужно опять разбирать работу вм и основательно переделывать скрипт.



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

Создано: 04 ноября 2005 20:29
· Личное сообщение · #12

После нахождении ОЕР, можно снимать дамп или VM разбирать надо?
Прошу прощение - если это примити за флуд




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 04 ноября 2005 22:21
· Личное сообщение · #13

dragon-gor
Дамп снимать можно, но он работать не будет просто

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.





Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 04 ноября 2005 23:01
· Личное сообщение · #14

Работать он будет прекрасно если заодно сдампить вирутальную машину, аспровую длл, и блоки с пермученым кодом. Просто некрасиво это выглядит. Других причин разбирать вм я пока не вижу



Ранг: 136.5 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 20 декабря 2005 13:48
· Личное сообщение · #15

Так, кто-нибудь распаковал до конца эту прогу? Я периодически к ней возвращаюсь, хотелось бы доделать. Импорт восстановил, ВМ - вроде прошел, эмулировал обход таблицы Call EAX (или EBP в оригинале) и в одном из адресов (ЕАХ) наткнулся на то, что при обращении к LoadLibraryA возникает ошибка. В оригинале, в этом месте динамически подгружаются несколько библиотек rasapi32.dll, rasman.dll,NETAPI32.dll, TAPI32.dll. Не могу понять, причину возникновения ошибки. Может кто уже наступал на эти грабли?



Ранг: 136.5 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 29 декабря 2005 07:27
· Личное сообщение · #16

Похоже, никто не занимается этой прогой. А жаль. Любопытная защита. Asprotect 2.x + собственные наработки. Или я ошибаюсь? Второй раз уже сталкиваюсь с подобной защитой: сначало идет аспр с ВМ, затем Exception типа 0EEDFADE и через них создание новых потоков. Кто-то сталкивался с этим симбиозом, как лучше его решать? И правильно ли я понимаю, что это уже наработки разработчика проги?


 eXeL@B —› Протекторы —› Разбор Asprotect VM на примере MyProxy 7.10
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати