首页
社区
课程
招聘
[原创]QQ 浏览器 中的Hook,Root,模拟器,Debug,DexFile检测技术
发表于: 2019-4-19 13:13 13583

[原创]QQ 浏览器 中的Hook,Root,模拟器,Debug,DexFile检测技术

2019-4-19 13:13
13583

在QQ浏览器的崩溃报告中,会发送大量当前设备的状态,设备的信息.硬件的信息.等等.

其中就包含了Hook检测,Root检测,模拟器检测,DexFile检测,Debug检测.这些信息.

由于这部分代码使用了名称混淆.所以我自己手工把代码还原了一遍.替换为有意义的名称.

部分逻辑修改了一下下.下面我们就依次来看.

说是Hook检测,不如说是对目前比较流行的框架xposed,substrate的检测.

这部分代码比较简单,就是检测是否安装了xposed或者substrate.

这里我对Linux的proc文件系统没有研究过的童鞋非常简单的搜一下盲.

首先proc文件系统的设计目的之一就是允许更方便的对进程信息进行访问.

每当一个进程创建的时候,/proc目录下就会有和该进程id对应的目录产生.

目录名称就是进程id.里面记录该进程的各种信息.其中maps记录了进程的

内存信息,更具体的说内存分段信息.具体什么含义我就不说了,反正我们可以知道它可以记录加载了那些模块就OK了.如下图

对Xposed有研究过的人应该都知道,xposed会对进程注入这些模块:

所以我们检测这些模块是否存在也是可以检测出xposed和substrate的.

代码逻辑就是一行一行的读/proc/mypid/mpas.看是否包含xposed或com.saurik.substrate.

先看图.

啊啊,我们只要检测堆栈是否包含红色圈圈de.robv.android.xposed.XposedBridge就可以了.

看代码

其实我们可以依据该方法检测自己的方法是否被Hook了.道理是一样的.就是检测堆栈是否包含有afterHookedMethod,beforeHookedMethod.

话说这个我不清楚啥原理.有懂得留言告诉我一下呗.

模拟器都具有一些特殊的属性.查找这个特殊的属性就可以判断是否是模拟器.

其中AdbShell.getprop 等效于 Systemproperties.get(name).

一个是检测debuggable标志.一个是检测TracerPid.

一个是检测是否有su文件.一个是检测属性.

据说对一些比较难Root的手机厂商,修改rom里面的default.prop文件里的ro.secure为0,然后重签名再刷进去可以获得永久root.不过我没试过...,比较懒.

根据ClassLoad检测加载了那些Dex文件


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

上传的附件:
收藏
免费 9
支持
分享
打赏 + 4.00雪花
打赏次数 2 雪花 + 4.00
 
赞赏  orz1ruo   +2.00 2019/04/20 感谢分享~
赞赏  junkboy   +2.00 2019/04/19 感谢分享~
最新回复 (17)
雪    币: 10
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
ActivityManagerNative是检测多开
2019-4-19 13:25
0
雪    币: 11716
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2019-4-19 13:28
0
雪    币: 2340
活跃值: (10417)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢分享!!!!!!!!1
2019-4-19 14:29
0
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
QQ浏览器的崩溃报告 里面那里可以看到楼主的代码啊?小白求科普。。。。
2019-4-19 14:44
0
雪    币: 36
活跃值: (1061)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
mark
2019-4-19 14:51
0
雪    币: 4135
活跃值: (2849)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
7
kxzpy QQ浏览器的崩溃报告 里面那里可以看到楼主的代码啊?小白求科普。。。。
附件里面不就是代码了么。是一个Android Studio工程.还是说你想知道这部分smail代码在那里?
2019-4-19 17:31
0
雪    币: 101
活跃值: (486)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
干货满满,感谢楼主分享。
最后于 2019-9-5 11:51 被inflow编辑 ,原因:
2019-4-21 18:19
0
雪    币: 14846
活跃值: (6078)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
学习
2019-4-22 09:01
0
雪    币: 120
活跃值: (1597)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
感谢分享
2019-4-22 09:35
0
雪    币: 55
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
感谢分享,不过这个检测有点弱
2019-4-22 20:31
0
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
chpeagle 附件里面不就是代码了么。是一个Android Studio工程.还是说你想知道这部分smail代码在那里?
这些 android studio的java代码是smail代码翻译过来的?
2019-5-3 20:02
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
学习了,谢谢分享
2020-2-20 14:48
0
雪    币: 217
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
学习了,感谢楼主的分享
2020-4-10 17:17
0
雪    币: 35
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
这检测代码现在用到com.tencent.bugly.crashreport上了?
2020-8-23 14:23
0
雪    币: 2089
活跃值: (3933)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
最新版在多开环境跑会故意不加载gdt广告插件,直接闪退,我只是不希望这个软件在我内置存储乱创建文件和文件夹而已。
2020-8-26 10:53
0
雪    币: 235
活跃值: (520)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
17
多谢,最新的版本检查不止这些了
2020-8-28 14:27
0
雪    币: 169
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18

好东西 支持

最后于 2020-11-21 11:22 被lefuswww编辑 ,原因:
2020-11-21 11:22
0
游客
登录 | 注册 方可回帖
返回
//