在 IDA Pro 中将独立代码视为函数

逆向工程 艾达
2021-06-18 03:57:24

在逆向工程程序时,我经常会发现如下所示的功能。这个函数特别有一组嵌套的 if/else 块(粉红色框),通常很容易理解。然而,当代码在蓝框处执行时,代码会变得混乱并且可以采用两个独立的代码路径(紫色或黄色)中的任何一个。如果开发人员为紫色或黄色代码块使用了一个函数(或未使用内联函数),则此代码将更容易逆向工程。作为一个函数,我可以对代码块进行重命名和注释,整个程序变得更容易阅读。

当我遇到这种函数时,我常用的技术是将颜色应用于代码块,如下图所示。IDA 有没有办法将任意代码块集合视为未调用的函数和/或是否有更好的方法来处理内联代码和独立代码块?

大功能

1个回答

听起来您需要的是节点组。自第一个实现 (5.0) 以来,IDA 的图形视图允许将多个节点分组为一个具有自定义标题的“超级节点”。只需按住 Ctrl 键单击选择要分组的节点,然后从上下文菜单中选择“分组节点”。

有关详细信息,请参阅 IDA 帮助或在线中的“图形节点组”