PE变形技术
这章东西太多,太细了。这里我只记录了一些重点概念。为后面学习做铺垫。
PE变形:改变PE结构之后,PE加载器依然可以成功加载运行我们的程序。
一 变形常用技术:
结构重叠技术、空间调整技术、数据转移技术、数据压缩技术。
下面是相关概念只是(我只整理重点)
1.结构重叠技术:
结构重叠技术是指在不影响正常性能的前提下,将某些数据结构进行重叠的技术。在缩小PE的变形中将大量使用这种技术。
重叠能成功通常是以为以下三点:
(1)被覆盖的数据可能是另一个结构中的无用数据。
(2)有用的数据可能只对一个结构起作用,但是被覆盖的数据在两个结构中都用,此种情况下发生的重叠必须保证重叠的字段在两个结构中拥有相同值。
(3)PE加载器并不检测所有的字段。
找了一个helloword随便把头前面改了下。
2.空间调整:
通过改变一些数据块的大小来个自己扩充空间,然后往里面加代码或者数据,但是这种要注意,被扩充的节后面所有的数据要相应修改相对偏移位置,这个比较麻烦。
3.数据转移技术:
在编写过程中,处于某种考虑,经常会将PE中的一部分数据转移到另一个位置。比如,将程序中的变量存储到文件头部结构的某个字段中,将代码转移到头部