IDA 技巧(82) 反编译器选项:伪代码格式化【文末抽奖】

admin 2024年12月3日22:19:10评论8 views字数 833阅读2分46秒阅读模式

Hex-Rays 反编译器的默认输出在简洁性和可读性之间寻求平衡。然而,每个人的偏好不同,因此它提供了一些选项来控制伪代码的布局和格式。

访问选项

由于其作为 IDA 第三方插件的起源,反编译器选项不是通过 IDA 的“选项”菜单访问,而是通过“编辑 > 插件 > Hex-Rays 反编译器,选项”按钮访问。

IDA 技巧(82) 反编译器选项:伪代码格式化【文末抽奖】
反编译器选项

伪代码格式化选项

格式化选项在选项对话框的主页面上可用。

IDA 技巧(82) 反编译器选项:伪代码格式化【文末抽奖】
伪代码格式化选项
  • 注释缩进:常规(行尾)注释的起始位置。显然,对于较长的行,注释会向右移动。块注释与其附加的语句对齐,因此此设置不适用于它们。

    IDA 技巧(82) 反编译器选项:伪代码格式化【文末抽奖】
    注释缩进
  • 块缩进:嵌套语句的缩进,例如在 if 语句或 for/do/while 循环体内。

  • 右边距:反编译器尝试将伪代码行长度保持在指定长度以下。例如,它会尝试通过将带有多个参数的函数调用拆分到单独的行上来实现:

    右边距
  • IDA 技巧(82) 反编译器选项:伪代码格式化【文末抽奖】
  • 最大字符串常量长度:伪代码中直接显示的字符串常量的最大长度。超过此值的常量将被替换为引用它的名称。

    IDA 技巧(82) 反编译器选项:伪代码格式化【文末抽奖】
  • IDA 技巧(82) 反编译器选项:伪代码格式化【文末抽奖】

最大逗号数:反编译器在一个表达式中可以使用多少个逗号运算符以使代码更紧凑。通过减少此值,您应该会看到更简单的表达式,但代价是更多的代码行:更多/更深的嵌套 if 语句、中间结果的额外变量,甚至是额外的 goto 语句。

IDA 技巧(82) 反编译器选项:伪代码格式化【文末抽奖】
最大逗号数

将最大逗号数更改为 1 后,逗号消失,但代价是增加了 ifgoto 语句:

IDA 技巧(82) 反编译器选项:伪代码格式化【文末抽奖】
减少最大逗号数

更改默认设置

通过使用上述 UI 从 IDA 内部更改设置时,它们仅适用于当前数据库。要更改所有新数据库的默认设置,可以编辑 IDA 安装目录中的 cfg/hexrays.cfg,或在用户目录中创建一个包含您想要覆盖的选项的文件

更多文章

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

👉👉👉【IDA 技巧合集】👈👈👈
👉👉👉【Github 安全项目合集】👈👈👈
学习零基础学习 IDA 逆向
【课程完结!内容揭秘!】7 天打造 IDA 9.0 大师:从零基础到逆向精英
【新课抽奖进行中】
【新课来袭】第 2 期-Android 逆向内核攻防

原文始发于微信公众号(二进制磨剑):IDA 技巧(82) 反编译器选项:伪代码格式化【文末抽奖】

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月3日22:19:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   IDA 技巧(82) 反编译器选项:伪代码格式化【文末抽奖】https://cn-sec.com/archives/3463700.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息