本帖最后由 梦幻的彼岸 于 2024-3-14 11:46 编辑
翻译:梦幻的彼岸
例如,在使用 IDA 时,有时您可能需要重新分析数据库的某些部分: - 更改外部函数原型后(尤其是调用约定、清除字节数或 "不返回 "标志);
- 修复错误检测到的 ARM/Thumb 或 MIPS32/MIPS16 区域后;
- 更改全局处理器选项后(如在 MIPS 中设置$gp值或在 PPC 中设置 TOC);
- 其他情况(分析参数等)
重新分析个别指令要重新分析一条指令,请将光标放在该指令上,然后按 C(转换为代码)。即使该指令已经是代码,这一操作也不是无用的:它要求 IDA 内核进行以下操作: - 删除当前地址的交叉引用;
- 让处理器模块重新分析该指令;通常情况下,这会导致(重新)创建交叉引用,包括流向下一条指令的交叉引用(除非当前指令停止了代码流)。
重新分析函数当函数的任何参数发生变化时(例如需要重新创建堆栈变量),函数的所有指令都会被重新分析。因此,以下按键顺序会导致重新分析整个函数: Alt + P(编辑函数)、Enter(确认对话框)。 对更大范围的指令进行重新分析- 转到范围的起点;
- 按 Alt-L(开始选择);
- 转到选择结束处;
- 按 C(转换为代码)。在第一个提示中选择 "Analyze[分析]",在第二个提示中选择 "No[否]"。
对整个数据库进行重新分析如果您需要重新分析所有内容,但又不想麻烦地选择所有代码,有一个专门的命令可以通过两种方式调用:
|