Изменение инструкций IDA pro asm - PullRequest
13 голосов
/ 13 июня 2011

Я просто хочу узнать, как я могу изменить инструкции asm в представлении IDA A:

  1. Как редактировать инструкции (например, от jnz к jmp)?
  2. Каквставлять новые инструкции (вызывать func1, вызывать func2 для вставки в существующий код)?

Я знаю, как создавать файлы dif, я знаю, как применить изменения в моей DLL, но как я могу "сделать"различия"?Как я могу редактировать код в IDA?

Я узнал, как изменить DLL:

  1. Изменить код (как?)
  2. Создать файл dif.
  3. Применение модификаций кода к DLL с помощью файла dif и скрипта.

Ответы [ 3 ]

19 голосов
/ 13 июня 2011
  1. Существует меню Edit / Patch, которое раньше отображалось по умолчанию, но оно скрыто в последних выпусках IDA. Если это ваш случай, отредактируйте файл cfg/idagui.cfg, найдите строку DISPLAY_PATCH_SUBMENU = NO и измените настройку. На следующем сеансе IDA вы сможете изменить значения одного байта / слова или собрать некоторый код, как в OllyDbg.
  2. После того, как вы исправили свою базу данных, перейдите к File / Produce file / Create DIF file, она позволит вам создать простой файл сравнения в форме смещение / значение до / значение после (это не общий формат файла сравнения)
  3. Чтобы применить diff-файл к существующему файлу, вы можете использовать исходный код патч-файла diff-файла , выпущенного в IDA Pro Book
2 голосов
/ 07 апреля 2012

Попробуйте IDA Pro 6.1 или 6.2.Он имеет возможность напрямую записывать изменения во входной файл.

0 голосов
/ 19 июня 2019

Используйте Edit->patch program->assemble для записи в синтаксисе сборки

Используйте Edit->patch program -> patch bytes для редактирования байтов в двоичном формате

Наконец, используйте Edit->patch program -> apply patch to input file применять патчи. Я лично использовал его в IDA 7.0

...