游戏安全实验室 首页 技术入门 查看内容

 阅读目录

开发篇——第三道习题

发布于:2016-3-1 15:44   |    124828次阅读 作者: 管理员    |   原作者: TP   |   来自: 原创

习题内容:以Android平台某个进程为实例,实现Inline Hook,并通过调试方式确认是否对某个地址实现了InlineHook操作。

                      

习题答案如下:

测试DEMO还是IBored应用IBored一个等待30S即可得到胜利提示的无聊DEMO。前期静态分析其代码,可发现如图代码段R2寄存器的值保存着IBoreduiTimeCount,其下条指令会将R2和取出来的栈变量R3相加得到新的uiTimeCount值。这里修改R2寄存器成一个较大值即可实现作弊。

IBored处利用指令

 

本次测试代码融合进InlineHook中,既是ModifyIBored函数。如下图所示,通过InlineHook接口分析的指令设置了一个桩函数EvilHookStubFunctionForIBored该函数会将寄存器R2设置成0x333

 

实际运行,点击Load按钮,加载测试模块,即可实现作弊,马上得到成功提示。

胜利提示

 

0x7565DCA8处指令明显被修改跳转到stub

 

0x76B39C90的Stub代码跳转到用户EvilHookStub

 

构建的原函数代码,执行代码后跳转回HOOK+8位置


文章附件下载:inline hookExample.zip


*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

分享到:
踩0 赞0

收藏

上一篇:开发篇——第二道习题

下一篇:数据分析工具Cheat Engine的准备

最新评论
B Color Image Link Quote Code Smilies

发表评论