上次我们使用操作数类型来提高函数的可读性,并更好地理解其行为。逐个转换操作数在需要时是可以的,但如果需要对一大段代码进行转换,这很快就会变得乏味。
批量操作
要一次性转换多条指令的操作数,请在触发操作之前选择它们,可以使用相应的快捷键(例如R
),或从编辑 > 操作数类型菜单中选择。
如果在触发这些操作之一时有选择项,它不会立即执行,而是会先弹出另一个对话框:
在这里,您可以告诉IDA您想实际转换哪些操作数。可用的选项如下:
-
所有操作数:所选指令的所有操作数将被转换为所选类型(如果它们已经是所选类型,则转换回默认/数字类型); -
操作数值范围:只有值在下面的下限值和上限值之间的操作数会被转换。例如,您可以输入‘0x20’和‘0x7F’,让IDA只考虑单个ASCII字符,就像上一篇文章中的最后一个例子; -
操作数 :仅转换已经是所选类型的操作数(它们将被转换回默认/数字类型); -
非 操作数 :仅转换不是所选类型的操作数。未类型化和具有其他类型(例如十进制/枚举/偏移量)的操作数都将被转换为所需类型; -
未类型化操作数:仅转换未分配特定类型(默认/数字)的操作数。所有已经分配了类型的操作数将保持不变。
附注:不仅可以对指令使用此功能,还可以对数据使用。例如,将数据段中的几个独立整数转换为十进制或八进制。在这种情况下,“操作数”将是数据项。
学习资源
立即关注【二进制磨剑】公众号
原文始发于微信公众号(二进制磨剑):IDA技巧(89)批量操作
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论