玩反编译的朋友可能都会用到pe解析软件,pe解析软件的主要作用是用来分析PE文件内部数据结构,这类的软件有很多。今天小编再给大家分享一款PE Anatomist文件解析软件,支持解析EXE、DLL、SYS、OCX、SCR、CPL、TLB、OLB、MUI等文件。
界面预览图:

PE Anatomist 是一个免费的PE文件数据结构分析工具,这款PE文件解析软件可用于查看PE可行性文件的数据结构,并做合适的数据分析用。它可以直接显示了PE,OBJ或LIB文件中几乎所有已知的数据结构,并进行一些分析。
PE Anatomist文件解析软件功能特点:
===============支持文件格式===============
PE32
PE32 +
COFF对象
对象库
===============PE图像架构===============
Intelx86
AMD64
ARM7
ARM7拇指
ARM8-64
IntelIA64
CHPE(ARM8-64上的x86)
===============标头与数据结构解析===============
PE:IMAGE_DOS_HEADER,IMAGE_FILE_HEADER,IMAGE_OPTIONAL_HEADER,IMAGE_OPTIONAL_HEADER64与DataDirectories列表与有关某些字段的其他信息
PE:COFF符号表
PE:节表,支持长节名(通过符号表)与熵计算
PE:导入表(支持MS样式的名称分解)
PE:绑定导入表
PE:延迟导入表
PE:导出表与其他信息
PE:资源表,其中包含有关不同资源类型的附带信息与所有类型的仔细视图
PE:基本重定位表。目标地址确定与解释可用于所有支持的体系结构。它检测导入,延迟导入,导出,来自loadconfig目录的表,ANSI与UNICODE字符串。
PE:有关PE Authenticode签名的简要信息
PE:具有SEH,GFID,解码的CFG位图,GIAT,Guard LongJumps,CHPE元数据,动态值重定位表,安全区配置,易失性元数据表解析与有关某些字段的其他信息的LoadConfig目录
PE:调试目录。它解析CODEVIEW,POGO,VC功能,REPRO,FPO,EXDLL特性,SPGO调试类型的内容
PE:TLS配置与回调表,其中包含有关某些字段的其他信息
PE:异常数据表。支持x64(包含配置EPILOG展开代码的版本2),arm,arm64,ia64体系结构,与对于x64的展开数据链,特定于语言的处理程序数据(C范围,C ++ FuncInfo,C ++ EH4,C ++ DWARF LSDA)与展开数据的十六进制视图
PE:COM描述符目录粘贴:可用的头,表与元数据信息。还包含一些NGEN与ReadyToRun标头
PE:解码丰富的签名,指示使用的工具,正在执行的操作,工具的完整版本与该工具所属的VisualStudio的版本
PE:IAT表内容
PE:VB5与VB6典型结构:项目信息,DLLCall导入,引用的模块,对象表
OBJ:IMAGE_FILE_HEADER,ANON_OBJECT_HEADER,ANON_OBJECT_HEADER_V2,IMPORT_OBJECT_HEADER
OBJ:配置解码@ comp.id与@ feat.00的COFF符号表,与辅助符号
OBJ:部分表与所选部分的重定位
OBJ:CodeView调试符号表
OBJ:CodeView类型表
OBJ:MSVC IL类型表
LIB:存档成员列表
LIB:第一个与第二个(如果可用)链接器成员
LIB:导入元素IMPORT_OBJECT_HEADER的摘要表(如果有)
FLC-文件位置计算器
显示设置并按列表的任何列排序
通过外部DLL文件对程序界面进行本地化(同时提供俄语与英语选项)
资源管理器的右键菜单集成
解码国家Unicode符号的字符串(现在提供西里尔字母CP1251)
===============局限性与已知错误===============
十六进制视图从起始地址限制为4 KB
RT_GROUP_ICON与RT_GROUP_CURSOR资源类型的转储仅保存标头,而没有图标与光标
ANSI与UNICODE字符串检测限制为112个字节
列表排序不自然
===============一些属性===============
如果将PE映像打造为可重现,则不会解码文件头中的时间戳。
在确定VA,RVA或文件偏移量是否属于特定节时,节名将用其访问属性[R],[W],[X]或其组合与标签[VM]进行补充。指定地址的数据未初始化。
===============标头===============
显示基本PE标头的内容:IMAGE_DOS_HEADER,IMAGE_FILE_HEADER,IMAGE_OPTIONAL_HEADER(IMAGE_OPTIONAL_HEADER64)与目录列表。某些行业给出了描述或仔细特性。
屏幕截图
===============栏目===============
具有计算功能的PE文件的节列表,支持COFF符号表中的长节名称。
===============COFF符号===============
COFF符号表内容。
===============导入表===============
导入表包含两个列表。第一个列表枚举库,第二个列表显示导入的函数。最后一个在RVA指向的地址上显示函数名称,提示,IAT的RVA,INT的RVA与内容。也可以使用MS样式的名称分解。
屏幕截图
===============导出表===============
有两个列表,第一个表示导出表的标题,其中包含有关某些字段的其他信息。第二个列表包含导出的符号信息。除此之外,还会显示导出的符号,提示与顺序的节名称。也支持库转发。
===============资源目录===============
资源表显示PE资源。该列表按资源类型分组。资源内容描述可用于几种资源类型。资源转储与视图也可用。
还可以查看有关资源部分中所有结构的仔细信息。
这是RT_VERSION资源视图的示例。所有资源类型均支持十六进制视图。
===============绑定导入表===============
绑定导入表库列表。
===============延迟导入表===============
导入表包含两个列表。第一个列表枚举库,第二个列表显示导入的函数。最后一个在这些RVA指向的地址上显示函数名称,提示,IAT的RVA,INT的RVA,绑定导入的RVA,卸载的RVA与内容。
===============基本重定位表===============
基本重定位表显示了ImageBase更改时应更改的虚拟地址设置。分析每个目标虚拟地址,随后提出对内容的解释。
有检测到:
导入的函数( I:)
导入的函数thunk( IT:)
延迟导入的功能( DI:)
延迟导入的函数thunk( DIT:)
延迟的导入描述符地址( DID:)
导出的函数( E:)
LoadConfig目录中的地址( SEH处理程序, CFG检测功能, CFG调度功能, RFG失败例程, RFG验证堆栈功能,安全Cookie, GFID表)
全局指针值(如果由目标体系结构提供)(全局指针)
也支持检测ANSI( A:)与UNICODE(UTF-16)( U:)字符串。也可以使用国家符号识别,但是现在受CP1251的西里尔符号限制。
如果解释未定义,则将显示12字节的十六进制形式,未初始化数据的情况除外。
目标地址的确定与解释可用于x86,x64,ARM Thumb,ARM64,IA64体系结构。
===============PE认证码===============
PE验证码签名属性的简短说明
===============加载配置目录===============
LoadConfig Directory是一组独自的选项卡,用于标题(支持某些SDK 19041以上的所有标题结构版本)与有关某些字段与嵌套数据结构的信息。
允许的异常处理程序列表。仅用于x86。
应用程序中作为间接调用的有效目标的功能集,支持其他状态标志(禁止调用,禁止导出)。
解码GFID表以打造CFG位图,并将其显示为HEX-View
IAT条目中运用的防护地址的内容,配置值说明。
由CFG保护的一组跳远动作。
CHPE模式的标题。显示用于模拟架构的IAT。
Retpoline技术要求的动态值重新定位表的内容。列表与基本重定位表相同。仅支持数据的第一个版本(即没有序言与尾声配置)。
PE映像的配置数据,可以在内存区域(Intel SGX)中执行。
易失性元数据表的内容。
===============调试目录===============
调试信息。支持从0x01到0x14的所有调试类型。
COFF组信息。
使用C ++编译器计数器的功能。
可复制图像打造的哈希值。
帧指针省略调试信息。
IMAGE_OPTIONAL_HEADER.DllCharacteristics扩展值。唯有一个已知值:CET Compatible,它指向ControlFlow实施技术(CET)影子堆栈支持。
基于样本的概要文件引导式优化的调试信息(未记录)
===============TLS配置与回调===============
TLS配置与回调列表。
===============异常数据表===============
与体系结构相关的异常数据表与展开信息。支持x64,ARM7,ARM7 Thumb,ARM64,IA64。
ARM7 Thumb的功能开始地址显示为-递增1。相同的行为是对于CoreCLR函数开始的。
展开代码对于x64,ARM7 Thumb,ARM64与IA64进行解码。
同样,对于所有体系结构,解码了几种特定于语言的处理程序数据。有C范围,C ++ FuncInfo(MSVC ++),C ++ EH4(MSVC ++,优化版本)与C ++ DWARF LSDA(类似于GCC的编译器)数据结构。
展开数据的十六进制视图可用于除ARM7之外的所有体系结构。
x64展开代码,两个已知版本的代码均受支持。对于结尾,偏移量的负值显示为距功能端的偏移量标记。
ARM Thumb展开代码与结尾列表。
ARM64展开代码与结尾列表。
ARM(非拇指模式)异常数据。缺少展开码。
IA64展开代码。支持所有记录格式,X1-X4除外。支持P4(spill_mask)格式,但不显示。
x64的异常链数据。
C try / catch块的列表。
有关C ++ try / catch块的信息。三个列表填充了状态图,try / catch块处理程序与展开图。不显示FuncInfo标头。
有关C ++ EH4(优化)try / catch块的信息。四个列表填充了状态图,try / catch状态,try / catch处理程序与展开图。不显示FuncInfo4标头。
有关类似GCC的try / catch块的信息。第一个列表显示尝试/捕获块,处理程序与其他操作标记。第二个列表显示展开动作链与捕获块类型过滤器。
所选展开信息的十六进制视图。
===============.NET标头与元数据===============
.NET头的内容:IMAGE_COR20_HEADER,CORCOMPILE_HEADER或READYTORUN_HEADER有关一些字段的其他信息
分析配置某些字段的解释的元数据表(解释的数据量将增加)。
ReadyToRun编译后的异常处理信息。
在程序启动或ReadyToRun代码运行时动态填充的插槽列表(辅助程序,字符串等)。签名解码尚不可用。
CIL形式的方法的RVA映射为其已编译的ReadyToRun视图。
===============丰富的签名===============
Rich Signature解码为@ comp.id符号,使用计数器的工具,工具名称,要执行的操作,工具的完整版本与该工具所属的VisualStudio的版本。
===============IAT表===============
IAT表的内容(如果已指向PE目录表)。导入的功能模块与名称可用。
===============VB5-6结构===============
搜索与解码VB5 / 6应用程序的内容具有几种基本结构。有项目信息,COM注册数据,对象表标头与对象列表,DLLCall动态导入列表。
===============LIB会员列表===============
图书馆会员名单。
===============LIB链接器成员===============
库的第一与第二个链接器成员。
===============LIB导入库条目===============
导入库条目摘要表。
===============OBJ截面表===============
对象文件的节与重定位表。
===============OBJ符号表===============
目标文件的符号表。
===============CODEVIEW调试信息===============
小节及其在CodeView信息文件中的位置。
===============CODEVIEW调试符号===============
CodeView7格式的所有符号的列表。也提供有关所选记录的解码信息。
Скриншот
===============CODEVIEW类型===============
CodeView7格式的所有类型的列表。也提供有关所选记录的解码信息。
Скриншот
===============MSVC中间语言(C IL)类型===============
MSVC用/ GL标志(整个程序的优化)以ILStore格式编译的OBJ文件中的数据类型列表。
Скриншот
PE Anatomist文件解析软件使用说明:
1、解压PE Anatomist压缩包,使用管理员权限运行PEAnatomist.exe。

2、运行PEAnatomist.exe后可以设置文件关联,直接从可执行文件右键菜单调用 PE Anatomist 进行解析。

3、使用可将要分析的文件直接拖入 PE Anatomist 窗口,当您加载文件后,软件会解析出 PE 数据结构,并做合适的数据分析,可查看的信息包含 DOS Header、File Header、Optional Header、Signature、Section、DLL Import、Resources、Base Relocations、IAT 等。
近期版本升级记录:
===============PE Anatomist 版本0.1.15.344升级===============
修复了解码Rich签名时确定VS 2017-2019的次要版本的错误(回归0.1.13与0.1.14)
修复存在错误数据时对RT_STRING资源的解码
添加了配置PE资源标题的仔细描述的选项卡
重做资源选项卡以列出而不按资源类型分组
固定排序资源列表
解析资源目录的过程已更改,数据正确性的新标准已添加
修复了程序初次启动时对设置文件的处理
更正了有关长符号名称的错误信息时COFF字符解析器的行为
修复了在虚拟模式下为列表视图构造右键菜单的错误
修复了在打开文件对话框中保存所选文件类型过滤器的问题
修复了在极少数情况下对UTF16行的错误识别
在PE文件中添加了检测到的ANSI与UTF16行的页面
为OBJ文件添加了CodeView调试信息解析
为OBJ文件添加了CodeView调试符号解析
添加了对OBJ文件的CodeView类型的解析
添加了新的CodeView调试符号记录的解析,解析度最高到S_REGREL32_INDIR_ENCTMP
增加了对新CodeView类型的解析,直到LF_INTERFACE2都包含在内
在MSVC使用/ GL标志或其他MS ILStore格式编译的OBJ文件中添加了类型信息的解析
===============PE Anatomist 版本0.1.14.26升级===============
修复了一个错误,该错误造成在查看由Borland Delphi打造的PE文件的文件头时程序崩溃
内部数据结构的次要优化
添加了从LIB文件提取成员的功能
加入文件关闭菜单
===============PE Anatomist 版本0.1.13.332升级===============
修复了使用带符号长整数对某些列表进行排序的错误
修复了在存在错误数据的情况下显示表ExceptionsData的错误
修复了在某些情况下在RVA描述中显示部分名称的错误
在IMAGE_DEBUG_DIRECTORY的POGO页面上为部分组添加了新的内容描述行
优化与重构大部分代码
从SDK 19041向LOAD_CONFIG_DIRECTORY添加了新字段-GuardEHContinuations,与未记录的字段-扩展CFG(xFG)
添加了GuardEHContinuations列表页面
在GFID列表中添加了新功能标志
修复了覆盖到剪贴板时行尾错误的错误
修复了如果指定了错误的地址而解析COFF符号表的错误
主程序窗口的图标不再更改为正在处理的文件的图标
固定IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT解析
添加了对OBJ文件与LIB文件格式的支持
增加了对非COFF OBJ文件的支持
添加了解析OBJ文件的符号表的功能
添加了有关LIB文件中的导入库条目的摘要信息的页面
添加了节表分析与OBJ文件重定位
集成到资源管理器右键菜单中的文件扩展名数量已增加
修复了如果先前未在系统中注册文件扩展名并集成到外壳右键菜单中的错误
===============PE Anatomist 版本0.1.12.73升级===============
修复了右键菜单集成错误
修复了使用打开的资源属性窗口加载新文件时程序的行为
修复了在Dyn.Value重定位表中显示某些字符的描述的错误
修复了ARM Thumb的错误分析ExceptionsData表的错误:有关以UnwindInfo压缩形式存储的寄存器的错误信息
添加自然排序功能以获取更多列表
修复了为UnwindInfo.EHData.CPP_EH4填充捕获处理程序列表的错误
修复了造成大型列表中全选操作执行缓慢的错误
一些包含N多元素的列表已切换为虚拟模式
添加了通过x64的ExceptionData列表的关联UNWIND_INFO元素进行导航的功能
===============PE Anatomist 版本0.1.11.155升级===============
修复了解析延迟导入表的旧版本时的错误
对数字到字符串转换器的小优化
添加了对本机导入节表(ReadyToRun,NGEN)的解析
添加了对MethodDef EntryPoints表的解析(ReadyToRun)
较小的设置存储结构优化
轻微列表排序优化
修复了将大列表覆盖到剪贴板(超过100,000行)的问题
修复了将调查文件拖放到程序文件后的加载错误
更新的程序设置对话框
添加了一些新设置
FLC优化
.NET元数据表的解析机制已经过重新设计,可以快速访问任何字段,行,表
在某些表中添加了.NET元数据令牌的描述
这款PE文件解析软件,因为原理和作用的原因,可能部分杀毒或者安全软件会误报。。尽请周知。













