首页
论坛
课程
招聘
[原创]小红书新版shield逆向
2020-12-14 23:42 19582

[原创]小红书新版shield逆向

2020-12-14 23:42
19582

小红书新版shield逆向

@

目录

1、 通过Jni_load 找到函数偏移

​ 定位到jni_load 函数,跟踪函数sub_A654。如图

 

 

其中sub_2e1f4 是对app的签名进行验证,直接nop,sub_736B0 是通过jni调用java的okhttp类的一些方法。sub_7306 是动态注册的函数。

 

找到地址off_8E0D0,各个函数地址如图所示。

 

image-20201214161419323

2、分析各个函数的作用

2.1 initializeNative函数

 

initializeNative函数是对jni调用java方法的一些类进行初始化操作,建议对变量进行改名,类用c开头,方法用m开头便于后续分析。

2.2 initialize 函数

 

initialize 函数是从s.xml文件中读取key为main_hmac的值value。

 

 

把读取的value使用sub_AAAC函数进行传参, sub_AAAC 函数的主要功能是对value和device_id 进行aes得到一个key,把key存入ptr + 0x28C 处, 如果sub_AAAC返回值为1,则使用新版的shield算法,反之则使用旧版的s1-s12算法。

2.3 intercept函数

intercept 是shield算法的逻辑部分,image-20201214163418664

 

通过ptr+650的值来判断使用哪种算法,sub_ABB8为新版,sub_AD14为旧版。

 

image-20201214163558684

 

sub_1fbb0函数对sub_AAAC 函数的key进行异或0x36和0x5c,这里大胆猜测shield使用的是hmacmd5算法,sub_1fbb0是对key进行初始化,sub_1fc52是对url进行md5,sub_1fc7e是对前面两步进行收尾工作计算出真正的shield。image-20201214164153024

 

像这种a1+12 是一个函数指针我是通过动态调试得到函数地址。使用的是魔改的md5。

3、算法还原

3.1 算法流程

1、result = md5((key ^ 0x36) + param)

 

2、shield = md5((key ^ 0x5c) + result)

 

aes部分的算法暂时没进行还原,md5的部分使用c语言进行了还原,本来想移植到python的,但是python没有无符号等数据类型,每一次操作都要进行&0xFFFFFFFF,心态有点爆炸,所以编译了一个shield.so供python调用,最终完成图如下:

 

md5的参数为(urlpath+xy-common-params+xy-platform-info) (ps:urlpath 需要去掉? 比如urlpath为: /api/sns/v6/homefeed?oid=homefeed_recommend,传入的为/api/sns/v6/homefeedoid=homefeed_recommend)

 

image-20201214165037338

 

image-20201214165132368


【公告】看雪团队招聘安全工程师,将兴趣和工作融合在一起!看雪20年安全圈的口碑,助你快速成长!

收藏
点赞7
打赏
分享
打赏 + 5.00
打赏次数 1 金额 + 5.00
 
赞赏  一位没有留下痕迹的看雪读者   +5.00 2021/04/15 可以加个A826409835 详细咨询一下嘛微信有偿谢谢
最新回复 (27)
雪    币: 303
活跃值: 活跃值 (2033)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
Bk_Humor 活跃值 2020-12-15 00:33
2
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
机械皇帝 活跃值 2020-12-16 16:08
3
0
青椒个问题,魔改md5那个函数,相同的输入参数,算出的结果一直在变,不知大佬有没有遇到相同的问题,什么原因呢
雪    币: 330
活跃值: 活跃值 (136)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ty1937 活跃值 2020-12-17 10:09
4
0
新旧版算法已还原,可以交流
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
机械皇帝 活跃值 2020-12-17 10:27
5
0
三楼,如何交流
雪    币: 791
活跃值: 活跃值 (376)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
养只猫不好么 活跃值 2020-12-20 00:42
6
0
机械皇帝 青椒个问题,魔改md5那个函数,相同的输入参数,算出的结果一直在变,不知大佬有没有遇到相同的问题,什么原因呢
我也发现这个问题了,好像不是每次都变吧,是调用几次就会变掉了
雪    币: 3472
活跃值: 活跃值 (458)
能力值: ( LV3,RANK:39 )
在线值:
发帖
回帖
粉丝
湘北三井同学 活跃值 2020-12-21 09:09
7
0
这已经是旧版了
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
机械皇帝 活跃值 2020-12-21 15:54
8
0
养只猫不好么 我也发现这个问题了,好像不是每次都变吧,是调用几次就会变掉了
我是直接把那个魔改md5函数抠出来,直接运行的啊,传参一样,每次计算结果不一样。
雪    币: 1322
活跃值: 活跃值 (1796)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
hczhong 活跃值 2020-12-21 18:12
9
0
机械皇帝 我是直接把那个魔改md5函数抠出来,直接运行的啊,传参一样,每次计算结果不一样。
这个我倒是没发现,扣出来的只是关键计算部分,循环部分要自己处理下--
雪    币: 1322
活跃值: 活跃值 (1796)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
hczhong 活跃值 2020-12-21 18:12
10
0
湘北三井同学 这已经是旧版了
对啊, xy开始的shield 稍微看了下 差不了多少。
雪    币: 3472
活跃值: 活跃值 (458)
能力值: ( LV3,RANK:39 )
在线值:
发帖
回帖
粉丝
湘北三井同学 活跃值 2020-12-22 09:02
11
0
hczhong 对啊, xy开始的shield 稍微看了下 差不了多少。
就是在旧版基础上再进行的一层处理
雪    币: 1302
活跃值: 活跃值 (744)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zylrocket 活跃值 2020-12-23 15:33
12
0
加个好友,有事找你
雪    币: 1322
活跃值: 活跃值 (1796)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
hczhong 活跃值 2020-12-24 12:46
13
0
湘北三井同学 就是在旧版基础上再进行的一层处理
逆向完XY版本的shield,关键加密地方伪代码行数100+, 实际上几行代码就可以搞定,头疼。
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
JIUN·LIU 活跃值 2020-12-26 00:28
14
0
调试闪退这个问题也是很难受
雪    币: 5
活跃值: 活跃值 (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mb_dnnocddr 活跃值 2020-12-30 14:00
15
0
想请教一下动态注册的问题是如何解决的呢, libshield.so发现hook不到..
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
油菜尖 活跃值 2021-1-21 17:08
16
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
油菜尖 活跃值 2021-1-21 17:09
17
0
ty1937 新旧版算法已还原,可以交流
你好,可以请教下吗?QQ 2703712645
雪    币: 0
活跃值: 活跃值 (226)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Erlösung 活跃值 2021-1-28 19:45
18
0
这个版本没有ollvm 混淆吗
雪    币: 3
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
Class___ 活跃值 2021-3-9 13:30
19
0
ty1937 新旧版算法已还原,可以交流
新版 shield QQ 1534930390
雪    币: 566
活跃值: 活跃值 (479)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wooyunking 活跃值 2021-3-9 16:10
20
0
小红书:caozhonghuang 同学请接律师函
雪    币: 1322
活跃值: 活跃值 (1796)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
hczhong 活跃值 2021-3-9 16:34
21
0
wooyunking 小红书:caozhonghuang 同学请接律师函[em_13]
别搞
雪    币: 216
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
亿乐社区系统 活跃值 2021-3-24 12:06
22
0
大佬~求加我扣~30944032,有事给你谈下合作~求速度加,诚心~
雪    币: 7
活跃值: 活跃值 (328)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
laonaa 活跃值 2021-5-12 11:08
23
0
新版逆向交流734248537
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
万里星河 活跃值 2021-5-13 02:51
24
0
优秀
游客
登录 | 注册 方可回帖
返回