-
Notifications
You must be signed in to change notification settings - Fork 420
Open
Labels
Description
我发现relocate考虑得不太全面,比如我hook sleep函数,sleep是thumb模式的函数,relocate的时候会增加很多不必要的nop (https://github.com/ele7enxxh/Android-Inline-Hook/blob/master/relocate.c#L271)。 而sleep函数的前几个字节是这样的:
.text:0002DFCE PUSH {R0-R2,LR}
.text:0002DFD0 CMP R0, #0
.text:0002DFD2 IT LT
.text:0002DFD4 MOVLT R0, #0x7FFFFFFF
.text:0002DFD8 MOV R1, SP
relocate之后IT LT之后多了一条nop命令,IT LT的意思是如果小于零,则跳过下一条指令,这样MOVLT这条指令本来应该跳过的,现在relocate之后就变成永远无法跳过了。