前段时间推出过一款PETools命令行版本的PE文件解析器,由于命令行参数较多且每次输出文件都要重新读取一遍效率较低,故今天我终于抽出时间来继续完善这个小工具,由于PETools工具与其他工具重名,故本次更名为PEView,且使用了交互式结构解析,让解析结果更加清晰,在使用上更加的易用,同时默认支持上下箭头查询历史命令,非常方便。
市面上几乎所有的PE文件查看工具都是图形化界面的,本工具不会采用图形界面模式,一是因为本人对图形开发不太熟悉,二是可以彰显与众不同,目前只有32位,64位正在开发中。
- 工具下载地址 (32位版) :https://share.weiyun.com/0siXhCsI
- 工具下载地址 (64位版)(未经测试) :https://share.weiyun.com/Y7E1NNmn
本次更新主要大变动并不算多,主要是对命令行的完善,移除几个不太实用的功能,同时也增加了几个实用功能,如下是具体的命令参数。
启动
PEView相对于PETools来说不在使用传入文件路径的方式打开文件,而是使用Open一次性打开文件,只有打开后才可以对其进行其他操作,打开文件需要使用Open命令跟随路径。
当文件被打开时,其实就是创建了一个内存映射,此时我们就可以执行一些查询命令了,例如查询Dos,NT头数据,可以这样。
查询数据目录表【DataDirectory】,执行如下命令。
查询,【Section】本程序的节表。
导入表查询有多个命令,【ImportAll】用于查询所有导入过的模块以及该模块的导入函数。
【ImportDll】命令用于查询该程序导入了那些DLL文件,可用来确定范围。
【ImportByName】命令用于查询,查询指定导入表中导入过的函数
【ImportByFunction】该命令可用于验证,指定的程序中是否引入了指定函数
【Export】用于查询程序中的导出表,由于只有DLL存在导出表,所有我们需要先切换到DLL文件上,然后在查询。
【FixRelocPage】用于显示重定位分页情况。
【FixRelocRVA】有了分页情况,就可以使用FixRelocRVA --rva 00002000查询该页内具有的页。
【Resource】则用于显示当前程序的资源表。
【Fingerprint】用户检查特定程序使用了那种编译器编译,由于这里特征不多所以暂时并不是那麽好。
【GetProcAddr】用于验证,所在程序中,特定模块中的内存地址。
【CheckSelf】用于检查被打开程序开启的保护模式。
【GetHexAscii】这是一个独立模块,可以独立使用,通常传入的是文件路劲,文件偏移,以及读取大小,即可实现文件的十六进制读取展示。
剩下的就是一些小功能了。
【add/sub】简单的十六进制计算器。
【VaToFoa / RvaToFoa / FoaToVa 】将虚拟地址转为实际地址,等基本转换。