IDA修改,使得程序的输出由“Hello World!”改为“Reverse Me!”
a)IDA打开
b)查看String Windows
查找到“hello world!”
c) 单击鼠标右键-Graph View,切换为Graph View,展现各个结构之间的关系。
d)将判断指令JZ改为JNZ,这样当输入为true时,程序将跳转输出字符串Reserve Me!
需要设置IDA显示16进制机器码,即图中步骤2、3
之后IDA就会显示16进制机器码:
e) 直接使用IDA修改由0x74改为0x75。
先选中关键代码所在的那一行,打开Edit->Path prodram->Change byte
其实这里的三种选项都可以修改,
只是Change byte是修改16进制下的代码,显示从开始的那一行到这一节结束的那一行:
Change word是修改所选中那一行的值:
Assemble则是直接修改汇编代码:
现在我们随便使用一种方式把JZ指令改为JNZ,从而改变程序的跳转。之后点击编辑->修补文件->修补程序应用到输入文件:
再选择修改的范围和输入的文件即可:
最后我们打开修改过的exe文件
程序的跳转逻辑已经被更改了。