首页
社区
课程
招聘
[原创]带360壳分析umeng协议
发表于: 2017-12-30 02:37 15565

[原创]带360壳分析umeng协议

2017-12-30 02:37
15565

0x00 序

为什么要带壳分析umeng协议啊,因为嘬呗。

0x01 charles抓包

直接打开 charles 手机设置好代理,过滤掉肯定无关的链接,从手机打开需要抓包的软件。发现只有2条网络请求 http://alog.umeng.com/app_logs
图片描述
一看就知道是umeng的协议,但是参数加密了,只能反编译看看他是如何加密的。挂起 jadx 打开apk,发现apk 360加固了,没有办法只能脱壳。拿出我的脱壳神机google5儿子(自己编译的android4.4的系统,修改了内核代码,能过掉proc文件状态的反调试)

0x02 针对性反编译&&过掉签名验证

可是安装的时候提示
图片描述
我靠设备版本太低,没关系,反编译修改一下最低sdk版本。
图片描述
加上-s参数,只反编译资源文件,然后打开apktool.yml这个文件
图片描述
把这里修改成19.ok。重打包提示签名被修改,没关系继续安装xposed hook签名模块(DisableVerifySignature.apk)。然后软件就可以打开了。

0x03 过掉反调试&&脱壳(不一样的脱壳)

根据吾爱 欧阳锋锋大神的帖子 https://www.52pojie.cn/thread-595960-1-1.html 过掉 时间差,rtld_db_dlactivity 这两个反调试一路走到这里 图片描述dump 出dex
文件。再次拖入 jadx 发现还是不对啊。是真实代码,可是没有umeng的代码。这是怎么回事啊。和我之前脱的软件不一样,难道360又升级了。带着疑惑我又打开了我自己写的一个通用脱壳软件。先给大家介绍下我的软件:

 

本工具是一个apk软件,打开后listview显示手机上安装的所有用户apk(图标➕apk名字),然后可以选择需要脱壳apk,然后再运行需要脱壳apk。即可完成脱壳。

 

代码实现: (java+jni)

 

1xmlpull解析选择apk的apkminifest,获取其包名,ApplicationName,MainActityName。

 

2Xposed hook android.content.ContextWrapper attachBaseContext得到壳的classloder

 

3根据classloder继续hook真正类的oncreate。

 

4继续根据classloader获取内存中的所有cookie。

 

5继续调用jni。根据cookie能转换成DexFile,然后其实就是解析dex文件了。

 

6在内存其实他的指向都是完整的。只不过没有在连续的地方。dump下来的也就不完整。那么我就分部dump。1。classdef之前的,2classdef之后的,3classdef4.classdata,5opcode。然后修改指向组合。

0x04 dump后的代码修复

通过这个软件dump下来的dex文件有60个,我把每个dex文件都打开看看,发现jar包都单独是一个dex文件,感觉和分包一样。想了想再把他们组合再修复oncrete 肯定是需要很长时间。不修复了。只看umeng这个dex把。
jadx 打开dex 搜索 host 图片描述直接就找到了。 图片描述
看到了参数传递了byte[],继续跟踪调用的地方。 图片描述跟到这里发现 调用了ch的b函数,里面肯定是处理了a变量,最后返回了 byte[].但是我怎么搜索都收拾不到a变量在哪里调用了,继续跟踪 b函数,
跟了一圈发现umeng的代码写的真是好啊,各种继承,接口,越看越晕都不知道谁掉的谁。
图片描述
怎么和我之前 抓包的情况不一样啊。之前抓过几次都是 几个变量拼接,然后在调用 通用加密函数,虽然加密函数可能在jni,可能有ollvm混淆,但是都能看懂大概啊。这个是越看越懵。

 

最后才想起原来dump出来的指令被优化了,需要修复
图片描述

 

图片描述

 

全局搜索替换所有优化的地方,修复完看到了引用的地方
这下代码看懂了
图片描述
图片描述
图片描述
他把每一个参数都单独取出来转换成byte[] 然后写入OutputStream
既然看懂了那么就看看她这几个参数都是啥直接传进去就ok了。刚好他有一个tostring函数
图片描述

0x05 带壳hook原始类

拖出来的dex没有修复不能 动态调试,那么我hook一下打印出来就好了
图片描述

 

图片描述
参数是都打印出来了,简单的能看懂,看不懂的继续跟代码发现又他娘的是加密了,不过还好加密函数还是同一个,但是看了看加密的串是10个对象的100个参数。

 

图片描述
图片描述

 

继续xposed hook打印参数把,幸好他们的类名有规律
图片描述
并且有2个类是他们的组合
图片描述

 

继续看懂参数:有的参数是设备固定值,有些参数是固定值的md5,有些参数是固定参数加上时间戳的md5.都看懂了模拟代码。ok大功告成。继续看下一条协议。

0x06 打印堆栈查看调用关系

第二条协议其实还是这个接口,就是参数多了一点,多的那点就是第一条协议的返回值。虽然看懂了,但是不知道她是怎么解析返回值的啊,

图片描述

 

install_channel 找到这个参数 hook 赋值的地方,打印堆栈
图片描述
发现是这里读的
图片描述

0x07 后续

嗯。加密,解密逻辑都找到了,模拟代码把。直接拿他代码就可以,稍微修改一下,根据hook下来的参数,多比较几次。测试,请求参数一摸一样的还原。。。。
由于不会排版,排版是参考了别人的,
最后,感谢论坛中各大神的分享,让我学习到了很多东西。


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

收藏
免费 7
支持
分享
打赏 + 1.00雪花
打赏次数 1 雪花 + 1.00
 
最新回复 (14)
雪    币: 263
活跃值: (399)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2
赞,
2017-12-30 09:06
0
雪    币: 27
活跃值: (836)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
本工具是一个apk软件,打开后.....(大神能共享脱壳工具嘛)
2017-12-30 09:55
0
雪    币: 1526
活跃值: (2077)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
脱壳工具求
2018-1-1 09:27
0
雪    币: 2673
活跃值: (2947)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
求工具或者怎么从壳的classloader调到真正的clasloader的
2018-1-19 15:18
0
雪    币: 723
活跃值: (1281)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
6
gtict 求工具或者怎么从壳的classloader调到真正的clasloader的
哥们,我的代码已经,很清楚的写出。怎么从壳的classloader调到真正的clasloader的了
2018-1-19 16:29
0
雪    币: 486
活跃值: (459)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
7
顶一个,^_^  不错,越来越厉害了!
2018-1-19 22:02
0
雪    币: 723
活跃值: (1281)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
8
蓝铁 顶一个,^_^ 不错,越来越厉害了!
都是薛老师教的好啊,和你学到好多知识,感谢薛老师
2018-1-20 00:35
0
雪    币: 20
活跃值: (105)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
厉害了  可以直接搞出来友盟的协议了
2018-2-7 21:26
0
雪    币: 163
活跃值: (1538)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
10
这个可以分析不加壳的umeng吧?
2018-2-14 11:17
0
雪    币: 14
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
加密数据那里没有看懂  可以请教下你么?
2020-10-10 11:25
0
雪    币: 141
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
友盟协议最近刚搞定了, 
2020-10-14 23:43
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13

对一个类似的应用(360加固,友盟协议)脱壳,找到楼主分析到的大部分文件,但水平有限,不知道如何解密出参数,fiddler也抓不到包,用Xposed hook时,此应用即停止网络请求。本人希望学习其中的加密和反抓包技术,哪位愿意教授,酬谢可商议。

最后于 2021-1-24 09:04 被wx_孙悟空_151编辑 ,原因:
2021-1-24 08:43
0
雪    币: 226
活跃值: (537)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
脱壳工具没发呀,大佬
2021-11-23 20:31
0
雪    币: 114
活跃值: (591)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
厉害啊
2022-9-10 00:58
0
游客
登录 | 注册 方可回帖
返回
//