eXeL@B —› Протекторы —› Разбор Asprotect VM на примере MyProxy 7.10 |
Посл.ответ | Сообщение |
|
Создано: 02 ноября 2005 06:28 · Личное сообщение · #1 |
|
Создано: 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 |
|
Создано: 02 ноября 2005 12:17 · Личное сообщение · #3 |
|
Создано: 02 ноября 2005 12:29 · Личное сообщение · #4 |
|
Создано: 02 ноября 2005 12:37 · Поправил: Smon · Личное сообщение · #5 |
|
Создано: 02 ноября 2005 20:51 · Личное сообщение · #6 |
|
Создано: 03 ноября 2005 00:49 · Личное сообщение · #7 |
|
Создано: 03 ноября 2005 04:16 · Личное сообщение · #8 |
|
Создано: 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 штук. А ведь, по опыту, и в других секциях их немало. Предыдущую прогу, упакованную такм же аспром с ВМ, я временно оставил только потому, что устал в ручную править эти ВМ. А скрипт уже не удовлетворял меня по своим возможностям. Какие есть идеи по снижению ручного труда? |
|
Создано: 03 ноября 2005 10:29 · Личное сообщение · #10 Можно сдампить всё выделенные регионы и прицепить их к дампу - некрасиво конечно, но ведь работает.=) А со скриптами - универсальный сделать практически невозможно - ну если только на каждую версию свой... ----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels |
|
Создано: 03 ноября 2005 12:59 · Личное сообщение · #11 Smon пишет: А со скриптами - универсальный сделать практически невозможно - ну если только на каждую версию свой... ну немного подправлять сигны конечно приходилось, но при этом скрипт нормально работал с данной версией ВМ (аспры с 1,31 до 2,1 вроде), конечно с новой (которая в 2,2beta и т.п.) он не справлялся, там нужно опять разбирать работу вм и основательно переделывать скрипт. |
|
Создано: 04 ноября 2005 20:29 · Личное сообщение · #12 |
|
Создано: 04 ноября 2005 22:21 · Личное сообщение · #13 |
|
Создано: 04 ноября 2005 23:01 · Личное сообщение · #14 |
|
Создано: 20 декабря 2005 13:48 · Личное сообщение · #15 Так, кто-нибудь распаковал до конца эту прогу? Я периодически к ней возвращаюсь, хотелось бы доделать. Импорт восстановил, ВМ - вроде прошел, эмулировал обход таблицы Call EAX (или EBP в оригинале) и в одном из адресов (ЕАХ) наткнулся на то, что при обращении к LoadLibraryA возникает ошибка. В оригинале, в этом месте динамически подгружаются несколько библиотек rasapi32.dll, rasman.dll,NETAPI32.dll, TAPI32.dll. Не могу понять, причину возникновения ошибки. Может кто уже наступал на эти грабли? |
|
Создано: 29 декабря 2005 07:27 · Личное сообщение · #16 Похоже, никто не занимается этой прогой. А жаль. Любопытная защита. Asprotect 2.x + собственные наработки. Или я ошибаюсь? Второй раз уже сталкиваюсь с подобной защитой: сначало идет аспр с ВМ, затем Exception типа 0EEDFADE и через них создание новых потоков. Кто-то сталкивался с этим симбиозом, как лучше его решать? И правильно ли я понимаю, что это уже наработки разработчика проги? |
eXeL@B —› Протекторы —› Разбор Asprotect VM на примере MyProxy 7.10 |