Сейчас на форуме: asfa (+7 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Можно ли сдвинуть весть исполнемый код? |
Посл.ответ | Сообщение |
|
Создано: 08 июня 2010 18:27 · Личное сообщение · #1 |
|
Создано: 08 июня 2010 18:32 · Личное сообщение · #2 |
|
Создано: 08 июня 2010 18:46 · Личное сообщение · #3 |
|
Создано: 08 июня 2010 18:55 · Личное сообщение · #4 Там такая хитрая структура исполняемого файла, что у него "данные" хранятся в секции .text после таблицы импорта но ДО кода. Возникла необходимость увеличить секцию дата на величину 0xC00, соответсевнно весь код сдвинулся. На сколько я понимаю теперь нужно сдвинуть все вызовы и указатели на константы... Руками я это буду делать до глубокой старости. Сейчас я это вижу так: После того как я всё сдвинул и привёл таблицу импорта в порядок, я открываю результурющий EXE в OllyDbg и иду построчно, обращая внимания на конструкции типа: Code:
и меняю прям в Olly на Code:
а ещё сдвинулась секция .data вместе с ней сдвинулся адресс в памяти куда она маппится и получается нужно сдвинуть все образения в адресное пространство этой секции на дельту. Ну по сути тоже смое что и исполняемым кодом. Мммм? Может есть что? Анализатор какой? Который ХОТЯБЫ выдаст список чего меня и по каким адересам... Менялку то я напишу по списку... Всё что сейчас приходит в голову это тупо писать своё подобие дебаггера... Тут я ваще потерюсь ещё на долго. ![]() |
|
Создано: 08 июня 2010 18:56 · Личное сообщение · #5 |
|
Создано: 08 июня 2010 19:01 · Личное сообщение · #6 Обычная для этого техника -- в нужном месте заменяем пару (ну или сколько там будет, главное -- целые инструкции, остаток ноп-им) на джамп на наш код (который напр. в прикрученной секции, прикрутить свою секцию -- утил масса), после выполнения нашего кода выполняем затертые инструкции и опять прыгаем на место после первого джампа. (если исп. регистры до первого джампа в коде -- можно их запомнить, по возврату -- восстановить). ![]() |
|
Создано: 08 июня 2010 19:05 · Личное сообщение · #7 |
|
Создано: 08 июня 2010 19:11 · Личное сообщение · #8 |
|
Создано: 08 июня 2010 19:18 · Личное сообщение · #9 |
![]() |
eXeL@B —› Вопросы новичков —› Можно ли сдвинуть весть исполнемый код? |