• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

cocos2d-LUA逆向之hook关键函数获取xxtea解密key

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
  首先讲一下Androidhook,Android 基于Linux内核,提供ptrace系统函数,下图有一个简单说明:

        Android inline hook一般基于这个函数,使用ptrace函数attach一个目标进程,注入定制的so库进入目标进程的地址空间,然后用so里边的函数地址替换目标进程地址空间里原有的函数地址,目标进程运行到原有函数地址时,就会进入你的so库中的函数,而你的函数一般需要将当时目标进程现场保存起来(原函数地址、寄存器值),待自己的函数跑完后,再恢复现场,目标进程继续运行。

        细节我们不在多述,资料也很多,这里我们直接基于一个GitHub上的开源项目Android EagleEye(https://github.com/MindMac/AndroidEagleEye),来实现我们对大神app的hook。AndroidEagleEye的中文说明:

        我们需要按照“hook更多native方法”的说明,增修hook_apis.c中的相关代码并设置系统属性:

1.声明目标方法的替代方法

参数类型、返回值类型需要和目标方法保持一致

        2. 初始化**HOOK_INFO**结构体

        我们是Hook应用程序自身Native库中的方法,该变量应该以**custom_hook_info**开头。该结构体的第2个成员为目标库的名称(开头的lib是必需的);第3个成员为目标方法名称;第4和最后一个成员为第1步中声明的方法名。第2、4个成员很明确,但是第3个成员目标方法名称,我们还需要idaPro来确定。我们上面讲到大神app解密lua脚本的关键函数在idaPro导出窗口中的名称是_byds_d_:

        这里有一点需要特别注意,由于寻找函数时,寻找的是app got表函数名称而不是导出函数窗口内的函数名称

        所以函数名称一定不要弄错了,不然找不到函数,导致hook不成功。

        现在,我们可以写**HOOK_INFO**结构体了:

        3. 实现步骤1中声明的方法

        4.ndk重新编译,并安装至手机

        打开cmd,直接进入EagleEye/jni目录,ndk-build编译:

        这里不用再重新打包apt,从github上下载下来的目录结构是这样的:

        里面就有EagleEye.apk,安装这个apk,之后再将刚才新编译的libeagleeyenative.so覆盖掉刚才apk中带的so库(/data/data/com.mindmac.eagleeye/lib中)即可:

        5.配置文件**native_lib.config**

        该配置文件用以设置目标库的名称,一个库名称一行,且库名称以**lib**开头,**.so**不需要:

        并将该配置文件推送到目标应用程序的**data**目录下,/data/data/\<package name ofthe application you want to hook\>,本例中是/data/data/com.qipai.n1,要确保该文件可读:

        6.设置Android 系统属性rw.eagleeye.nt.uids

        最后,运行测试,首先运行xposed并**eagleeye模块:

        运行EagleEye:

        运行大神app:

        结果(模拟器):

        结果(真机):

        这种hook方式,测试的模拟器(雷电)和真机都是可以的。在这里也多谢AndroidEagleEye作者。

原文链接:http://www.freebuf.com/column/173221.html



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Windows和Linux上用C与Lua交互发布时间:2022-07-22
下一篇:
【转】Luacoroutine不一样的多线程编程思路发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap