首页
论坛
课程
招聘
[原创]dy协议字段分析
2020-8-3 18:46 5788

[原创]dy协议字段分析

2020-8-3 18:46
5788

    

最近闲来无事,本着学习的目的,就研究了一下dy的算法,切入点是dy的登录协议。若哪里分析的有问题,请大佬指出。

 

工具:

雷电模拟器,AndroidKillerjadxjeb3fiddlerAndroidStudio

  因为dy的很多Java代码用jadx是反编译不出来的,所以就jebjadx结合使用了。

1、抓包

我用的是fiddler,然后雷电模拟器设置好代理就可以抓包了,抓到的包如下图。


在这里先分析passwordmobile,这两个字段。那么面临第一个问题,应该搜索什么才能快速定位呢。我比较喜欢搜请求地址,因为在很多app里data比分被加密很正常,但是请求地址就一般不会做处理。但是请求地址很长,所以要提取有用的信息,我在这里搜的是 mobile/login

因为我分析的是登录协议,而且是依靠手机号登录的,所以这个就具有一定的代表性。

 

2、分析

AndroidKiller中搜索,

结果有四个,然后经过排除就只剩下第一个符合条件。然后查看java代码。

很明显,这里就是我们想要的那个点。经过分析,passwordmobile这两个字段的加密都是一样的,即先按位异或,然后转成16进制。



接下来分析X-SS-STUB字段,先简单的分析一下,可以观察到这个字段是32位的,然后我就想到了md5。最后分析出来的结果果然是md5

下面进行分析:

首先查找了关于这个方法的调用,来到这个方法

然后再往上查找就找不到调用点了,然后我就用AndroidStudio进行了smali代码的动态调试,

在我一开始定位的函数的返回处打了一个断点,然后向上回溯。但是,很可惜,向上的引用在执行handler,这肯定不是我们想要的地方。

然后就在AndroidKiller中搜索了X-SS-STUB

结果有三个,看上去三个都很像,于是我在三个函数里面都打了断点,看看经不经过就完事了。结果后两个都经过了,函数如下

第一处

第二处


分析后发现第一处与X-SS-STUB有关,第二处与X-Gorgon有关,通过第二处的函数名也可以看出来

此处稍后分析X-Gorgon字段的时候分析,现在先分析第一处。

但是分析第一处的时候会发现此处没有赋值的地方,让我一度怀疑是找错了地方,但是通过分析此处的smali代码会发现,此处调用了一个函数 

这个函数即赋值的地方。所以说我之前被反编译的java代码给骗了。。。。

函数如下

确实是在进行md5


下面来分析一下参数,byte[] bArr 这个参数为post的data部分,即

is_vcd=1&mix_mode=1&password=72607260343736313033&mobile=2e3d332534303d3737333534343533&account_sdk_source=app

通过动态调试可以发现。

同时再进行一次加密

由此完成了X-SS-STUB字段的加密。

 

最后来分析X-Gorgon字段,找到这个函数

这个函数在分析X-SS-STUB字段的时候提到过。从名字上可以猜测这个是一个回调函数

下面进进入分析


在这里找到了 X-Gorgon 字符串,大胆猜测一下这个v3就是key,然后顺着找v3,看它在什么地方会被用到

v6是一个Map,v0_1就是拼装起来的value,接下来要分析的就是v0_1了。

发现v0_1是在这里拼接的


关键点是这个函数调用链

 

下面先分析函数 com.ss.a.b.a.a()参数v9_2, V9_2由四个参数拼接而成。

找到v0_1赋值的地方,在此处

arg20为传进来的参数

通过动态调试发现此参数为URL

然后调用了tt.b()方法,跟进去之后发现接着调用了tt.d()方法.

tt.d()方法是把URL的参数截取出来,查看此函数就可以发现。

然后接着调用b.a()方法


进行md5后再进行一次加密,和X-SS-STUB字段的加密是一样的。


接下来分析v12参数,此参数为X-SS-STUB字段


参数v13v15分别为Cookie Cookie[sessionid]


这四个参数若为空,则会被赋值为 "00000000000000000000000000000000"

 

最后整理一下参数

v16: flag 值为1

V10: System.currentTimeMillis() / 1000

V9_2由四个参数拼接而成,分别为

v0_1: URL中的参数部分,即 ?后部分的md5后,再经过一次加密的值

v12: X-SS-STUB字段

v13: Cookie

V15: Cookie[sessionid]

 

3、总结

以上就是分析dylogin协议的全过程,希望能够对大家有所帮助。


[公告]《使用DCI技术进行全栈调试》训练营,硬件调试器你的,《软件调试》作者张银奎亲自授课!

收藏
点赞4
打赏
分享
最新回复 (14)
雪    币: 32
活跃值: 活跃值 (77)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6otest 活跃值 2020-8-3 21:02
2
0
功力不错
雪    币: 2
活跃值: 活跃值 (151)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
疯子Tear 活跃值 2020-8-4 18:15
3
0
大佬留个联系方式交流啊!
雪    币: 205
活跃值: 活跃值 (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
KnightKing 活跃值 2020-8-4 18:24
4
0
新鲜的~
雪    币: 3141
活跃值: 活跃值 (748)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
[軍] 活跃值 2020-8-5 11:44
5
0
疯子Tear 大佬留个联系方式交流啊!
加q 2537924073
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_oplwtqsv 活跃值 2020-8-5 15:05
6
0

     都是闲出来的,我也是之前闲来无事搞了搞,把协议全部走了一遍  kkbbcc@foxmail.com

最后于 2020-8-6 17:17 被mb_oplwtqsv编辑 ,原因:
雪    币: 12
活跃值: 活跃值 (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
New对象处 活跃值 2020-8-6 10:50
7
0
登录的账号密码这不算加密吧,按照这步骤,到xg算法,vlog报文解密,私信bf解密,最后受风控弃坑
雪    币: 7
活跃值: 活跃值 (176)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zoukaiping 活跃值 2020-8-6 23:50
8
0
New对象处 登录的账号密码这不算加密吧,按照这步骤,到xg算法,vlog报文解密,私信bf解密,最后受风控弃坑
vlog报文解密, 了解xlog里的各个字段是什么意思吗?
"bdc": "",
        "f_clk": 0,
        "cba": "0xe8260870",
        "bqq": "vxvxv",
               "atify": "0x00000000",
        "u_clk": 0,

"fch": "20797019837",
"alpha": "lji928sla20aj3",
雪    币: 402
活跃值: 活跃值 (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
暗街之王 活跃值 2020-8-8 13:16
9
0
zoukaiping vlog报文解密, 了解xlog里的各个字段是什么意思吗? "bdc": "", "f_clk": 0, ...
你是hook里面跑的乱码吧,也没几个解密得了,那个alpha明明是一个运营商在你这里居然解不开
雪    币: 4286
活跃值: 活跃值 (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
熊猫吃鱼 活跃值 2020-8-9 13:37
10
0
zoukaiping vlog报文解密, 了解xlog里的各个字段是什么意思吗? "bdc": "",        "f_clk": 0,       ...

都是啥意思

最后于 2020-8-9 13:38 被熊猫吃鱼编辑 ,原因:
雪    币: 0
活跃值: 活跃值 (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_沉默的逗比 活跃值 2020-8-11 10:55
11
0
New对象处 登录的账号密码这不算加密吧,按照这步骤,到xg算法,vlog报文解密,私信bf解密,最后受风控弃坑
说的太对了
雪    币: 1406
活跃值: 活跃值 (102)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
愤怒的平头哥 活跃值 2020-9-25 16:57
12
0
感谢大佬分享
雪    币: 1
活跃值: 活跃值 (96)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
吴思泉 活跃值 2020-9-25 17:58
13
0
想问一下 dy的协议应该涉及到so吧,如果涉及到了,难不难搞,不难的话我也自己跑一遍了
雪    币: 3141
活跃值: 活跃值 (748)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
[軍] 活跃值 2020-9-26 09:28
14
0
吴思泉 想问一下 dy的协议应该涉及到so吧,如果涉及到了,难不难搞,不难的话我也自己跑一遍了[em_27]
肯定涉及到so了 so中的混淆力度还是可以的 整体的难度还是比较可以的
雪    币: 1036
活跃值: 活跃值 (115)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
眯着眼睛 活跃值 2020-9-26 11:49
15
0
最终就碰到风控,然后弃坑..........
游客
登录 | 注册 方可回帖
返回