阅读目录
开发篇——第三道习题
发布于:2016-3-1 15:44 | 124828次阅读 作者: 管理员 | 原作者: TP | 来自: 原创
习题内容:以Android平台某个进程为实例,实现Inline Hook,并通过调试方式确认是否对某个地址实现了InlineHook操作。 习题答案如下: 测试的DEMO还是IBored应用,IBored是一个等待30S即可得到胜利提示的无聊DEMO。前期静态分析其代码,可发现如图代码段。R2寄存器的值保存着IBored的uiTimeCount,其下条指令会将R2和取出来的栈变量R3相加得到新的uiTimeCount值。这里修改R2寄存器成一个较大值即可实现作弊。 IBored处的可利用指令
本次测试代码融合进InlineHook中,既是ModifyIBored函数。如下图所示,通过InlineHook接口,在分析的指令处设置了一个桩函数EvilHookStubFunctionForIBored,该函数会将寄存器R2设置成0x333。
实际运行,点击Load按钮,加载测试模块,即可实现作弊,马上得到成功提示。 胜利提示
0x7565DCA8处指令明显被修改,跳转到stub中
0x76B39C90处的Stub代码,跳转到用户EvilHookStub
构建的原函数代码,执行原代码后跳转回HOOK+8的位置 文章附件下载:inline hookExample.zip |

最新评论
发表评论