首页
社区
课程
招聘
[原创]某SDK注册风控逆向
发表于: 2天前 1287

[原创]某SDK注册风控逆向

2天前
1287

最近分析某个 app时,发现注册口的风控特别严格。

严格到什么程度?

1)国内 IP不让使用

2) 设备没有sim卡不让注册

3) 发现设备环境不干净直接封号

4) 注册不允许使用 vpn

5) google注册必须是 @gmail.com后缀


注册时,携带了一个后台下发的设备 id,这个设备 id必须带上。也就是这个下发设备 id的协议必须请求成功,才能进行后续的注册。


①确定device_id来源


直接搜索相关字符串,最后定位在了这个 sdk的代码中:

没错,就是 libdu.so. 至于这是哪个 sdk,懂的都懂。



现在 AI 这么先进了,我就直接让 AI 告诉我,最终加密前的函数是哪个:


接下来就用一段 frida脚本输出验证下:

很明显这是一个 json字符串,也就是加密前请求的关键参数,字符串形式如下:


{
    "nAt": "2",
    "ubF": "这里是设备 id",
    "AYk": "CA305B:D678CB:120F1C",
    "P1J": "CA305B:D678CB:120F1C",
    "R37": "Xiaomi",
    "R3d": "XXXX",
    "DUv": "xxxx.xxxx.xxx",
    "SAN": 30,
    "Zrs": 341,
    "EV2": "app版本字符串",
    "AAA": "v1.0",
    "BBB": "v1.0",
    "3mS": "v8.8.0",
    "2cO": "时间戳",
    "GVp": "Organic",
    "mIS": "<n?1>B9pm==8nn?CD;>oaAp;?k8o?m<8<?#!",
    "sfOo": "ED71279",
    "foO": ";O@Ao?m;Bq=l;m>",
    "4VP": 5,
    "bf7": "41007",
    "JPd": "41007",
    "J7w": 0,
    "NoH": 1,
    "wSK": "IP",
    "DVp": "?=B<A0B@9>8<=>",
    "9N2": ";;7",
    "Bn2": "BD!=ABB@=<?7=@<",
    "IPz": "agMgzXYY5A==",
    "sj5K": "61EF187",
    "jK5": ";Q!!;E;=;;AA;;Q;",
    "JYD": 4,
    "02P": "86,-1",
    "7S2": {
        "0": {
            "txo": ".k#yy",
            "Zne": "h!A9>9<=<7ABOE=qqCEOoECq?:?A<D!B+?:lo@pEBBp;E<pf",
            "MCN": "i889<fBBC;:"
        }

    }
,
    "iYB": {
        "txo": ".k#yy",
        "Zne": "h!A9>9<=<7ABOE=qqCEOoECq?:?A<D!B+?:lo@pEBBp;E<pf",
        "MCN": "i889<fBBC;:",
        "mch": "TTQb",
        "AWo": ";;;;;<;;;;",
        "8tS": 63959,
        "Hsz": 63959
    }
,
    "z4e": 3,
    "zpA": "WIFI",
    "QQW": 1,
    "2Lp": 0,
    "B7G": {

    }
,
    "vuS": "A@n@o?8nm>m8n;mB!o?=AQ<?pp8@?>@8Bm@n",
    "9be": 14,
    "6yY": "1c0c42eda039a179b3b619b671b0c0c83a43b6d44d26a8951c167aa76e6fe7af",
    "vG9": 0,
    "gaR": ";",
    "Nue": "=9DC=CBD9?9@",
    "T5u": {
        "_adb._tcp.": {
            "0": "adb-ba20125,f:3",
            "1": "adb-ba20125,IP:PORT"
        }
,
        "wrs": "-2",
        "i": "0,58.248.99.72;"
    }
,
    "Kvk": "73D2D0E56AC213AC2731AF49C328769C",
    "NAB": 1,
    "UOv": ">B@A0D@;A<?<!=A=<@B",
    "sCc": 1,
    "uCM": {
        "pnb": 2,
        "I2Y": 1,
        "LzC": 54,
        "nF5": 100,
        "fgm": 4003,
        "YXM": 330
    }
,
    "Db2": -1,
    "box": {

    }
,
    "h6Z": "APP名",
    "cxX": 1
}


这个协议的返回内容包含设备 id,同样问了大模型后,我知道了解密后的数据:


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2天前 被CCTV果冻爽编辑 ,原因:
收藏
免费 79
支持
分享
最新回复 (46)
雪    币: 5955
活跃值: (10672)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
火钳刘明
2天前
0
雪    币: 1103
活跃值: (2302)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
火钳刘明
2天前
0
雪    币: 0
活跃值: (308)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
火钳刘明
2天前
0
雪    币: 7534
活跃值: (24371)
能力值: ( LV12,RANK:550 )
在线值:
发帖
回帖
粉丝
5
看看
2天前
0
雪    币: 204
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
tql
2天前
0
雪    币: 2432
活跃值: (4076)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
6666
2天前
0
雪    币: 6
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
火钳刘明
2天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
学习
2天前
0
雪    币: 0
活跃值: (425)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
6666666666
2天前
0
雪    币: 0
活跃值: (120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
66
2天前
0
雪    币: 378
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
666
2天前
0
雪    币: 211
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
66
2天前
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
dsafwgqg
1天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
6
1天前
0
雪    币: 102
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
666
1天前
0
雪    币: 1
活跃值: (348)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
666
1天前
0
雪    币: 200
活跃值: (2698)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
666
1天前
0
雪    币: 459
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
666
1天前
0
雪    币: 1550
活跃值: (4463)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
20
22
1天前
0
雪    币: 1924
活跃值: (2715)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
21
6
1天前
0
雪    币: 28
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
666
1天前
0
雪    币: 199
活跃值: (676)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
666
1天前
0
雪    币: 603
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
这个是某盟的SDK,我搞过,加密方式很简单的,xor加密(zlib压缩(设备指纹)),每个请求的xor秘钥都是不一样的,但是对应请求是固定的,返回的数据也是xor加密的,使用的xor秘钥是跟加密时一样的,至于设备指纹中的字段加密也很简单,好像是某种换位形式的不太记得了,不过字段加密有很多种形式,根据设备指纹中某个数据的后三位 / 100 来判断使用的字段加密形式
1天前
0
雪    币: 155
活跃值: (4426)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
学习 !!!
1天前
0
游客
登录 | 注册 方可回帖
返回