首页
社区
课程
招聘
[原创]【开源】Qujing曲境 | 在PC浏览器上进行安卓的监控hook
发表于: 2021-1-23 16:16 13038

[原创]【开源】Qujing曲境 | 在PC浏览器上进行安卓的监控hook

2021-1-23 16:16
13038

曲境是一个xposed模块,可实现在PC浏览器上动态监控(hook)函数调用和查看堆栈信息,及反射调用(invoke)等功能。避免了频繁写hook代码的麻烦,提供了可视化的界面,对新手更友好。

Github地址:https://github.com/Mocha-L/QuJing

项目依据xserver优化而来,感谢原作者@Monkeylord

1. 枚举安卓设备所有APP

2. 根据类名和方法名搜索方法

3. 方法监控,打印调用栈和出入参

4. 对目标方法强制执行

(因为是xposed模块,则依赖xposed环境,需提前准备)

1. 安装APK(在源码地址提供了编译好的apk,不想自己编译的可以直接使用),安装完成后,激活该模块并重启手机。

2. 手机重启完成后,通过adb完成固定端口转发



3. 浏览器输输入 http://127.0.0.1:61000/进入配置目标应用界面。界面列举了手机中的所有APP供你选择,对于你要监控/执行的应用进行勾选(支持多选)然后“提交保存”,页面重新加载后,被勾选的会排列在顶部,然后点击“下一步”。

4. 在这一步,需要手动操作手机打开APP,(如果在上一步配置之前已经打开了APP,则需要重新打开APP)。打开之后,页面会提示你端口转发的命令,复制并执行。执行成功后会显示:配置成功,点击进入,此时点击蓝字进入即可。

5. 这一步已经可以进行搜索类了,把感兴趣的类名输入进行搜索,如图搜索的时“搜索用户”的相关类,输入完成点击曲境一下,然后找到感兴趣的方法,点击方法自动跳转。

6. 进入监控的方法,可以看到该方法的基本信息。


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

最后于 2021-1-23 16:24 被燕幕自安编辑 ,原因: 传图
收藏
免费 2
支持
分享
最新回复 (18)
雪    币: 198
活跃值: (616)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
大佬,感谢分享
2021-1-24 09:01
0
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
厉害,谢谢分享
2021-1-24 15:50
0
雪    币: 2729
活跃值: (1965)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4

点配置成功进入后显示的不正确 

环境  

手机 pixel2 

面具版本 20.0  7.3.5(243)

edXposed版本2.2.4



2021-1-24 19:57
0
雪    币: 864
活跃值: (5124)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
小米8安卓9,搜索类啥都搜不着,楼主可以看一下吗
2021-1-24 22:40
0
雪    币: 1467
活跃值: (1054)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
这个现象还没见过 页面加载不出来?pixel2 我也试过的,edxposed没试过 换成xposed试一下么?
2021-1-24 23:14
0
雪    币: 1467
活跃值: (1054)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
7
suuuuu 小米8安卓9,搜索类啥都搜不着,楼主可以看一下吗
没有小米8啊。。。你走到哪一步啦?都到搜索类的页面的话,试试搜一些一定有的比如“android.os.Build”
2021-1-24 23:16
0
雪    币: 864
活跃值: (5124)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
android.os.Build 可以搜到,搜其他的就不行了,我测试的是快手8.1
2021-1-25 00:45
0
雪    币: 864
活跃值: (5124)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
东西是好东西,用不了就很难受,小红书也是了,全部提示未找到类
2021-1-25 00:49
0
雪    币: 864
活跃值: (5124)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
楼主你测试用的安卓是什么版本的
2021-1-25 00:50
0
雪    币: 864
活跃值: (5124)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我用的也是edxposed,安卓8.0以上现在都不支持xposed了,都得用edxposed
2021-1-25 00:53
0
雪    币: 1467
活跃值: (1054)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
12
suuuuu 我用的也是edxposed,安卓8.0以上现在都不支持xposed了,都得用edxposed
哇 如果是个别app不支持的话 那有个能是一些特殊情况不兼容,如果感兴趣的话可以下下来源码调一下试试 我猜测你这个问题有可能是app多classloader加载 qujing还没支持这个功能
2021-1-26 01:36
0
雪    币: 116
活跃值: (1012)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
膜一下
2021-1-29 13:44
0
雪    币: 1385
活跃值: (5609)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
14
666666
2021-2-2 10:46
0
雪    币: 220
活跃值: (102)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
红米 MIUI 12.0.2 也是啥类都搜不到
2021-3-3 11:57
0
雪    币: 1467
活跃值: (1054)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
16
Jeffrey_z 红米 MIUI 12.0.2 也是啥类都搜不到
这一层统一回复一下各位,
目前发现了个bug,就是没有网络权限的APP是用不了,原因是插件和管理程序进行了本地通信127.0.0.1
不知道你这个是不是这个问题,试一下别的app
2021-3-5 00:36
0
雪    币: 2220
活跃值: (4597)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
什么类都搜不到
2021-3-17 14:40
0
雪    币: 2220
活跃值: (4597)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我分析出来了 就是classloader不应该在 gatherInfo 这个函数里面重新赋值 

```
private void gatherInfo(XC_LoadPackage.LoadPackageParam loadPackageParam) {
        packageName = loadPackageParam.packageName;
        isFirstApplication = loadPackageParam.isFirstApplication;
        classLoader = loadPackageParam.classLoader;
        Log.e("LogXutils","gatherInfo"+classLoader.toString());
        processName = loadPackageParam.processName;
        appInfo = loadPackageParam.appInfo;
    }
```
应该删掉 

```
 classLoader = loadPackageParam.classLoader;
```
这行代码

2021-3-17 15:56
0
雪    币: 1467
活跃值: (1054)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
19
小黄鸭爱学习 我分析出来了 就是classloader不应该在 gatherInfo 这个函数里面重新赋值 ``` private void gatherInfo(XC_LoadPackage.LoadP ...
谢谢你啊 github上已经改过啦~ 多谢支持~ 给你在readme署名一下
2021-3-28 02:07
0
游客
登录 | 注册 方可回帖
返回
//