17

I just want to know how I can change asm instructions in the IDA-view A:

  1. How to edit instructions(for instance: jnz to jmp)?
  2. How to insert new instructions(call func1, call func2 inserted to existing code)?

I know how to make dif files, I know how to apply the changes on my DLL, but how can I "make the difference"? How can I edit the code in IDA?

I learned how to modify a DLL:

  1. Modify code(how?)
  2. Generate dif file.
  3. Apply the code modifications to the DLL with the dif file and a script.
Mike Woodhouse
  • 51,832
  • 12
  • 88
  • 127
asm
  • 171
  • 1
  • 1
  • 3
  • possible duplicate of [IDA Pro and editing executables](http://stackoverflow.com/questions/327196/ida-pro-and-editing-executables) – Bo Persson Jun 13 '11 at 16:57

3 Answers3

21
  1. There is a Edit / Patch menu that used to be shown by default but that is hidden in recent IDA releases. If it is your case, edit the cfg/idagui.cfg file, look for the DISPLAY_PATCH_SUBMENU = NO line and change the setting. On the next IDA session, you will be able to change single byte / word values or assemble some code like in OllyDbg.
  2. Once you have patched your database, go to File / Produce file / Create DIF file, it will let you create a simple diff file in the form offset / value before / value after (it is not the common diff file format)
  3. To apply the diff file to an existing file, you can use the source code of a dif file patcher that was released in the IDA Pro Book
Seki
  • 11,135
  • 7
  • 46
  • 70
3

Use Edit->patch program->assemble to write in assembly syntax

Use Edit->patch program -> patch bytes to edit bytes in the binary

Finally, use Edit->patch program -> apply patch to input file to apply patches. I'v personally used it in IDA 7.0

789
  • 718
  • 1
  • 10
  • 30
2

Try IDA Pro 6.1 or 6.2. It has the ability to write the changes to the input file directly.

Elias Bachaalany
  • 1,180
  • 2
  • 13
  • 27