修改数据

从版本 9.4 开始,VB Decompiler 配备了一种用于在文件内编辑二进制数据的现代化且便捷的工具——功能完备的十六进制编辑器 (HEX Editor)。该工具可从主程序窗口访问,位于每个过程或窗体的十六进制编辑器选项卡中,与反编译的代码并列显示。

十六进制编辑器允许您按字节或按块编辑文件。要导航到检查文件中的目标地址,您可以使用虚拟地址(包括Image Base)或偏移量(表示相对于文件开头所需数据偏移量的常规地址)。

VB Decompiler 内置十六进制编辑器

在反编译器的早期版本(版本 9.4 之前)中,文件编辑功能使用更原始的工具“数据补丁器”实现。其工作原理如下:在工具 (Tools)菜单->补丁数据 (Patch data)中,存在一个名为“补丁器”的工具,可用于在分析程序代码后需要修改某些部分的情况。为避免使用外部工具并更改所需的字节,VB Decompiler内置了此功能。补丁器的窗口如下所示:

VB Decompiler 早期版本的 Data Patcher

使用补丁器非常简单。在虚拟地址 (Virtual Address)字段中,您输入要编辑字节的地址,然后按Enter或点击Get。所选地址附近的数据字节将显示在“数据”字段中,您可以更改选定的字节,之后必须点击Set,输入的字节即被更改。

如果在程序选项中启用了快速反编译 (Fast decompilation)选项并禁用了缓存反编译代码 (Cache decompiled code)选项,则所有更改都会反映在该函数中(即修改字节的函数)。为此,只需双击树中的该函数名称重新打开该函数即可。

重要提示:此功能仅用于编辑您自己的程序文件或您拥有相应权限的文件,以及在反病毒实验室中研究恶意代码。在更改他人的代码之前,请查阅有关是否存在此类权利的许可协议。