使用 IDA 将函数调用更改为 arm 中的另一个函数调用

逆向工程 艾达 手臂
2021-06-24 19:29:26

是否可以通过将调用一个函数的分支指令更改为另一个函数调用的方式修补 arm lib?

我有指示

B function_a

并希望将其更改为:

B function_b 
1个回答

有关如何在 ARM 上编码分支指令的详细信息,请参阅此答案这是你应该做的:

  1. 设置Options->General->Number of opcode bytes为 4(如果最初为 0)
  2. 找到任何B指令。
  3. 只是为了确保你理解了,工作了排量从pc+8B指令到目的地,并验证与指令中的位移相符你期望的。
  4. 计算您希望分支到的目标的位移。
  5. 使用Edit->Patch program->Change byte修改当前的指令。IDA 将更新显示,因此您可以判断您是否成功。如果你还没有,继续搞乱它,直到你得到你想要的字节。
  6. 要生成补丁文件,您可以使用File->Produce file->Create .DIF file.