流水账笔记:PE文件格式(TLS手动注入)

来源:互联网 发布:dnf为什么老是网络中断 编辑:程序博客网 时间:2024/06/04 18:45

以简单的程序为例,练习 TLS 注入。使用工具:010 Editor

这里写图片描述

练习程序下载

#1

添加 TLS 节,如何添加不再赘述 –>加节方法传送门

加完节后,确认一下程序是否能够正常运行

#2

在数据目录下添加 TLS 表的地址,位置可以是任意空置的空间(注意内存保护属性至少要是可读),大小为24。

这里写图片描述

#3

根据结构体,填写 TLS 表的内容。其中,只有第三个成员 AddressOfIndex 和 AddressOfCallBack 的内容需要认真填写,其他数据全填 0 即可。

这里写图片描述

将 AddressOfIndex 和 AddressOfCallBack 的地址填在 TLS 节中(也可以放在其他的节中,注意内存的保护属性),此时填写的是绝对地址,注意和文件偏移间的转换(VA To FOA)

这里写图片描述

#4

填写回调函数指针。

这是回调函数指针数组,照理系统会依次调用,但是经测试,数组中填写两个函数指针时,并不会调用第二个函数。是哪里写错了???
这里写图片描述

#4

根据填写的函数指针,转换公式在文件中填写代码

这里写图片描述

于是,注入成功了!

注入后成功后的程序下载

问题:即使代码所在页不是可执行,程序依然可以运行?