Skip to content

relocate的一个小问题 #13

@nevermoe

Description

@nevermoe

我发现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之后就变成永远无法跳过了。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions