我正在处理一个模糊的二进制文件。 IDA在区分代码和垃圾代码方面做得很好。但是,我已经开始弄乱从code变为data的函数,反之亦然,并完全弄乱了函数并破坏了它的外观。我不想在可执行文件上启动新数据库,然后重新做所有工作。

是否可以重新分析单个函数并将其恢复为初始分析后的样子?

评论

您可以突出显示整个功能,U可以取消定义它,C可以将其标记为代码,P可以将其标记为功能。

请不要在问题的末尾添加“谢谢”。它不添加与该帖子相关的任何信息,并且在整个网络中都被皱眉。需要做的任何感谢都应通过投票和正确答案(或通过评论)来完成。谢谢! :)

节省时间的提示:您可以只使用U和P;如果仍然要使用P,则无需使用C。

@JasonGeffner对我执行P直接失败,并显示“ Command MakeFunction failed”错误。但是,U,C,Alt + P可以正常工作。

有趣。我从来没有遇到过突出显示代码,未定义(U),然后突出显示未定义的字节并按(P)的问题。很高兴您可以在C语言中使用它!

#1 楼

好吧,您必须首先使用U键取消定义代码,然后他们选择代码,然后右键单击您将获得一些选项,例如C(代码)等。 IDA几乎可以使您执行混淆代码的任何操作,以帮助您正确理解代码。

附录
转换为C(代码)后,请执行Alt + P创建/编辑功能。此外,通过转到“布局”视图,右键单击空白空间并选择“布局图”,可以重建布局图。

评论


我尝试了这个,但是在重新定义功能IDA之后,我记得我对变量类型和名称的修改

– Arthur.V
8月24日10:32