字符串引用

在任何程序的代码中,您经常会遇到字符串数据(注册表键、文件名、错误消息等)。查看已反编译应用程序中过程和函数所使用的字符串列表非常有用。这正是我们的字符串的引用 (String references) 功能所设计的用途,可通过工具 (Tools)菜单访问。要使用它,只需导航到工具 -> 字符串的引用,如果您的程序包含任何字符串数据,它们将如下所示显示:

VB Decompiler 字符串引用

在列表中找到所需的行并双击它。将定位包含该行的代码段,并在代码窗口中打开相应的过程。再次双击该行将在程序代码中继续搜索此行。单击“确定”将在代码中找到高亮的行并关闭行选择对话框。取消将简单地关闭对话框。

显示字符串的引用 的功能仅在软件的授权版本中可用,而不可用于Lite 版本。

重要提示: 字符串不仅针对活动模块(如 1.x 程序中的版本)显示,而是针对整个程序显示。此更改是为了便于分析具有大量窗体和模块的程序而做出的。

VB Decompiler 还支持编辑字符串。要调用编辑字符串对话框,右键单击要更改的字符串,并从出现的上下文菜单中选择编辑字符串 (Edit string)。将出现一个用于输入新字符串的对话框。更改字符串后,单击Ok,字符串将直接在编辑的文件中修改。我们建议在检查文件之前创建备份,因为在此操作期间不会创建备份,并且无法撤销此操作。

VB Decompiler 字符串编辑对话框

重要提示: 编辑字符串时,请记住新字符串的长度不应超过旧字符串的长度。这与二进制应用程序文件的格式有关,其中没有为插入较长的字符串预留空间。

您还可以在十六进制编辑器中查看和部分编辑字符串。为此,右键单击字符串并从出现的菜单中选择十六进制编辑器。在十六进制编辑器中,有撤销和重做更改的功能,这简化了修改应用程序字符串数据时的实验。

具有字符串列表的窗口还有一个名为搜索 (Search) 的文本字段和一个查找下一个 (Find next) 按钮。此功能对于在列表中查找字符串非常有用,特别是在处理大型项目时,通过列表手动进行视觉搜索极其困难。

快速反编译和大字符串列表

可以通过初步反汇编收集字符串引用,包括在快速反编译 (Fast decompilation) 模式下。这与搜索所有完全反编译的文本不同。26.2 版本使对话框支持超过 32,000 个引用,并改进了大列表的内存处理。

对于 .NET 程序集,可以检查来自#US 堆的用户字符串及其文件位置。该列表代表可用于静态分析的字符串;加密或动态生成的字符串可能需要单独调查。