android下so文件的注入和hook

上周主要在弄android下的so文件注入和函数hook

起初想法很简单,美术同学跟我说,想借鉴几个手游的资源,一开始是最初级的搞法,iap,apk统统改成zip,解压吧,还真有一些游戏资源是没有加密的,爽歪歪。

然后就是有一些游戏,加了密,没办法,破解那块不熟,搜吧。

http://blog.csdn.net/ynnmnm/article/details/38392795 这篇文章引起了我的注意,可惜没写具体的方法,但是对大体流程有了了解。

再继续找吧找吧,http://blog.csdn.net/jinzhuojun/article/details/9900105 就是这篇啦,代码,过程,很详细,试试手。

基本上跟着流程走,没有什么问题,只是中途adb push的时候要有写权限。

注入很快就成功了。

接下来就是hook函数啦,我不想hook例子中的opengl中的函数,而是把我们项目的libgame.so给adb push上去,看能不能,把资源弄出来,因为我们资源也是加密了的。

按照上面两篇文章的介绍,关键点在got表,这个东西保存了一个调用外部函数的跳转信息,举个例子,libgame.so调用了uncompress函数,而后者是在libz.so里面,就hook这个函数试试,把代码随便改改,就能跑起来了。

我稍微把例子中的代码封装了一下,以参数的形式传进去:要hook的进程,在哪个的got表里面找,要注入的so路径。

一切就绪,开搞。

很快uncompress函数就hook上了

由于用的都是开源的cocos2dx,手上都有代码,想怎么样弄出资源,断点了,跟着流程走吧。

实在不行就hook opengl的库函数,毕竟所有纹理数据都要送到它那里去


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值