找回密码
 立即注册

QQ登录

只需一步,快速开始

1401软件论坛总版规【新人必看】如何正确发布收费帖子加入vip系统学习仅需498元免费获得1401软件安全论坛vip开通本站VIP会员请联系QQ 564853771
论坛纪念优盘Beyond EXE超强加密器V1.61401论坛破解工具包 2017-9-12[破解班vip]入门篇[破解班vip]基础篇
[破解班vip]脱壳篇[破解班vip]实战篇[破解班vip]网络验证篇[破解班vip]零基础HOOK教程[破解班vip]零基础易语言入门
[破解班vip]零基础c语言入门[破解班vip]零基础Delphi编程入门[破解班vip]寒假培训课程共7课[破解班vip]破解提高篇[破解班vip]易语言培训课程
[破解班vip]核心技术培训篇[破解班vip]pe格式与pe操作[破解班vip]2022全新封包-山寨-爆破全系列[原创课程]c++单文档框架课程[逆向班vip]汇编语句与反汇编基础
[逆向班vip]全自动扫雷辅助[逆向班vip]手机模拟按键[逆向班vip]植物大战僵尸辅助广告位招租...付费破解软件 +Q 564853771
查看: 2920|回复: 0

【PE文件格式】

[复制链接]
  • TA的每日心情
    开心
    2016-12-31 19:24
  • 签到天数: 148 天

    [LV.7]常住居民III

    335

    主题

    380

    回帖

    1693

    积分

    版主

    【KingSolomon】

    UID
    972
    元宝
    340
    威望
    458
    贡献
    19
    信誉值
    0
    精华
    17
    在线时间
    179 小时
    注册时间
    2014-5-16
    最后登录
    2017-1-4
    违规
    0
    积分
    1693

    最佳新人活跃会员热心会员灌水之王论坛元老吾爱富翁工具大师已有小成

    QQ
    发表于 2014-5-25 22:52:28 | 显示全部楼层 |阅读模式
    Ȧ
    偏移      大小  含义      说明
    00000000    2    MZ签名     'MZ'字符
    00000002    2    文件长度%512
    00000004    2    文件长度/512
    00000006    2    重定位项数   重定位表的表项计数
    00000008    2    文件头所需段数 文件头的大小。文件头后面就是指令。
    0000000A    2    运行需最小段数
    0000000C    2    运行需最大段数
    0000000E    2    初始SS
    00000010    2    初始SP
    00000012    2    校验和     为0
    00000014    2    初始IP
    00000016    2    初始CS
    00000018    2    重定位表位置  为0x40是因为没有重定向表。
    0000001A    2    覆盖号
    000000XX    XX   重定位表    每个重定位表项即为一个远指针。
    000000XX    XX   程序入口点   偏移位置等于文件头大小。Win32程序在这里
                        打印一句“This program cannot be run in
                        DOS mode.”后退出。
    Win32特有:
    0000001C    8    保留字     为0
    00000024    2    OEM标识符
    00000026    2    OEM信息
    00000028    20   保留字     为0
    0000003C    4    PE文件头偏移  指定了PE文件头的位置



    以下偏移从PE文件头开始
    PE文件头:共24字节
    00000000    4    PE签名     'PE'字符。0填充共4字节。4个可能的值:'MZ'(DOS的,
                        2字节),'NE'(OS/2的,2字节),'LE'(也是OS/2的,2字
                        节),'PE'(0填充,4字节,Win32的)
    00000004    2    机器类型    即CPU类型,0x14C=I386;详见WINNT.H第5117行
    00000006    2    区段数     区段的数目,PE区段头部的数目。
    00000008    4    时期/日期戳   链接的时间
    0000000C    4    符号表的位置  符号表用于调试
    00000010    4    符号数
    00000014    2    可选标头大小
    00000016    2    特性      详见WINNT.H第5100行


    PE可选标头:
    00000018    2    类型      010B=32位可执行,020B=64位可执行,0107=ROM映像
    0000001A    1    链接器主版本号
    0000001B    1    链接器副版本号
    0000001C    4    .text段大小
    00000020    4    .data段大小
    00000024    4    .bss段大小
    00000028    4    程序入口点RVA  VA是虚拟地址,RVA是相对虚拟地址。虚拟地址等于实际
                        地址减去EXE基址(hInstance)
    0000002C    4    .text段基址   RVA
    00000030    4    .data段基址   RVA
    00000034    4    镜像基址    即hInstance
    00000038    4    分段对齐    每个段的起始地址必须是这个值的整数倍。
    0000003C    4    文件对齐    文件每个段的偏移必须是这个值的整数倍。
    00000040    2    操作系统主版本 针对的OS的主版本号
    00000042    2    操作系统副版本 针对的OS的副版本号
    00000044    2    文件主版本   即这个程序的主版本号
    00000046    2    文件副版本   即这个程序的副版本号
    00000048    2    最低操作系统  需求的操作系统的最低主版本号
    0000004A    2    最低操作系统  需求的操作系统的最低副版本号
    0000004C    4    保留      为0
    00000050    4    镜像大小    映像的全部大小,按照分段对齐的值对齐。不包括PE头。
    00000054    4    头大小     整个PE头的大小(包括EXE头)。
    00000058    4    校验和     为0。“信任服务”必须有一个合法的校验和
    0000005C    2    子系统     1=不需要子系统,2=Windows GUI,3=控制台,5=OS/2控制台
                        7=POSIX控制台,8=Win9x驱动程序,9=Windows CE
    0000005E    2    DllMain调用条件 1oadLibrary的时候调用DllMain;2:FreeLibrary的时候
                        调用;4:线程开始时调用;8:线程结束时调用;0x2000:这个
                        驱动程序是WDM模型的。
    00000060    4    初始线程栈总数 给初始线程保留的栈总数,但并不是所有都给初始线程。
    00000064    4    提交栈总数   提交给初始线程的栈大小。
    00000068    4    堆总数     给进程保留的堆总数。但并不是所有都给进程。
    0000006C    4    提交堆总数   提交给进程的堆大小。
    00000070    4    加载器标记   为0
    00000074    4    数据目录数   一般为0x10
    00000078    XX   数据目录    每个数据目录为8字节(4字节RVA+4字节大小)。目录的排
                        序决定了目录的意义。详见WINNT.H第5324行


    后面紧接着PE区段头部。
    以下偏移从PE区段头部开始
    PE区段头部(多个):
    00000000    8    区段名字    8字节以内。
    00000008    4    虚拟大小    实际使用的段大小。
    0000000C    4    RAW数据大小   RAW数据大小(已初始化数据大小)。
    00000010    4    RAW数据的RVA  RAW数据的位置
    00000014    4    重定位表RVA   重定位表的位置(主要出现在OBJ)
    00000018    4    行号表RVA    行号表的位置
    0000001C    2    重定位表项数  重定位表的项数
    0000001E    2    行号表项数   行号表的项数
    00000020    4    特性      定义段的读写、执行情况。详见WINNT.H第5368行


    重定位表结构:
    以下偏移从重定位表开始
    00000000    4    重定向RVA    如果段特性有IMAGE_SCN_LNK_NRELOC_OVFL,则为重定向
                        数量。
    00000004    4    符号表索引   符号表对应的索引。
    00000008    2    类型      详见WINNT.H第5645行


    PE文件主要结构:
    1、16位EXE头
    2、PE头
    3、各个段的镜像(4KB对齐)
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|1401软件安全 ( ICP备16034480号 )

    GMT+8, 2024-5-2 15:58 , Processed in 0.578758 second(s), 26 queries , Gzip On.

    Powered by Discuz! X3.5

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表