Сейчас на форуме: vsv1, Alf (+4 невидимых)

 eXeL@B —› Вопросы новичков —› Распаковка VMProtect. Поиск точки входа.
Посл.ответ Сообщение

Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 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.



3d35_24.08.2015_EXELAB.rU.tgz - Script.png



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 24 августа 2015 13:54
· Личное сообщение · #2

Stop your target >><<at TLS or ep and then resume this script.
Если даже это не удалось сделать - то это печально

Попробуйте что ли почитать статьи про использование OllyDbg




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 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





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 24 августа 2015 15:48 · Поправил: Maximus
· Личное сообщение · #4

ypnikotin
1. У Дельфи программ точка входа обычно находится вконце секции кода
2. Перед началом дельфи программы выполняется InitExe. Можно найти сигнатуру InitExe для Дельфи2006 и найти эту процедуру по сигнатуре. Вызвавший эту функцию call будет как раз находится около OEP
3. Функция InitExe вызывает GetModuleHandleA или GetModuleHandleW, можно поставить на него бряк, выйти на пару вызовов вверх, и опять же окажешься на ОЕП
4. Если ты уже знаешь в каком месте ломать, то совсем необязательно программу распаковывать

-----
StarForce и Themida ацтой!





Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 24 августа 2015 16:12
· Личное сообщение · #5

А как такой вариант - ОЕП под вм и выхода на него нет, не туда копаете...

-----
Everything is relative...


| Сообщение посчитали полезным: vden, DenCoder, vnekrilov

Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 24 августа 2015 17:04 · Поправил: vden
· Личное сообщение · #6

ypnikotin
Вы отталкивайтесь от того, что вам нужно получить. Может быть точка входа и распаковка не нужны. Кроме того скрипты часто не работают.

Делайте дамп, ищите нужный вам участок кода. Если он виртуализирован, то это задача не для новичка. Тут скорее всего вам в платные запросы.

Если просто замусорен код, то можно почистить и изучать дальше.



Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 августа 2015 16:30
· Личное сообщение · #7

Спасибо всем за ответы. Будем разбираться.




Ранг: 328.7 (мудрец), 73thx
Активность: 0.170.01
Статус: Участник

Создано: 25 августа 2015 23:17
· Личное сообщение · #8

если более общо
то сначала надо определить компилятор


 eXeL@B —› Вопросы новичков —› Распаковка VMProtect. Поиск точки входа.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати