如何处理 IDA 自动分析无效路径?

逆向工程 艾达 蟒蛇 去混淆
2021-07-07 02:34:01

诸如不透明谓词之类的混淆技术通常会欺骗 IDA 的自动分析,从而对所分析的代码创建不正确或相互矛盾的解释。

有一些提到通过IDA 网站上的钩子控制 IDA 的自动分析,但是我在网上找不到其他参考资料。

就我而言,我有一个已知有效分支的列表,我希望 IDA 在自动分析期间“首选”这些分支,以避免 sp 分析和无效反编译问题。

我已经能够通过编写我自己的忽略非已知有效分支的分析传递脚本来基本上模拟此功能,但我想知道是否有更简单的方法。

1个回答

上次我遇到这样的问题时,我加载了禁用自动分析的可执行文件,然后运行了一个检测有效和无效分支的脚本,并将有效分支修补为无条件的,并剔除无效分支。之后我只是开启了自动分析,去掉了无效的分支,分析结果很好。

当然,这取决于能够找到有效和无效的分支指令,而不仅仅是它们的目标我不确定您所说的“已知有效分支列表”是什么意思,但是如果您知道有效分支指令的位置,或者您可以编写一个简单的分析器来检测具有无效分支的模式,那么预处理器可能是一个处理问题的好方法。