在进行逆向工程程序时,我经常会发现以下功能。该功能尤其具有一组嵌套的if / else块(粉盒),通常很容易遵循。但是,当代码在蓝色框执行时,代码将变得凌乱,并且可以采用两个独立的代码路径(紫色或黄色)。如果开发人员为紫色或黄色代码块使用了一个函数(或未使用内联函数),则此代码将易于逆向工程。作为一个函数,我可以对代码块进行重命名和注释,从而使整个程序更易于阅读。

遇到这种函数时,我通常的技巧是将颜色应用于代码块就像您在下图中看到的一样。 IDA是否有办法将任意代码块集合视为未调用的函数,和/或有没有更好的方法来处理内联代码和独立代码块?



#1 楼

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

有关更多信息,请参见IDA帮助中的“图形节点组”或在线。

评论


单独说明,这将有助于您将输入内容放在on-topic-ness / off-topic-ness上,这里meta.reverseengineering.stackexchange.com/q/7/189

–asheeshr
13年3月27日在1:37

我的问题或答案可能与主题无关?

– amccormack
13年3月27日在1:51

@amccormack的问题,因为它本身不涉及逆向工程,而是“如何使用RE工具”。但是我想我们可以在主题上提出这样的问题。请在这里添加您的想法。

–伊戈尔·斯科钦斯基♦
13年3月27日在1:54



@IgorSkochinsky:尽我所能(和您所知道的;))指出,这不应该太偏向于特定工具,我认为这些问题应该是话题性的。我在此添加了“评论”,并希望其他许多人也可以。顺便说一句:您已经履行了我的期望,很快就会成为您的职位;)...另请参见:meta.reverseengineering.stackexchange.com/questions/7

– 0xC0000022L♦
13年3月27日在16:55

@IgorSkochinsky:我不确定本身是什么,但是在大多数东南网站上,人们常常皱眉,只发布链接而不引用至少重要部分。

– 0xC0000022L♦
13年3月27日在16:56