IDA修改exe并保存运行

IDA修改hello.exe,使得程序hello.exe的输出由“Hello World!”改为“Reverse Me!”
a)IDA打开hello.exe
IDA修改exe并保存运行

b)查看String Windows
IDA修改exe并保存运行
查找到“hello world!”IDA修改exe并保存运行

IDA修改exe并保存运行

c) 单击鼠标右键-Graph View,切换为Graph View,展现各个结构之间的关系。
IDA修改exe并保存运行
IDA修改exe并保存运行

d)将判断指令JZ改为JNZ,这样当输入为true时,程序将跳转输出字符串Reserve Me!
需要设置IDA显示16进制机器码,即图中步骤2、3
IDA修改exe并保存运行
之后IDA就会显示16进制机器码:
IDA修改exe并保存运行
IDA修改exe并保存运行

e) 直接使用IDA修改由0x74改为0x75。
先选中关键代码所在的那一行,打开Edit->Path prodram->Change byte
IDA修改exe并保存运行

其实这里的三种选项都可以修改,
只是Change byte是修改16进制下的代码,显示从开始的那一行到这一节结束的那一行:
IDA修改exe并保存运行

Change word是修改所选中那一行的值:
IDA修改exe并保存运行

Assemble则是直接修改汇编代码:
IDA修改exe并保存运行

现在我们随便使用一种方式把JZ指令改为JNZ,从而改变程序的跳转。之后点击编辑->修补文件->修补程序应用到输入文件:
IDA修改exe并保存运行

再选择修改的范围和输入的文件即可:
IDA修改exe并保存运行

最后我们打开修改过的exe文件
IDA修改exe并保存运行

程序的跳转逻辑已经被更改了。