Изменение команды IDA pro asm
Я просто хочу знать, как я могу
изменить asm-инструкции в IDA-представлении A:
- Как редактировать инструкции (для
instance: jnz to jmp)?
- Как вставить новые инструкции (вызов func1,
вызов func2, вставленный в существующий
код)?
Я знаю, как создавать разные файлы, я знаю, как применять изменения в своей DLL, но как можно
Я "делаю разницу"? Как изменить код в IDA?
Я узнал, как изменить DLL:
- Изменить код (как?)
- Создать файл diff.
- Примените модификации кода к DLL с файлом diff и script.
Ответы
Ответ 1
- Существует меню
Edit / Patch
, которое по умолчанию показывалось, но которое скрыто в последних выпусках IDA. Если это ваш случай, отредактируйте файл cfg/idagui.cfg
, найдите строку DISPLAY_PATCH_SUBMENU = NO
и измените настройку. На следующем сеансе IDA вы сможете изменить значения одного байта/слова или собрать какой-то код, как в OllyDbg.
- После того, как вы закрепили свою базу данных, перейдите к
File / Produce file / Create DIF file
, это позволит вам создать простой файл diff в формате offset/value before/value после (это не общий формат файла diff)
- Чтобы применить файл diff к существующему файлу, вы можете использовать исходный код diff patcher, который был выпущен в Книга IDA Pro
Ответ 2
Попробуйте IDA Pro 6.1 или 6.2. Он имеет возможность напрямую записывать изменения в входной файл.
Ответ 3
Используйте Edit->patch program->assemble
для записи в синтаксисе сборки
Используйте Edit->patch program → patch bytes
для редактирования байтов в двоичном
Наконец, используйте Edit->patch program → apply patch to input file
чтобы применить исправления. Я лично использовал это в IDA 7.0