![]() |
eXeL@B —› Вопросы новичков —› Распаковка VMProtect. Поиск точки входа. |
Посл.ответ | Сообщение |
|
Создано: 24 августа 2015 13:01 · Личное сообщение · #1 Добрый день! По работе появилась задача связанная с крекингом одной небольшой программы. Являясь в этой сфере новичком, все приходится познавать под ходу выполнения задания. И как полагается столкнулся с некоторыми проблемами. Основной является распаковка vmprotect. После поиска литературы по этому пакеру, а его оказалось немного, единственным более менее понятным для моего уровня материалом оказалась статья Djeck от 12.11.2013 "Исследование кода VMProtect". Но к сожалению выполнить все действия, как описано в статье не вошло, так как скрипт для OllyDbg от LCF-AT ( Vmprotect ultra unpacker) выдал следующее сообщение "Stop your target >><<at TLS or ep and then resume this script. " . Как найти точку входа, я к сожалению не знаю. И поэтому воспользовался скриптом от все того же LCF-AT (Vmprotect 1.7 -2.0 OEP finder). Но, к сожалению, все мои действия положительного результата не дали и точка входа осталась не найденной. Хотелось бы, чтобы вы направиди мои действия в правильное русло, подсказали, как и чем пользоваться, что прочитать. P. S. DetectItEasy выдает, что программа запакована Vmprot, скопмилена Delphi 2006. PEiD указывает на PestubOep. И обе программы говорят, что точка входа находится на адресе 00000000. ![]() ![]() |
|
Создано: 24 августа 2015 13:54 · Личное сообщение · #2 |
|
Создано: 24 августа 2015 15:04 · Поправил: DenCoder · Личное сообщение · #3 Скрипты неуниверсальны. Для того, чтобы выйти на OEP, надо из всех примитивов найти хотя бы тот, который вызывает функции(примитив vmCallFunc) и тот, который после распаковки, импорта и фикса адресов(релоки) завершает работу вм(примитив vmExit), передавая управление на OEP. Найти и поставить бряк на этот примитив будет мало, надо побороться ещё с лёгкой антиотладкой и с проверкой crc. ypnikotin пишет: "Stop your target >><<at TLS or ep and then resume this script. ep - не есть OEP. Найдите описание PE Header, выйдете на EP. ypnikotin пишет: Vmprotect 1.7 -2.0 OEP finder Если версия выше, то он Вам может и не помочь. Только что Вам это даст? Найдёте OEP, а дальше? 99% - дальше встретитесь с ещё одной вм, из которой будет выход на какой-то код и снова вход в новую вм. Я когда разбирал вмпрот - более 100 логов снял, каждый лог - работа одной из 2х вм с новым байт-кодом и аргументами. ----- IZ.RU ![]() |
|
Создано: 24 августа 2015 15:48 · Поправил: Maximus · Личное сообщение · #4 ypnikotin 1. У Дельфи программ точка входа обычно находится вконце секции кода 2. Перед началом дельфи программы выполняется InitExe. Можно найти сигнатуру InitExe для Дельфи2006 и найти эту процедуру по сигнатуре. Вызвавший эту функцию call будет как раз находится около OEP 3. Функция InitExe вызывает GetModuleHandleA или GetModuleHandleW, можно поставить на него бряк, выйти на пару вызовов вверх, и опять же окажешься на ОЕП 4. Если ты уже знаешь в каком месте ломать, то совсем необязательно программу распаковывать ----- StarForce и Themida ацтой! ![]() |
|
Создано: 24 августа 2015 16:12 · Личное сообщение · #5 |
|
Создано: 24 августа 2015 17:04 · Поправил: vden · Личное сообщение · #6 ypnikotin Вы отталкивайтесь от того, что вам нужно получить. Может быть точка входа и распаковка не нужны. Кроме того скрипты часто не работают. Делайте дамп, ищите нужный вам участок кода. Если он виртуализирован, то это задача не для новичка. Тут скорее всего вам в платные запросы. Если просто замусорен код, то можно почистить и изучать дальше. ![]() |
|
Создано: 25 августа 2015 16:30 · Личное сообщение · #7 |
|
Создано: 25 августа 2015 23:17 · Личное сообщение · #8 |
![]() |
eXeL@B —› Вопросы новичков —› Распаковка VMProtect. Поиск точки входа. |