freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

cocos2d-LUA逆向之hook关键函数获取xxtea解密key
2018-05-29 09:27:41

        首先讲一下Androidhook,Android 基于Linux内核,提供ptrace系统函数,下图有一个简单说明:

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

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

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

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

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

图片.png        2. 初始化**HOOK_INFO**结构体

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

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

图片.png

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

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

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

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

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

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

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

图片.png        5.配置文件**native_lib.config**

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

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

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

图片.png        最后,运行测试,首先运行xposed并激活eagleeye模块:

图片.png        运行EagleEye:

图片.png        运行大神app:

图片.png        结果(模拟器):

图片.png        结果(真机):

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

# 逆向 # android安全 # hook
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者