arm opcode hook

ARM Cortex M3指令集

在arm中hook我们需要用到 bl 这个转移指令 .
其效果和x86中的 call 有点类似.

下面来说说arm bcc的公式.(自己多次尝试总结的,如果有不对的地方希望大家能指点一下.)


计算opcode:
(dst - src) / 4 - 2 = opcode


计算dst:
src + (opcode + 2) * 4 = dst

 

不明看例:)

代码:
ROM:9D039D3C 108 1C 00 00 1A                 BNE     loc_9D039DB4    ; Branch

(9D039DB4 - 9D039D3C) / 4 - 2 = 1c

9D039D3C + (1c + 2) * 4 = 9D039DB4







ROM:9D039D90 108 07 00 00 EA                 B       loc_9D039DB4    ; Branch

(9D039DB4 - 9D039D90) / 4 - 2 = 7

9D039D90 + (7 + 2) * 4 = 9D039DB4

你可能感兴趣的:(code)