DotFix ::: Software protection portal
 °Начало ° Ответить ° Статистика ° Задать вопрос ° Поиск ° FAQ ° °

DotFix Forum / Вопросы программирования и исследования защит / VMProtect
Автор Сообщение
teph
Участник


Дата: 17 Май 2010 22:34


Всем привет ! Пытаюсь разобраться с VMProtect , а именно на примере CrackMe5 . PEID говорит , что все упакованно NsPack'ом, но видно гонит . Сделал дамп памяти в Olly в котором отыскал введенные мной значения.
На этом все и остановилось , тк все работает как "виртуальная машина" ,а дизассемблированный код запакован ( при распаковке программа перестает работать ). Кто-нибудь сталкивался с этим???

GPcH
Администратор


Дата: 17 Май 2010 23:46


Quoting: teph

Кто-нибудь сталкивался с этим???


Тема виртуальных машин очень древняя и изучена от и до. Что касается CrackMe5 насколько я помню там использовалась версия VMP толи 0.8 толи близкая. Там VM в принципе примитив. В оригинальной функции ссылка на загрузчик, переводим и видим вызов обработчика со ссылкой на псевдокод. Исполнитель там не шифрован потому нужно лишь время на анализ и все разбирается.

А PEiD не врет. Файл был после обработки виртуализатором запакован NSPack'ом.

teph
Участник


Дата: 18 Май 2010 19:02


Как бы с горем по палам распаковал, вроде как нашел большое количество переходов, которые вроде и есть обработчик . Только я не понимаю где там происходит сравнения пользователя и пароля и собственно "каким образом построены"( на каких правилах) все эти переходы построены. Буду очень признателен , если кто-нибудь объяснит.

GPcH
Администратор


Дата: 18 Май 2010 19:09


Там нет как такового сравнения. Каждая команда ассемблера преобразуется в микрокод из нескольких команд. Не зная работы виртуальной машины это не пропатчить. Нужно изучать опкоды VM. Документации естественно нет.

teph
Участник


Дата: 18 Май 2010 19:28


Документации естественно нет..
понятненько .
Тогда верным способом будет изучение работы VM на простых программах и вытягивание из них её опткодов , если она не генерирует их используя какие-либо зависимости.

teph
Участник


Дата: 23 Май 2010 19:07


На CrackLab вычитал , что довольно давно было выложено описание этого крякми (Здесь он описан: http://www.dotfix.net/doc/CrackMe1.htm) ... Вообщем его не осталось ????? Был бы очень признателен)

GPcH
Администратор


Дата: 25 Май 2010 01:05


Пятый не был описан никогда. А вот другие:
http://www.dotfix.net/doc.htm&theme=Reversing

teph
Участник


Дата: 30 Май 2010 22:46 ° Поправил: teph


В оригинальной функции ссылка на загрузчик, переводим и видим вызов обработчика со ссылкой на псевдокод.

Может есть какие-нибудь общие шаги , направление или ... дай ,пожалуйста , какие-нибудь еще подсказки ))) Просто я в OllyDbg прогоняю программу , ставлю nop там где получение длины строки( получено из P32Dasm) , но условие с длиной имени пользователя все равно срабатывает правильно ...

GPcH
Администратор


Дата: 18 Июл 2010 13:36


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

Ваш ответ

Bold Style  Italic Style  Underlined Style  Image Link  Insert URL  Email Link  Код 
... Отменить *Что это?


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль