Сейчас на форуме: Magister Yoda, vasilevradislav (+3 невидимых)

 eXeL@B —› Крэки, обсуждения —› Исследование загрузки и патча программы с помощью лодыря
Посл.ответ Сообщение

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

Создано: 21 января 2015 20:54
· Личное сообщение · #1

Вопрос к знатокам...
Столкнулся со следующей задачей. Имеется упакованная программа, которая запускается с помощью лодыря. При этом лодырь сначала запускает программу с подавленным потоком, затем патчирует код программы, после чего возобновляет поток, и программа запускается. Возник вопрос: как можно посмотреть в отладчике процесс патчирования кода программы? Я пытался подключить отладчик при подавленном потоке, но ничего не происходит, поскольку код не распакован, и заполнен нолями. Пытался подключить отладчик при возобновлении потока, но тоже ничего не получил. Как можно решить этот вопрос?



Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 21 января 2015 21:12 · Поправил: vovanre
· Личное сообщение · #2

Попробуй через VEH отладчик в Cheat Engine.

// Можно оба проца заморозить через процесс хакер.



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 21 января 2015 21:19
· Личное сообщение · #3

как вариант продебадижить код лоадера?




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

Создано: 21 января 2015 21:41
· Личное сообщение · #4

может все таки не ПАТЧИРОВАНИЕ?




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 21 января 2015 22:46
· Личное сообщение · #5

После кода лоадера пишем примерно такой же свой, который читает контекст потока для определения, с какого адреса поток начнёт выполняться. Туда лепим опкод EBFE (short jump на самого себя), если х86. Предварительно 2 байта исходных читаем и можем даже вывести на экран (в файл). Далее отпускаем поток, он зацикливается. Аттачимся к нему дебаггером, восстанавливаем байты, вин!

-----
Stuck to the plan, always think that we would stand up, never ran.




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

Создано: 22 января 2015 12:08
· Личное сообщение · #6

vnekrilov это случайно не енигма с патчером? может посмотреть в сторону армы? когда юзалось антидетач?

Добавлено спустя 2 минуты
ARCHANGEL пишет:
После кода лоадера пишем примерно такой же свой

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

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




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

Создано: 22 января 2015 12:43
· Личное сообщение · #7

ARCHANGEL пишет:
После кода лоадера пишем примерно такой же свой, который читает контекст потока для определения, с какого адреса поток начнёт выполняться. Туда лепим опкод EBFE


Я нашел немного другое решение. После остановки лоадера на инструкции ResumeThread установил бряку на WriteProcessMemory, и здесь в стеке прекрасно видно по каким адресам в коде программы лоадер записывает нужные байты (запись нужных байтов проводится по-байтно). Далее я использовал утилиту от Нарвахи - PUPE, с помощью которой на первой пропатченной инструкции записываю байты EBFE (бесконечный цикл). Это я делаю потому, что при патчировании лоадером кода программы уже пройдена ее OEP. После этого запускаю дальше лоадер, он завершает свою работу, и программа виснет в бесконечном цикле на инструкции с байтами EBFE. А вот дальше идет затык. При попытке подключения отладчика к процессу программа тупо закрывается с кодом ошибки DEADCODE (-559038242).

VodoleY пишет:
vnekrilov это случайно не енигма с патчером


Сама программа защищена VMProtect. Отладчик настроен так, что протектор ее не обнаруживает (я со своими настройками плагинов распаковал эту программу, и свободно подключаю отладчик к полностью запущенной программе), а на зацикленной программе получаю вышеуказанный код ошибки, и программа закрывается. Надо посмотреть антидетач




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 22 января 2015 13:13
· Личное сообщение · #8

vnekrilov попробуй вот это

http://www.openrce.org/blog/view/1846/ICanAttach,_a_plugin_to_bypass_anti-attaching_tricks
или
https://tuts4you.com/download.php?view.3253

-----
[nice coder and reverser]


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

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

Создано: 22 января 2015 17:19
· Личное сообщение · #9

Опять вопрос в порядке консультации. При подключении отладчика к зацикленному процессу, программа благополучно закрывается с кодом ошибки DEADCODE (-559038242). Применение разных плагинов антидетача ничего не дает. Как я понимаю, запущенная программа с протектором ловит отладчик, и тупо закрывается. Какие еще можно использовать приемы для подключения отладчика к запущенной программе?



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 22 января 2015 17:31 · Поправил: TryAga1n
· Личное сообщение · #10

Перечислить все потоки (не важно каким способом), заморозить все, кроме MainThread'a и уже после этого приаттачиться дебаггером.

А вот и антидебаг трик от дероко, в котором используется Exit code DEADC0DE
http://blog.w4kfu.com/tag/unpackme




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 22 января 2015 17:50
· Личное сообщение · #11

DEADCODE - это константа внутри вмпрота. Так он реагирует, если спалит отладчик. Суть в том, что аттач проходит, но после него плаги "не успевают" скрыть дебаггер, т.к. нет останова. Управление получает поток вмпрота, и юзается какой-то антидебаг трюк, что приводит к детекту.

-----
Stuck to the plan, always think that we would stand up, never ran.



 eXeL@B —› Крэки, обсуждения —› Исследование загрузки и патча программы с помощью лодыря
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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