*Начало * Ответить * Статистика * Задать вопрос * Поиск * FAQ * * |
DotFix Forum / Вопросы программирования и исследования защит / VMProtect |
Автор | Сообщение |
teph Участник |
Дата: 17 Май 2010 22:34 Всем привет ! Пытаюсь разобраться с VMProtect , а именно на примере CrackMe5 . PEID говорит , что все упакованно NsPack'ом, но видно гонит . Сделал дамп памяти в Olly в котором отыскал введенные мной значения. На этом все и остановилось , тк все работает как "виртуальная машина" ,а дизассемблированный код запакован ( при распаковке программа перестает работать ). Кто-нибудь сталкивался с этим??? |
Admin Администратор |
Дата: 17 Май 2010 23:46 Quoting: teph Кто-нибудь сталкивался с этим??? Тема виртуальных машин очень древняя и изучена от и до. Что касается CrackMe5 насколько я помню там использовалась версия VMP толи 0.8 толи близкая. Там VM в принципе примитив. В оригинальной функции ссылка на загрузчик, переводим и видим вызов обработчика со ссылкой на псевдокод. Исполнитель там не шифрован потому нужно лишь время на анализ и все разбирается. А PEiD не врет. Файл был после обработки виртуализатором запакован NSPack'ом. |
teph Участник |
Дата: 18 Май 2010 19:02 Как бы с горем по палам распаковал, вроде как нашел большое количество переходов, которые вроде и есть обработчик . Только я не понимаю где там происходит сравнения пользователя и пароля и собственно "каким образом построены"( на каких правилах) все эти переходы построены. Буду очень признателен , если кто-нибудь объяснит. |
Admin Администратор |
Дата: 18 Май 2010 19:09 Там нет как такового сравнения. Каждая команда ассемблера преобразуется в микрокод из нескольких команд. Не зная работы виртуальной машины это не пропатчить. Нужно изучать опкоды VM. Документации естественно нет. |
teph Участник |
Дата: 18 Май 2010 19:28 Документации естественно нет.. понятненько . Тогда верным способом будет изучение работы VM на простых программах и вытягивание из них её опткодов , если она не генерирует их используя какие-либо зависимости. |
teph Участник |
Дата: 23 Май 2010 19:07 На CrackLab вычитал , что довольно давно было выложено описание этого крякми (Здесь он описан: http://www.dotfix.net/doc/CrackMe1.htm) ... Вообщем его не осталось ????? Был бы очень признателен) |
Admin Администратор |
Дата: 25 Май 2010 01:05 Пятый не был описан никогда. А вот другие: http://www.dotfix.net/doc.htm&theme=Reversing |
teph Участник |
Дата: 30 Май 2010 22:46 * Поправил: teph В оригинальной функции ссылка на загрузчик, переводим и видим вызов обработчика со ссылкой на псевдокод. Может есть какие-нибудь общие шаги , направление или ... дай ,пожалуйста , какие-нибудь еще подсказки ))) Просто я в OllyDbg прогоняю программу , ставлю nop там где получение длины строки( получено из P32Dasm) , но условие с длиной имени пользователя все равно срабатывает правильно ... |
Admin Администратор |
Дата: 18 Июл 2010 13:36 Общий шаг прост - нужно исследовать обработчики опкодов VM, составлять таблицу из опкодов и функций их реализующих и по той таблице декомпилировать. C рассматриваемом программном продукте функции описывающие опкоды при каждой компиляции обфусцируются поразному, поэтому для начала нужно написать деобфускатор кода, а затем уже сигнатурно составлять базу обработчиков каждого опкода. Работа эта сама по себе огромна. |