初学这个部分,记下一个简单列子,后面再补充其他成分
- 向一个程序添加一个对话框,让这个程序在执行的时候,先执行我们加入的对话框
- 思路:在代码节的空白区域添加我们要加入的代码,因为代码节的属性就是可读可写可执行,添加到其他节需要自己修改属性,
E8 和E9 两个硬编码分别是call和jump 都是跟4个字节的指令,设这4字节为X,这个X=程序真正要跳转的地址减去指令下一条指令的地址
6A是push指令
进入OD找到MessageBoxA的地址
通过这种方式找到的地址,我们修改的程序只能在自己的电脑上用,在别人的电脑上不一定能用
通过bp MessageBoxA 找到地址77427e60
进入winhex修改代码
通过PEtool 我们知道程序代码段的文件偏移是400,内存偏移是1000,差就是C00
E8下一跳地址是4011A6(内存中地址)
E8后面四个字节需要填的=77427e60-4011A6=77026CBA E9后面的同理,这里是跳转到原来的入口处