教程详情
文件下载 | 文件名称:甲壳虫VIP_PE结构(无KEY) | 文件大小:414.17 MB |
下载声明:本站文件大多来自于网络,仅供学习和研究使用,不得用于商业用途,如有版权问题,请联系博猪! | ||
下载地址: 下载教程 |
教程目录:
PE结构1——基本知识
PE结构2——基本结构
PE结构3——PE头
PE结构4——区段与代码类型
PE结构5——输入表
PE结构6——输出表
PE结构7——重定位
PE结构8——资源表
免杀方法1——免杀前的特征码归
免杀方法2——汇编下修改特征码方
免杀方法3——字符串特征码修改方法
免杀方法4——输入表特征码免杀方法
一、 什么叫PE文件:
PE文件指的是可移植可执行(Portable Executable)文件。这些文件通常是DLL和EXE文件。一个 PE 文件中可以有多个命名空间,也可以包括嵌套的命名空间。而一个命名空间可以拆分到多个 PE 文件。一个或多个 PE 文件(可能还有其它非PE文件,如资源文件)可以组合在一起创建程序集。程序集是可部署、可进行版本编号和可复用的物理单元。
二、 PE文件的基本术语:
1、文件地址:
分为 偏移地址(C32载入可见,是PE文件储存在硬盘上时的一个内部的绝对地址)
RVA地址(PE文件各数据导入内存镜像后相对于基地址的偏移量)
VA地址(PE文件各数据导入内存镜像后虚拟地址,OD载入可见)
镜像基址(PE文件导入内存镜像时的初始地址,EXE缺省值为00010000h,DLL为00400000h)
其中 VA地址=RVA地址+镜像基址
文件A 内存A 内存B
举例:图书馆的每本书都是存放在固定的书架上的,其存放地址称之为偏移地址;
图书馆外借时都有个外借编码,称之为VA地址,外借编码前面标识的外借日期称为镜像基址,外借序号称为RVA地址;
其中 外借编码=外借日期+外借序号。
0812030456=081203+0456
2、区段:
PE文件在载入内存镜像时,是分段载入的,表示为区段,故偏移地址要转换成RVA、VA地址,每个区段的计算公式是不一样的。
举例:列车分为驾驶区、动力区、软卧区、硬卧区、餐车、软座区、硬座区、车尾。
3、常见目录表:
输入表——PE文件调用WINDOWS DLL函数的列表
输出表——PE文件输出DLL函数的列表
重定位表——PE文件用来重新定位某些代码(字符串、指针地址等等)的列表。
资源表——PE文件运行时释放出的一些资源文件(如DLL、EXE、图标、图形界面CSS等等)
举例:在打网球时,我们用网球俱乐部提供的网球、场地等等就称为输入表;而我们自己拿出自己专用的球拍、护腕、头巾等等,则称为输出表;我们根据俱乐部发给我们的号码牌,根据号码牌上的号码,去储物柜拿我们储存进去的一些东西时,称为重定位表;我们身上穿的衣服、带的钥匙、包括皮肤颜色、背包,统称为资源表。
4、代码:
分为 HEX十六进制代码
字符代码
(字符代码分为字符串和乱码,字符串有ASCII字符串和UNICODE字符串两种)
ASCII字符串读取以一个00结束
UNICODE字符串以2个00结束,或以读取错误结束(字符之间没有00间隔)
汇编代码
5、高位读取:
PE文件有个原则——高位读取。
比如文件中有段代码是指针:7F 98 01 00。
那么这段代码应该从高位读取00 01 98 7F,转换成指针:0001987F,PE文件里的指针一般为RVA地址。
这个类似于汇编知识中的堆栈的储存与读取(PUSH和POP后的ESP值),在汇编知识教程里大家应该学到。
教程截图
教程下载
原文链接:【教程宝盒网】 https://www.jc-box.com/7338.html,转载请注明出处。
请先
!