![]() |
eXeL@B —› Протекторы —› Появился новый AsProtect 2.2 |
<< . 1 . 2 . 3 . 4 . 5 . >> |
Посл.ответ | Сообщение |
|
Создано: 08 января 2006 11:03 · Личное сообщение · #1 Зайдите на www.aspack.com. Там появился новый аспр. Я слил закинул в отладчик. Вобщем мне некогда, но беглый осмотр таков: Ю Все, Солодовников перестал использовать исключения. Ю VM разбита на гораздо большее количество частей в оперативе Ю Прыжки между VM осуществляются более извратно. Ю Переходники на АПИ больше не патчатся, а выполнябтся сразу (хотя я такое уже встречал) Все некогда, кто, что наковыряет - пишите думаю всем будет интересно. ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 16 января 2006 14:22 · Личное сообщение · #2 |
|
Создано: 16 января 2006 15:50 · Личное сообщение · #3 |
|
Создано: 16 января 2006 17:22 · Личное сообщение · #4 |
|
Создано: 17 января 2006 11:11 · Личное сообщение · #5 Mario555 будь другом запость хоть несколько видов jxx как они в VM выглядят, а то я больше на логгер полагаюсь, а это ни есть ГУД. И вот еще, там есть инструкции SUB ESI,EDI CALL VM_call так вот без разницы, какой флаг будет выставлен, VM сама проверяет эти регистры на равенство. Инвертированые я называю переходы, где перед входом в VM_call выставляется !ZF=1, а в VM сбрасывается в 0 и проверяется на 0, и наоборот. А есть такие, что выставляешь разные флаги по разному - два перехода, трасируешь программу (как есть), вообще узел сравнения проскакивает. Сегодня вроде отоспался и прогу добил, там такой прикол, что для эбаута почти копия VM (как для основного кода) используется. Я даже думал минут 20 эбаут восстанавливать или проще свой написать, решил восстанавливать. Теперь только закрытие проги осталось вылечить. ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 18 января 2006 02:13 · Личное сообщение · #6 |
|
Создано: 18 января 2006 05:37 · Личное сообщение · #7 |
|
Создано: 18 января 2006 23:03 · Личное сообщение · #8 PE_Kill пишет: Mario555 будь другом запость хоть несколько видов jxx как они в VM выглядят, а то я больше на логгер полагаюсь, а это ни есть ГУД. И вот еще, там есть инструкции SUB ESI,EDI CALL VM_call так вот без разницы, какой флаг будет выставлен, VM сама проверяет эти регистры на равенство. я вообще непонимаю о чём ты говоришь %)) jxx в VM выглядят как функция их эмуляции (каждого типа) соответственно в коде это, как и остальные эмулируемые команды, просто call VM внутри которого всё и выполняется... а то что идёт непосредственно до call vm никак не влияет на тип эмулируемой инструкции. ![]() |
|
Создано: 18 января 2006 23:11 · Личное сообщение · #9 |
|
Создано: 18 января 2006 23:13 · Личное сообщение · #10 |
|
Создано: 19 января 2006 08:10 · Личное сообщение · #11 |
|
Создано: 19 января 2006 08:35 · Личное сообщение · #12 2.20 у меня нет. Если так уж охота поковырять VM, то ковыряй сам АСПР 2.20 там как я глянул нехилая VM, вот только продираться сквозь нее придется в полной темноте. Mario555 но ведь не все там динамическое. Есть же какие то места, по которым можно определить, что вот это 100% jb потому что вот здесь это, а вот здесь это (наподобие push XXXXXXXX -> call XXXXXXXX (70%)). Я понимаю что все эмулится в VM call. В VM например после одного сравнения там есть прыжок наподобие mov eax,ebx {eax=4} 00000001 jmp [eax*4+00000002] 00000002 мусор 00000003 push eax 00000004 mov ebx,esi {в ESI лежит EFL} 00000005 call XXXXXXXX и таких блоков - 15. а после каждого блока идет возврат в основной VM call где проверяется AL (test al,al). И уже в зависимости от флага Z формируется переход. Так вот эти 15 блоков команд и есть эмулируемые команды? Если да то jmp [eax*4+XXXXXXXX] это переход на эмулируемую команду. Поправь меня, если я ошибаюсь. ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 19 января 2006 12:58 · Личное сообщение · #13 PE_Kill пишет: Так вот эти 15 блоков команд и есть эмулируемые команды? да, тоесть это эмулируемые jxx и соответственно код
это выбор типа jxx. А выбор общего типа команды осуществляется кодом вида
вот так ВМ и отламывается... определяем все типы, "собираем" их из аспра и автоматизируем восстановление оригиналов (скриптом либо прогой). ![]() |
|
Создано: 19 января 2006 13:07 · Личное сообщение · #14 |
|
Создано: 19 января 2006 13:36 · Личное сообщение · #15 |
|
Создано: 19 января 2006 20:51 · Личное сообщение · #16 |
|
Создано: 20 января 2006 00:35 · Личное сообщение · #17 Smon пишет: 2.2 был выложен на экзетулзе, правда без регнума, а без регнума его не распаковать и не сломать соответсно... Угу, она у меня есть, без регнума... Лежит, ждёт лучших дней... PE_Kill пишет: 2.20 у меня нет. Если так уж охота поковырять VM, то ковыряй сам АСПР 2.20 там как я глянул нехилая VM, вот только продираться сквозь нее придется в полной темноте. В том и дело, намного легче и быстрее когда оригинал защищённой проги под рукой ![]() ![]() |
|
Создано: 20 января 2006 06:55 · Поправил: PE_Kill · Личное сообщение · #18 Все jcc я нашел: jpe <-> jbe jpo <-> ja теперь вот другая проблема. В VM эмулятся 5 видов CMP. Я нашел 3.
Я понял как определяется по какому регистру проводится сравнение. Те блоки команд, где я привел примеры, я знаю что делают, просто мысль сформулировать не могу (опять бессонная ночь). Помогите плиз что за оставшиеся 2 блока, что там эмулится? ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 20 января 2006 15:30 · Поправил: sanniassin · Личное сообщение · #19 |
|
Создано: 21 января 2006 02:55 · Личное сообщение · #20 |
|
Создано: 21 января 2006 06:38 · Поправил: PE_Kill · Личное сообщение · #21 Bronco видишь ли последний раз, когда я ковырял АСПР было 1.5 года назад (или больше?), тогда у меня дома сдох комп, а на работе отключили инет и я перестал кракать. За такое большое время столько изменилось. Я был в шоке, когда узнал как АСПР теперь защищает импорт, а что было когда я узнал что есть еще какая то VM... Теперь пытаюсь нагнать все, что пропустил за эти полтора года и помоч таким же как я или новичкам (статью написать может быть). ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 21 января 2006 10:19 · Личное сообщение · #22 |
|
Создано: 21 января 2006 14:14 · Личное сообщение · #23 SergSh пишет: на сколько я помню импорт в твоей проге не использует VirtualAlloc это точно, но вообще я видел только 4 проги, в которых используется VirtualAlloc, а все остальные как и эта. Кстати, мой скрипт восстанавливает и такие и такие. Я даже извратился и определяю DLL а не только функции и вписываю в новую IAT группами (каждая DLL отделяется 00000000 а не каждая ф-ия). Экономия места ![]() ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 21 января 2006 15:44 · Личное сообщение · #24 |
|
Создано: 21 января 2006 16:08 · Поправил: stalker · Личное сообщение · #25 |
|
Создано: 21 января 2006 18:41 · Личное сообщение · #26 |
|
Создано: 22 января 2006 06:18 · Личное сообщение · #27 Ради интереса,потестируте у себя,а то ночь угробил: _http://rapidshare.de/files/11543006/ArtIcons_Pro_5.0_Crack.rar.html SergSh Просьбочка,когда за Аспр 2.2. возьмётесь,то попробуйте на Resource Builder 2.4.0.7. Давно руки чешуться заломать,но не доно аспр снять. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. ![]() |
|
Создано: 22 января 2006 10:26 · Поправил: PE_Kill · Личное сообщение · #28 sanniassin пишет: 1 это вроде cmp exx,dword ptr [exx] Да ты прав. sanniassin пишет: а 3 - cmp exx,byte ptr [exx] Чет я не понял, как можно сравнивать 32 битный регистр и байт? sanniassin пишет: там ещё эмулятся команды типа cmp eax, 1234h это как раз и есть пятый блок. Аспру по барабану сравнивать регистр с числом или с регистром, он это еще до этих блоков определяет. Т.е. 0...MOV EBP,DWORD PTR SS:[EBP] // Пример CMP DWORD PTR DS:[ESI],0 или CMP DWORD PTR DS:[1234],0 1...MOV EAX,DWORD PTR SS:[ESP+10] // ....MOV EAX,DWORD PTR DS:[EAX]....// CMP ESI,DWORD PTR [ESI] или CMP ESI,DWORD PTR [1234] ....MOV DWORD PTR SS:[ESP+10],EAX // 2...XOR EAX,EAX..............// ....MOV AL,BYTE PTR SS:[EBP] // пример CMP BYTE PTR DS:[ESI],0 или CMP BYTE PTR DS:[1234],0 ....MOV EBP,EAX..............// 3...MOV EAX,DWORD PTR SS:[ESP+10] // ....MOVZX EAX,BYTE PTR DS:[EAX]...// ?? Что это ?? ....MOV DWORD PTR SS:[ESP+10],EAX // 4...MOV EDX,DWORD PTR SS:[ESP+10] // Пример CMP ESI,ESI или CMP ESI,1234 ....MOV EAX,EBP В общем я понял, что в третьем блоке эмулится CMP ??,BYTE PTR DS:[Exx], только вот что вместо ?? чтобы я не подставлял АСПР отказывается это эмулить. Все же я думаю, что это AL. Mario555 ты не помнишь? ----- Yann Tiersen best and do not fuck ![]() |
|
Создано: 22 января 2006 14:58 · Личное сообщение · #29 |
|
Создано: 22 января 2006 16:27 · Личное сообщение · #30 |
|
Создано: 23 января 2006 11:39 · Личное сообщение · #31 все дописываю скрипт и (если распакую программу) буду писать статью. Скрит уже восстанавливат jmp,call,jcc. Осталось cmp+jcc. Еще интересную особенность заметил. Аспр при распаковке время от времени пишт в секцию кода RETN и прыгет на него келлом. Надо полагать защита от оеп фаиндеров. Только причем здесь секция кода, если теперь оеп вообще в заалоченой памяти. Короче лол. ----- Yann Tiersen best and do not fuck ![]() |
<< . 1 . 2 . 3 . 4 . 5 . >> |
![]() |
eXeL@B —› Протекторы —› Появился новый AsProtect 2.2 |