Сейчас на форуме: Magister Yoda, vasilevradislav (+3 невидимых) |
eXeL@B —› Крэки, обсуждения —› Исследование загрузки и патча программы с помощью лодыря |
Посл.ответ | Сообщение |
|
Создано: 21 января 2015 20:54 · Личное сообщение · #1 Вопрос к знатокам... Столкнулся со следующей задачей. Имеется упакованная программа, которая запускается с помощью лодыря. При этом лодырь сначала запускает программу с подавленным потоком, затем патчирует код программы, после чего возобновляет поток, и программа запускается. Возник вопрос: как можно посмотреть в отладчике процесс патчирования кода программы? Я пытался подключить отладчик при подавленном потоке, но ничего не происходит, поскольку код не распакован, и заполнен нолями. Пытался подключить отладчик при возобновлении потока, но тоже ничего не получил. Как можно решить этот вопрос? |
|
Создано: 21 января 2015 21:12 · Поправил: vovanre · Личное сообщение · #2 |
|
Создано: 21 января 2015 21:19 · Личное сообщение · #3 |
|
Создано: 21 января 2015 21:41 · Личное сообщение · #4 |
|
Создано: 21 января 2015 22:46 · Личное сообщение · #5 После кода лоадера пишем примерно такой же свой, который читает контекст потока для определения, с какого адреса поток начнёт выполняться. Туда лепим опкод EBFE (short jump на самого себя), если х86. Предварительно 2 байта исходных читаем и можем даже вывести на экран (в файл). Далее отпускаем поток, он зацикливается. Аттачимся к нему дебаггером, восстанавливаем байты, вин! ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 22 января 2015 12:08 · Личное сообщение · #6 vnekrilov это случайно не енигма с патчером? может посмотреть в сторону армы? когда юзалось антидетач? Добавлено спустя 2 минуты ARCHANGEL пишет: После кода лоадера пишем примерно такой же свой если процесс запущен как отлажеваемый, то там немного сложнее надо антидетач НО никто не мешает в лоадер внеднять свой код.. это раз. снять с процеца дебагабел флаг тоже можно ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 22 января 2015 12:43 · Личное сообщение · #7 ARCHANGEL пишет: После кода лоадера пишем примерно такой же свой, который читает контекст потока для определения, с какого адреса поток начнёт выполняться. Туда лепим опкод EBFE Я нашел немного другое решение. После остановки лоадера на инструкции ResumeThread установил бряку на WriteProcessMemory, и здесь в стеке прекрасно видно по каким адресам в коде программы лоадер записывает нужные байты (запись нужных байтов проводится по-байтно). Далее я использовал утилиту от Нарвахи - PUPE, с помощью которой на первой пропатченной инструкции записываю байты EBFE (бесконечный цикл). Это я делаю потому, что при патчировании лоадером кода программы уже пройдена ее OEP. После этого запускаю дальше лоадер, он завершает свою работу, и программа виснет в бесконечном цикле на инструкции с байтами EBFE. А вот дальше идет затык. При попытке подключения отладчика к процессу программа тупо закрывается с кодом ошибки DEADCODE (-559038242). VodoleY пишет: vnekrilov это случайно не енигма с патчером Сама программа защищена VMProtect. Отладчик настроен так, что протектор ее не обнаруживает (я со своими настройками плагинов распаковал эту программу, и свободно подключаю отладчик к полностью запущенной программе), а на зацикленной программе получаю вышеуказанный код ошибки, и программа закрывается. Надо посмотреть антидетач |
|
Создано: 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 |
|
Создано: 22 января 2015 17:19 · Личное сообщение · #9 Опять вопрос в порядке консультации. При подключении отладчика к зацикленному процессу, программа благополучно закрывается с кодом ошибки DEADCODE (-559038242). Применение разных плагинов антидетача ничего не дает. Как я понимаю, запущенная программа с протектором ловит отладчик, и тупо закрывается. Какие еще можно использовать приемы для подключения отладчика к запущенной программе? |
|
Создано: 22 января 2015 17:31 · Поправил: TryAga1n · Личное сообщение · #10 |
|
Создано: 22 января 2015 17:50 · Личное сообщение · #11 DEADCODE - это константа внутри вмпрота. Так он реагирует, если спалит отладчик. Суть в том, что аттач проходит, но после него плаги "не успевают" скрыть дебаггер, т.к. нет останова. Управление получает поток вмпрота, и юзается какой-то антидебаг трюк, что приводит к детекту. ----- Stuck to the plan, always think that we would stand up, never ran. |
eXeL@B —› Крэки, обсуждения —› Исследование загрузки и патча программы с помощью лодыря |