IDA官网发布的每周技巧9----重分析

hex-rays官方发布了一套《Igor的IDA每周技巧》系列文章,内容不错,故进行跟踪翻译,期望对大家有所帮助。

第九篇原文:Igor’s tip of the week #09: Reanalysis

使用IDA时,有时需要重新分析IDB数据库的部分内容,例如:

  • 修改外部函数的原型之后(特别是调用约定、返回时要清理的栈空间字节数、“不返回”标签)
  • 修复自动检测失败的ARM/MIPS区域之后
  • 修改了全局处理器选项之后(如设置$gp值为MIPS)
  • 其它情况(如修改分析开关)

重分析单个指令

要重分析一个指令,将光标定位到指令的地址处,并按“c”键。即使这个地址处本身就是指令,按下按键也会执行完整重分析流程:

  1. 删除当前地址的交叉引用
  2. 处理器模块重新分析这个地址处的内容;重新分析会创建交叉引用,包括代码顺序流交叉引用。

重分析一个函数

改变函数的参数时,该函数的所有指令都需要被重分析(比如:此时需要重建栈上的变量)。所以,按下面的顺序按键将导致重分析整个函数:Alt+P(编辑函数),Enter(确认)。

译者:就是先打开编辑函数对话框,然后什么都不修改,直接点击确认。

重分析一大块指令

要进行该操作,可以使用选取操作那篇文章中介绍的技巧。

  1. 来到区域的起始位置
  2. 按下Alt+L(设置起始点)
  3. 到达区域的结束位置

按“c”(转换为代码)。在第一个弹出的对话框按“分析”,在第二个弹出的对话框按“否”。

重分析整个数据库

如果你想重新分析所有东西,但不想麻烦地去选取所有代码然后按“c”。IDA中有个“重分析整个程序”的专用命令,可以通过下面两个方法调用:

        1、选项->通常->“分析”标签页->“重分析程序”;

        2、在IDA窗口底部的状态栏右键,点击“重分析程序”;

 

欢迎关注我的微博:大雄_RE。专注软件逆向,分享最新的好文章、好工具,追踪行业大佬的研究成果。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值