Решил разобраться с принципом работы ASProtect 2.1 (опыт распаковки более ранних версий был). Возникла следующая проблема. Запаковал им блокнот. На последнем исключении поставил точку останова на секцию с кодом. Сработало, но в теле аспра. Перешел по адресу OEP, заранее мне известному. А там как раз джамп в секцию ASProtect. Oep: 0100739D .- E9 DB8EA6FF JMP 00A7027D Перешел по этому адресу. 00A7027D 6A 70 PUSH 70 00A7027F EB 02 JMP SHORT 00A70283 00A70281 CD20 FF742410 VxDCall 102474FF 00A70287 66:9C PUSHFW 00A70289 57 PUSH EDI 00A7028A 64:EB 02 JMP SHORT 00A7028F ; Superfluous prefix 00A7028D CD20 8D3C11F2 VxDCall F2113C8D 00A70293 EB 01 JMP SHORT 00A70296 00A70295 - E9 F3EB02CD JMP CDA9EE8D 00A7029A 2003 AND BYTE PTR DS:[EBX],AL 00A7029C FA CLI 00A7029D F3: PREFIX REP: ; Superfluous prefix 00A7029E EB 02 JMP SHORT 00A702A2 00A702A0 CD20 8D7C245C VxDCall 5C247C8D Ну то есть мало того, что аспр в свое тело переносит oep, он еще ее и с мусором смешивает. Как восстанавливать все на место не представляю. Может кто сталкивался?
Если я не ошибаюсь то эта версия использует Vm (виртуальную машину) . Фактически аспр крадёт туеву хучу команд, и все их надо восстанавливать вручную очень трудоёмкий процесс...Насколько я помню где то в просторах инэта валяется скрипт для Ольки по восстановлению...Но по моему опыту он очень нестабильный. Стыдно признатся но именно из за Vm я откладываю большенство взломов. Многие сейчас криптуют аспром свои проги....
Спасибо. Материал отыскал. То, что я нашел - VOEP (Virtual OEP). Как с этим работать буду разбираться.
00A70281 CD20 FF742410 VxDCall 102474FF ахха че за VxDCall ?) это же INT 20 че у тебя за отладчик, который так любит вин9х-ные vxd
проверял стриппер (последний (совсем последний, жалко что закрылся проэкт)) на АСпре 2.1 Ske-не распаковал, как мне кажется тут тоже Ske...
Мля... а я так и не понял о чем идет речь.. автор говорит, что ASPr ворует инструкции, это называется "stolen bytes" вы говрите вм.. имхо vm - это другое (типа конечные автоматы и тп) (Rascal вам еще покажет, что такое VM) Я читал множество статей про PESpin и подобные проты, и везде это называлось "stolen bytes". И вот что по поводу я говорю... их не обязательно восстанавливать! (Если пизженые баыты лежат в какойто секции. Вот если на выделенной памяти, тогда да). К примеру в том же PESpin.. я просто нашел stolen bytes и сказал что это EP. И все работало.. Другое дело если украденные байты записываются на динамически выделенную память.. Как у автора "/.. Тогда после дампа, сам понимаешь.. Они так и останутся безвестно пропавшими.. Поэтому тебе нужно их скопировать куданибудь в секцию.. to _Great_ Походу у него Olly, только как то тупо настроенна to Топикстартер Выкладывай файл
Запаковал блокнот чисто для интереса. Мануалы нашел, пару дней, думаю за ними просижу. Память под украденные с oep байты выделяется в процессе работы программы (проверял, ставил бряк на VirtualAlloc). А виртуальная машина (по крайней мере во всех описаниях встречается именно этот термин) там действительно используется,т.е. при работе программы код разбросан по разным участкам памяти при этом изрядно замусорен. А распаковать все же попытаюсь сначала сам.