Изменение команды 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