You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IDA Pro导出的asm文件中同时包含反汇编代码与枚举列表?

解决IDA Pro导出.asm文件时包含枚举列表的问题

方法1:调整导出对话框选项

在导出ASM文件时,修改默认设置即可:

  • 依次点击File > Produce file > Create ASM file
  • 在弹出的导出对话框中,找到**"Include enums"**(部分新版本可能标注为"Enums")的勾选框,确保其处于选中状态
  • 确认其他所需选项后,点击"OK"完成导出

新版本IDA默认取消了该选项的勾选,这是和6.8版本的核心差异点。

方法2:用IDC脚本强制导出枚举

如果上述选项无效或找不到,可通过IDC脚本将枚举单独导出后合并到主ASM文件:

  1. 按Shift+F2打开脚本控制台,或通过File > Script command进入
  2. 运行以下IDC脚本:
static main() {
    auto f, enum_id, enum_name, member_id, member_name, member_val;
    f = fopen("enums_export.asm", "w");
    enum_id = get_first_enum();
    while (enum_id != BADADDR) {
        enum_name = get_enum_name(enum_id);
        fprintf(f, "; Enumeration: %s\n", enum_name);
        fprintf(f, "%s ENUM\n", enum_name);
        member_id = get_first_enum_member(enum_id);
        while (member_id != BADADDR) {
            member_name = get_enum_member_name(member_id);
            member_val = get_enum_member_value(member_id);
            fprintf(f, "    %s EQU %X\n", member_name, member_val);
            member_id = get_next_enum_member(enum_id, member_id);
        }
        fprintf(f, "%s ENDM\n\n", enum_name);
        enum_id = get_next_enum(enum_id);
    }
    fclose(f);
}
  1. 脚本运行后会生成enums_export.asm文件,将其内容复制粘贴到主ASM文件开头即可。

方法3:确认枚举的可导出属性

确保你定义的枚举本身允许被导出:

  • 打开枚举窗口:View > Open subviews > Enums
  • 右键目标枚举,选择Edit enum
  • 在编辑窗口中,勾选**"Exportable"**选项
  • 保存修改后重新尝试导出

内容的提问来源于stack exchange,提问作者Marian M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 09:22:04