此命令提取给定 LST 文件中的所有标签(该文件作为单一参数提供)。根据提取的标签,在当前目录中创建一个 x64dbg 数据库。
LST 文件可以在 IDA 中通过 文件 菜单生成:生成文件 -> 创建 LST 文件...
$ lst2x64dbg sample.lst
此命令提取给定 CSV 文件中的所有标签(该文件作为单一参数提供)。根据提取的标签,在当前目录中创建一个 x64dbg 数据库。必须提供镜像基址值。
CSV 文件可以在 Ghidra 中通过 窗口 菜单选择 符号表 生成。
在打开的符号表窗口中,按 位置 列对数据进行排序。然后选择所有非外部位置的符号。选中所需符号后,右键单击并选择:导出 -> 导出到 CSV...
注意:如果你碰巧选择了外部位置,它们将被忽略。

将此文件命名为 <模块名>.csv
$ ghidra2x64dbg -i 400000 sample.csv
镜像基址值可以在 CodeBrowser 窗口的反汇编面板的最顶部找到。它是 DOS 头部的一部分。

Ghidra 有一个默认关闭的分析选项,在某些情况下可以为示例中的代码提供更多标签。此选项 WindowsPE x86 传播外部参数 可以在首次使用 CodeBrowser 工具打开示例时,在分析选项窗口中找到。

此命令提取给定 Binary Ninja bnida JSON 文件中的所有标签(该文件作为单一参数提供)。根据提取的标签,在当前目录中创建一个 x64dbg 数据库。必须提供镜像基址值。
要从 Binary Ninja 生成 bnida 文件,首先需要按照说明安装插件:
https://zznop.github.io/bnida/
在 Binary Ninja 中加载可执行文件后,导航到 工具 菜单并选择 bnida: 导出分析数据。

将此文件命名为 <模块名>.json
$ binja2x64dbg -i 400000 sample.json
此命令提取给定 Relyze 生成的 x64dbg 数据库中的所有标签(该文件作为单一参数提供)。根据提取的标签,在当前目录中创建一个 x64dbg 数据库。
要在 Relyze 中生成 x64dbg 数据库,只需打开可执行文件,在 代码 视图中右键单击并导出。

将此文件命名为 <模块名>_relyze.dd32 或 <模块名>_relyze.dd64
$ relyze2x64dbg sample_relyze.dd32
两个命令现在都支持包含由 radare2 检测到的 main() 的位置。只需向任一命令添加 -r 或 -main,如下所示:
$ lst2x64dbg -r 0x0040a53a sample.lst
只需从 Cutter 的用户界面或 radare2 命令行复制并粘贴 main 的虚拟地址。

这些工具中的每一个都会检查当前目录中是否存在由先前运行其中一个工具而创建的 x64dbg 数据库。该数据库中任何已存在标签的偏移量将不会因后续运行任何工具而改变。换句话说,每个工具都会扩展标签列表,但不会覆盖任何已有的标签。
如果你手动创建了标签,建议只在一个反汇编器中创建它们。并且,确保该反汇编器的输出是第一个被上述工具处理的。这样,你所有的自定义标签都保证存在于新的 x64dbg 数据库中。
在软件的后续迭代中,将会有一种方法在处理合并步骤时解决冲突。