重新分析
在使用IDA时,有时您可能需要重新分析数据库的某些部分,例如:
-
更改外部函数原型(特别是调用约定、清除字节数量或“不返回”标志)后; -
修复错误检测到的ARM/Thumb或MIPS32/MIPS16区域后; -
更改全局处理器选项(例如在MIPS中设置$gp值或在PPC中设置TOC)后; -
其他情况(分析开关等)。
重新分析每个单独的指令
重新分析指令,将光标定位在其上并按C键(转换为代码)。即使指令已经是代码,这个操作也不是空操作,它要求IDA内核:
-
从当前地址删除交叉引用; -
使处理器模块重新分析指令; -
通常应该会导致交叉引用的(重新)创建,包括流程交叉引用到下一条指令(除非当前指令停止了代码流)。
重新分析函数
当函数的任何参数发生变化时(例如,需要重新创建堆栈变量时),函数的所有指令都会被重新分析。
因此,以下按键序列会导致整个函数被重新分析:Alt-P(编辑函数),Enter(确认对话框)。
重新分析一大段指令
这个我们可以用在选择文章中提到的技巧。
-
移到范围的开头; -
按下Alt-L(开始选择); -
移到选择的结尾; -
按 C 键(转换为代码)。在第一个提示中选择“分析”,在第二个提示中选择“否”。
重新分析整个数据库
如果你需要重新分析所有内容但又不想麻烦地选择所有代码,有两种方法可以重写分析整个数据库:
-
菜单 Options > General…,分析选项卡,重新分析程序按钮;
原文始发于微信公众号(二进制磨剑):IDA 技巧(9) 如何重新分析你的 Binary?
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论