首页
社区
课程
招聘
[求助]安卓使用Cydia Substrate框架怎样hook到对应方法?
发表于: 2018-8-24 18:09 6123

[求助]安卓使用Cydia Substrate框架怎样hook到对应方法?

2018-8-24 18:09
6123
这边由于公司提的需求,详情请看上一篇帖子
https://bbs.pediy.com/thread-246438.htm

这边尝试hook libc.so中的gettimeofday方法,但是在
MSImageRef image = MSGetImageByName("/system/lib/libc.so");
就报了image == null,so都没hook到,无法继续hook方法了
以为是游戏没有调用这个方法,打开游戏so,发现settime相关函数

hook了个遍,但是每次都是image == null,根本hook不到对应so
MSImageRef image = MSGetImageByName("/data/app/com.jzyx.dyqlb.xmw-1/lib/arm/libjzgame.so");

这边怀疑四点
1.Cydia Substrate框架不行,需要自己改动
2.我写的hook不对,需要改动
3.注入方式不对,必须动态注入so
4.hook的时机不对

整个过程
1.反编译目标apk,用ida找到对应的so中需要hook的方法
2.基于Cydia Substrate架构编写JNI,打出对应so
3.导入目标apk的lib,改目标apk主activity的oncreate方法,手动System.loadLibrary(“xxx.cy”);打好的so
4.回编译运行检测

结果每次都是image == NULL

JNI整体如下
/data/app/com.jzyx.dyqlb.xmw-1/lib/arm/libjzgame.so 为游戏内cocos2d的so库
#include <jni.h><br>#include <string><br>#include <android/log.h><br>#include "include/substrate.h"<br><br>#define TAG "HOOKDEMO"<br>#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, TAG, __VA_ARGS__)<br><br>//指明要hook的lib<br>MSConfig(MSFilterLibrary, "/data/app/com.jzyx.dyqlb.xmw-1/lib/arm/libjzgame.so")<br><br>void (*old_ZN10cocostudio8timeline14ActionTimeline12setTimeSpeedEf)(float a);<br><br><br>void new_ZN10cocostudio8timeline14ActionTimeline12setTimeSpeedEf(float a) {<br>    float temp = a*10;<br>    old_ZN10cocostudio8timeline14ActionTimeline12setTimeSpeedEf(temp);<br>}<br><br>//初始化时进行hook<br>MSInitialize{<br>    LOGE("MSInitialize");<br>    MSImageRef image = MSGetImageByName("/data/app/com.jzyx.dyqlb.xmw-1/lib/arm/libjzgame.so");<br>    if (image != NULL){<br>        LOGE("image != null");<br>        void * hookdemo = MSFindSymbol(image,"js_cocos2dx_Scheduler_setTimeScale");<br>        if(hookdemo != NULL){<br>            LOGE("hookdemo != NULL");<br>            MSHookFunction(hookdemo,(void*)&new_ZN10cocostudio8timeline14ActionTimeline12setTimeSpeedEf,(void**)&old_ZN10cocostudio8timeline14ActionTimeline12setTimeSpeedEf);<br>        } else{<br>            LOGE("hookdemo == NULL");<br>        }<br>    }else{<br>        LOGE("image == NULL");<br>    }<br>}

 不知道哪里的问题,请各位大佬指正


--------更新-----------
历时两天,已实现需求
简单讲就是写个so,apk去System.loadLibrary即可,其他什么got表,物理内存地址都是Cydia Substrate框架会解决
详细JNI https://blog.csdn.net/qq_26763799/article/details/82146582  写在这个博客里了,可以直接拿去打so

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2018-8-28 14:06 被到底打哪个龙编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 1787
活跃值: (340)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
换XPOSED吧。。。入口加载cydia,然后HOOK DLOPEN,加载libjzgame的时候,再HOOK libjzgame里的函数。。
2018-8-24 18:24
0
雪    币: 220
活跃值: (159)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
   建议先自己写个so小程序hook试试,注意所用的ndk
2018-8-24 20:55
0
雪    币: 89
活跃值: (1998)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
用frida
2018-8-24 21:51
0
雪    币: 27
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
浮在蓝天 &nbsp; &nbsp;建议先自己写个so小程序hook试试,注意所用的ndk
大佬,完整的demo能不能发下,看你用的
lookup_symbol
这些函数我好像都用不了,我这边参考下,感谢感谢
最后于 2018-8-27 09:41 被到底打哪个龙编辑 ,原因: 缺少信息
2018-8-27 09:33
0
雪    币: 27
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
loveqiao 用frida
frida好像要root吧,Cydia Substrate说要root,但是我看光环助手也是用的它,并且不需要root就能适配5.0上下所有手机
2018-8-27 09:36
0
雪    币: 27
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
而且比较奇怪的一点,光环助手的so并没有.cy.so这样命名
2018-8-27 10:05
0
雪    币: 27
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
yezhulove 换XPOSED吧。。。入口加载cydia,然后HOOK DLOPEN,加载libjzgame的时候,再HOOK libjzgame里的函数。。
大佬,xposed也要root吧,但是我看光环助手他们写的东西不用root就能生效,内部so分析确实用的cydia,只是不知道他是怎么加载进去的,这个需求弄得我好难受,做不来
2018-8-27 14:04
0
雪    币: 174
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
Android-Inline-Hook 不需要root 
2018-8-27 22:59
0
雪    币: 27
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
airnow Android-Inline-Hook 不需要root
感谢回帖,已实现这个需求
国内搜不到安卓端这类需求代码,看这个论坛里说的又很玄乎,什么elf,got表,物理内存地址什么的,我这个搞上层应用开发的看的很是头疼,现在已经实现了需求
其实只要写个jni,然后apk去System.loadLibrary(xxx);即可。其他事什么修改物理内存地址,got表啥的都是Cydia Substrate去完成了
2018-8-28 14:03
0
雪    币: 1
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
到底打哪个龙 感谢回帖,已实现这个需求 国内搜不到安卓端这类需求代码,看这个论坛里说的又很玄乎,什么elf,got表,物理内存地址什么的,我这个搞上层应用开发的看的很是头疼,现在已经实现了需求 其实只要写个jn ...
你好,我最近也遇到了这个需求,想请教一下 
2019-2-25 21:34
0
游客
登录 | 注册 方可回帖
返回
//