问题
I just want to know how I can change asm instructions in the IDA-view A:
- How to edit instructions(for instance: jnz to jmp)?
- 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:
- Modify code(how?)
- Generate dif file.
- Apply the code modifications to the DLL with the dif file and a script.
回答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 thecfg/idagui.cfg
file, look for theDISPLAY_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. - 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) - 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
回答2:
Try IDA Pro 6.1 or 6.2. It has the ability to write the changes to the input file directly.
回答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
来源:https://stackoverflow.com/questions/6327862/ida-pro-asm-instructions-change