零基础逆向工程20_PE结构04_任意节空白区_新增节_扩大节添加代码
向代码节添加代码实现
作者经过一周不断的失败,再思考以及无数次调试终于实现。
思路:八个步骤
1. 文件拷到文件缓冲区(FileBuffer) //图示见(零基础逆向工程18之PE加载过程)
2. 文件缓冲区扩展到内存映像缓冲区(ImageBuffer)
3. 判断代码空闲区是否有足够空间存储ShellCode代码
4. 将代码复制到空闲区
5. 修正E8
6. 修正E9
7. 修改OEP
8. 内存映像缓冲区到新文件缓冲区(NewBuffer)
9. 新文件缓冲区到文件
向其他节(如数据段)空闲区添加代码
与向代码节的不同是需要修改数据区的属性(Characteristics)为可执行