查看代码

代码视图结合了语法高亮、可折叠的代码块、基于地址的导航以及交叉引用。使用高级代码清单来理解过程,并使用反汇编和文件字节来检查该结果是如何获得的。

标识符的高亮与导航

将光标置于寄存器、变量或函数名称上以高亮显示当前列表中匹配的实例。当用作成员表达式的基础时,例如 str_1.Value,局部变量(如 var_XX 和 str_XX)也会被高亮显示。选择 global_XX 标识符会高亮显示其当前过程中的实例;此高亮与项目范围的引用搜索是分开的。

双击识别的过程调用以打开被调用的过程。地址常量可以引导至 HEX 编辑器中的相应字节。使用 Esc、导航箭头或鼠标的前进/后退按钮来浏览查看历史。

合并反编译和反汇编代码

右键单击反编译代码清单并选择 复制到反汇编器 (Copy to disassembler),或在代码视图中按 D。这将当前过程的重建语句与底层代码清单合并。为了保留您的位置,在调用命令之前将光标置于相关的 loc_ 地址上。

使用此工作流程时,请保持 添加地址 (Add Addresses) 开启(位于反编译设置)。反汇编器始终显示地址;添加地址 控制 反编译器 (Decompiler) 视图中的地址显示。

同一清单中的反编译代码与反汇编代码

重命名变量

对于 VB5/6 P-Code 和本机代码,右键单击变量并选择 变量改名 (Rename variable),或将光标置于变量上并按 N。输入有意义的分析名称。反编译器检查名称冲突和保留关键字。要撤销重命名,请使用 撤销重命名 (Undo renaming) 或 Ctrl+Shift+Z。此命令独立于普通文本编辑的撤销。

重命名使恢复的列表更易于分析;它不会恢复因编译而被移除的名称。在与他人交流发现时,将分析师分配的名称视为注释。

查找调用者和全局变量引用

要查找调用者,在Solution explorer中右键单击过程并选择 查找引用 (Find references),或在该过程的树视图中选中时按 X。结果列出了包含对其识别调用的过程。双击结果以检查调用者。此工作流支持 VB5/6 和 .NET;.NET 支持是在版本 12.4 中添加的。

要调查全局变量,在代码视图中将光标放在该变量的标识符上并按 X。因此,相同的键用于在树中查找过程引用以及在代码中查找全局变量引用。已识别的引用列表并不能证明不存在其他间接、动态解析或混淆的使用。

上下文相关快捷键

焦点快捷键操作
代码N重命名光标下的变量(VB5/6)。
代码X查找光标下全局变量的引用。
代码D将当前反编译的代码复制到反汇编器。
代码F4跟踪到当前行的地址;需要跟踪功能。
代码Ctrl+Shift+Z撤销光标下变量的重命名。
树X查找所选过程的引用。
树G打开跳转到节点的对话框。
树Ctrl+C复制所选对象的完整树路径。
树Space or Insert标记或取消标记所选项目。

单字母快捷键取决于当前聚焦的视图,并且不会替换输入字段中的正常键入。使用 Alt+1 来切换焦点。有关 Ctrl+T 和 Ctrl+F,请参阅 字符串搜索;有关树路径和地址,请参阅 跳转到地址;有关模拟器限制,请参阅 跟踪。