首页
社区
课程
招聘
[原创]阿里系产品Xposed Hook检测机制原理分析
发表于: 2017-6-29 10:17 19762

[原创]阿里系产品Xposed Hook检测机制原理分析

2017-6-29 10:17
19762

在逆向分析android App过程中,我们时常用的用的Javahook框架就是Xposed Hook框架了。一些应用程序厂商为了保护自家android App不被Xposed Hook框架给hook。于是想尽各种方法检测自己产品是否被Xposed HookHook。笔者最近逆向分析阿里系的产品,发现阿里系的产品能够检测自否给Xposed Hook了。本文就带领给位一起看看官阿里系产品是如何做的这一点的,本文就选择阿里的支付宝作为我们分析对象。

1. 编写一个简单的支付宝的Xposed hook 模块, 模块代码如下:


2.安装XPosed hook mo模块,重启设备,打开支付宝,就会看到如下一个对话框:非法操作的,你的手机不安全。这说明支付宝检测自己被Hook了。

0.分析工具和分析对象

样本:Alipay_wap_main_10.0.18 

工具:AndroidKiller, JEB2.2.7

源码:XPosed 框架源码

 

1. 为了快速找到代码Xposed的检测代码位置,我们就不从对话框作为分析入口啦,我们直接使用androidKiller打开文件Alipay_wap_main_10.0.18.apk, 然后在工程中搜索xposed相关的关键字,例如:xposed


根据搜索结果,我们找到看了两个security相关的类。我们使用JEB工具对这两个类进行分析,我们暂且分析CheckInject类。

我们看到这里获得通过反射获得一个类de.robv.android.xposed.XposedHelpers 的一个对象,于是我们可以确认发现代码就这里。 

 

3. 由于Smali代码是经过混淆的代码,不便于读者阅读,于是笔者将代码整理如下:


通过反射获取de.robv.android.xposed.XposedHelpers类的一个对象obXposedHelper,然后调用CheckKeywordInFiled 检测obXposedHelper成员fieldCache,methodCache,constructorCache是否有支付宝包的关键字,CheckInject.CheckKeywordInFiled, 这个函数代码 。笔者也这个函数整理如下:


fieldCache, methodCache,constructorCache然是XposedHelpers的静态成员,类型是HashMap<String, Field>   

通过反射遍历这些HashMap 缓存字段, 如字段项的key中包含支付宝的关键字"alipy" "taobao",等信息, 者认为是检测有Xposed 注入


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (40)
雪    币: 1307
活跃值: (4146)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
楼主图看不了
2017-6-29 10:27
0
雪    币: 60
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
FIGHTING安 楼主图看不了
能看哇~
2017-6-29 10:29
0
雪    币: 62
活跃值: (35)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
FIGHTING安 楼主图看不了
亲,能看呢,你刷新一次看看呢
2017-6-29 10:40
0
雪    币: 9479
活跃值: (757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
据说微信、支付宝这些app不使用加固是因为容易崩溃、用户体验效果差。
2017-6-29 15:13
0
雪    币: 62
活跃值: (35)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
2017-6-29 18:14
0
雪    币: 4055
活跃值: (2817)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
厉害
2017-6-29 18:56
0
雪    币: 94
活跃值: (2397)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
不错,关键信息用红色标出来了!
2017-6-29 19:53
0
雪    币: 2081
活跃值: (2685)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
9
BAT主流产品没有一个使用加固  主要是市面上没有任何一款加固厂商敢保证不会崩溃  毕竟加固涉及的太底层了  像这种巨头级别应用  不会允许有任何崩溃概率发生
2017-6-29 20:19
0
雪    币: 69
活跃值: (360)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
10
楼主用心啦!!!!
2017-6-29 20:33
0
雪    币: 260
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
巨头级别的应用主要先考虑兼容性。
2017-6-30 00:52
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
2017-6-30 09:56
0
雪    币: 62
活跃值: (35)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
pedies 楼主用心啦!!!![em_13]
2017-7-3 11:34
0
雪    币: 158
活跃值: (196)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
在太弱了,xposed改下名字就检测不到了
2017-7-4 09:29
0
雪    币: 53
活跃值: (280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
17
从文章来看,ali其实完全可以做的更狠一点,估计是不想影响太大
2017-7-6 14:16
0
雪    币: 5303
活跃值: (1625)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20

Mark

2017-7-7 16:27
0
雪    币: 93
活跃值: (136)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24

mark

2017-7-18 15:11
0
游客
登录 | 注册 方可回帖
返回
//