本文最后更新于 325 天前,其中的信息可能已经有所发展或是发生改变。
www.010Editor.com
查看PE的工具
winhex
这个功能很强大,但是查看文件结构不方便,可以写脚本来告诉编辑器如何解析,脚本语言是winhex的特定语言;
010_Editor
功能和winhex同样强大,这个也可以写脚本,脚本语言是C语言,因此这个工具会更加方便;
举例: myPE.BT 直接拖到 010_Editor里来写
步骤:
vs中的结构体直接拷贝到脚本里,然后重新定义一下就好了(直接把文件拖进010_Editor来编辑),就会按照结构体来解析;
myPE.BT
typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header
WORD e_magic; // Magic number
WORD e_cblp; // Bytes on last page of file
WORD e_cp; // Pages in file
WORD e_crlc; // Relocations
WORD e_cparhdr; // Size of header in paragraphs
WORD e_minalloc; // Minimum extra paragraphs needed
WORD e_maxalloc; // Maximum extra paragraphs needed
WORD e_ss; // Initial (relative) SS value
WORD e_sp; // Initial SP value
WORD e_csum; // Checksum
WORD e_ip; // Initial IP value
WORD e_cs; // Initial (relative) CS value
WORD e_lfarlc; // File address of relocation table
WORD e_ovno; // Overlay number
WORD e_res[4]; // Reserved words
WORD e_oemid; // OEM identifier (for e_oeminfo)
WORD e_oeminfo; // OEM information; e_oemid specific
WORD e_res2[10]; // Reserved words
LONG e_lfanew; // File address of new exe header
} IMAGE_DOS_HEADER;
IMAGE_DOS_HEADER dosHeader;
Templates -> view installed Templates -> 下图设置一些内容
在Templates下选择 Archive->myPE,之后再F5刷新,最后表现如下,漂亮
可以调用库函数,注意库函数首字母要大写;直接写就好,是按照脚本顺序执行的;
F1按键 有帮助文件,里面有详细的模版说明
如:进制设置 format=hex|decimal|octal|binary
给某个标志位增加颜色,重点标注一下
还有函数可以直接使用
严谨的做法:开头应该就是 设置小位的方式
还可以做判断
第二部分定义的数组,如果数组长度为0,那就自动消失;
结构体还可以传参数
还可以某个标志位决定数组是否存在
www.010Editor.com
新版本提供了很多很多的模版,新版本如果发现没有模版,就会自动下载模版解析;
这种购买之后,是永久的;
使用最新版本的,可以使用官方的模版,然后自己修改模版中不恰当的地方,参考官方版本来修改;
为了拓展010Editor脚本的功能,它允许加载动态库,调用导出函数,010Editor太强了;