例如:
lis r11, ((qword_90E1B2D8+0x10000)@h)
到
lis r10, unk_90E163D0@h
我们非常感谢您的帮助,非常感谢。
#1 楼
如果您的目标是将更改推回原始二进制文件,那么对于IDA 6.1,最好的选择是结合使用Edit/Patch Program
菜单和Hex View
窗口的编辑功能来进行所需的更改。如果您正在查看PPC代码,很遗憾,PPC处理器模块不支持Assemble...
菜单上的Patch Program
命令。进行所需的更改后,请使用File/Produce file/Create DIF file
菜单项保存IDA样式dif文件。这里有一个实用程序:http://idabook.com/examples/chapter_14/ida_patcher.c,可用于将dif应用于原始二进制文件以对其进行修补。评论
如果我只想进行如下更改,是否会有更简单的方法:lis r11,((qq_90E1B2D8 + 0x10000)@h)到lis r11,unk_90E163D0 @ h
–user4128
2014年11月11日在21:57
您能否说明您的意图是将修补程序向下推送到原始二进制文件中,还是只想对IDA数据库进行修补,作为“假设分析”练习?如果是前者,最简单的方法是升级到IDA 6.2或更高版本,其中包括“编辑/补丁/将补丁应用于输入文件”菜单选项,该菜单选项将所有更改推送到原始二进制文件中,而无需生成dif文件。如果是后者,最简单的事情就是简单地使用十六进制视图来编辑数据库。无论哪种情况,IDA的PPC模块都不会为您组装。
–克里斯·鹰(Chris Eagle)
14 Mar 12 '14 at 0:36
评论
嗯,上一次我尝试执行此操作时,我不得不使用IDC(PatchByte(ea,value))对内存中的数据库进行修补,然后再次进行“拆装”。如果您有更大的说明,则可能会遇到困难,需要使用其他方法(代码洞穴等)。如果“编辑-修补程序”菜单在您的体系结构中可用,则可以仅使用其“汇编”命令编写所需的指令,查看其生成的字节(“选项-常规-显示操作码字节”),然后将其十六进制编辑为可执行文件。