IDA技巧(99)IDA 枚举类型

admin 2025年1月12日21:07:38评论8 views字数 988阅读3分17秒阅读模式

在IDA中,枚举(来自“enumeration”)是一组具有数值的符号常量。它们可以被视为C/C++枚举类型和预处理器定义的超集。

这些常量可以在反汇编或伪代码中使用,以符号名称替换特定数字或其组合,使列表更易读和理解。

手动创建枚举

枚举视图是IDA默认桌面布局的一部分,但也可以通过“视图 > 打开子视图 > 枚举”或快捷键ShiftF10打开。

IDA技巧(99)IDA 枚举类型

要添加新枚举,请使用上下文菜单中的“添加枚举...”或快捷键Ins(在Mac上为I)。

IDA技巧(99)IDA 枚举类型

在对话框中,您可以指定符号常量的名称、宽度(以字节为单位)和数值基数。

一旦创建了枚举,您就可以开始向其中添加常量。为此,请使用上下文菜单中的“添加枚举成员...”或快捷键N

IDA技巧(99)IDA 枚举类型

一个枚举可以有多个具有相同值的常量,但所有常量的名称必须是唯一的。

IDA技巧(99)IDA 枚举类型

通过本地类型创建枚举

本地类型视图也可以用于创建枚举。只需按Ins,在文本框中编写C语法定义,然后点击确定。

IDA技巧(99)IDA 枚举类型

要使枚举在枚举视图中可用,以便在反汇编中使用,请使用上下文菜单中的“同步到idb”或双击新添加的枚举类型。

从类型库导入枚举

与其从头创建枚举,您还可以利用IDA附带的类型库,其中包括系统头文件和SDK中的枚举。如果您知道枚举或其成员之一的名称,可以检查它们是否存在于已加载的类型库中。为此,请使用“添加枚举”对话框中提供的两个链接按钮之一:

IDA技巧(99)IDA 枚举类型

如果您点击其中一个,IDA将显示当前加载的类型库中所有可用的枚举或成员(符号)列表。

IDA技巧(99)IDA 枚举类型

如果您事先知道标准枚举名称,只需在“添加枚举”对话框中输入它,IDA将在加载的类型库中找到匹配项时自动导入。

使用枚举

枚举可以用来用符号常量替换反汇编或伪代码中的(几乎)任何数值。这可以通过数字上的上下文菜单完成:

IDA技巧(99)IDA 枚举类型

或者按快捷键M,显示一个选择器:

IDA技巧(99)IDA 枚举类型

枚举成员列表会自动缩小到与反汇编/伪代码中的数字匹配的那些。

要查看转换后符号常量的值,将鼠标悬停在其上:

IDA技巧(99)IDA 枚举类型

学习资源

立即关注【二进制磨剑】公众号

👉👉👉【IDA 技巧合集】👈👈👈
👉👉👉【Github 安全项目合集】👈👈👈
零基础学习 IDA 逆向
【课程完结!内容揭秘!】7 天打造 IDA 9.0 大师:从零基础到逆向精英
🔥🔥🔥 第二期 Android 内核逆向🔥🔥🔥🔥
【课程完结!内容揭秘】第 2 期-Android 逆向内核攻防
🔥🔥🔥 第三期 程序混淆十讲🔥🔥🔥🔥
【课程】第 3 期-程序混淆十讲【早鸟报名开启】

原文始发于微信公众号(二进制磨剑):IDA技巧(99)IDA 枚举类型

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月12日21:07:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   IDA技巧(99)IDA 枚举类型http://cn-sec.com/archives/3622390.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息