PE——向空白节添加代码

初学这个部分,记下一个简单列子,后面再补充其他成分

  1. 向一个程序添加一个对话框,让这个程序在执行的时候,先执行我们加入的对话框
  2. 思路:在代码节的空白区域添加我们要加入的代码,因为代码节的属性就是可读可写可执行,添加到其他节需要自己修改属性,
    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后面的同理,这里是跳转到原来的入口处

将原来入口偏移改成现在加入的代码起始处(599+C00=1199),保存执行就完成了

在这里插入图片描述

你可能感兴趣的:(逆向学习,PE文件格式)