首页
社区
课程
招聘
[原创]某物设备注册学习
发表于: 2025-8-4 23:16 7107

[原创]某物设备注册学习

2025-8-4 23:16
7107

某app,看了一些大佬写了相关的纯算文章,深感工作量的庞大,作为采集菜鸡,本着能采一点是一点,实在不行就人工爬取的态度,琢磨了一下frida hook注册配合改机软件注册设备的方式,跑了一段时间,最近疑似平台改版,又得东改西改的,这里浅浅分享一下。

抓包使用的Reqable,在设备初次登陆的时候,会触发call接口的第一次,生成关键设备参数sk,后续重新进入app,也会触发call接口,但就不是第一次了(你懂的)
图片描述
这个call接口的逻辑,就是通过携带了如图这个一长串加密了的请求体进行设备的注册,使用平台的data解密的算法解密一下大致如下(敏感数据已作处理)

上述已经解密出来的众多参数,我咋知道这些玩意儿啥用呢,作为没经验的ios初学者,就只能一个一个去hook分析。这里要分析的所有参数都来自这么一个字典形式body,所以一开始,我们只能猜测并进行模糊的hook,hook一下字典添加元素的操作,- setObject:forKeyedSubscript:方法,并加一个判断,判断这个添加进去的元素是xxx,这样就能针对性去分析某一个参数了。

hook结果如下
图片描述

解压ipa文件获取内部Mach-O可执行文件,将可执行文件拖入ida,跟到第一个位置0x9d5602c,对应着sub_10ADD98E0,这里对应的就是将参数设置到字典中的逻辑。v592代指的字典,v537代指就是被设进去的参数了。
图片描述

基于刚才的逻辑,对body里面每一个参数进行hook跟栈找到位置,ida中看逻辑,如上图所示,每一个设置到字典中的v537,找到上方离它最近的位置,追进去就是它的生成逻辑
图片描述
比如这里就是对sharedInstance发送一个a1参数,这个函数对象具体咋实现的呢?在旁边ctrl+F搜索一下就完事儿了。

比如解密data中的ljbmc参数,使用我提供的模糊hook脚本hook一下,跟栈,在ida中找到逻辑如下,在左侧搜索点击setDuNorNYJInfo查看具体逻辑
图片描述
图片描述
这里的sub_10AD65F00的逻辑看不明白啥意思,可以尝试hook一下,比如这里传入的字符串是什么意思,hook的时候先看看汇编视图
图片描述
如上图所示,可以hook 0x9CEA1FC,函数sub_10AD65F00的调用打印一下x2寄存器的值。

打印值如下
图片描述
咱也看不明白,直接问一手AI吧
图片描述
图片描述
哟西,这逻辑不就是看你小子有没有越狱吗?接下来干嘛呢,像我这样的菜鸟就老老实实进去一点点看逻辑,打注释,如果是检测,就思考能不能hook绕过,或者伪装自己的参数,如果是随机值,就自己构造替换,是别的什么算法生成的字段,就去分析看看算法逻辑,总而言之,hook这个call接口的参数,挨着挨着去分析和修改参数,直到注册出来的设备能用,就ok了

里面还有与设备相关的参数,smid和bssm值就由fcuuid字段生成,这里我就是直接用ios中的改机软件改掉的。这一套就可以实现hook注册设备,并使用设备去注册账号请求平台登陆数据了
当然,风控一直再改,前两周方案一跑,意气风发,这两周就只能两眼一瞪,我干xx

{'skData': {'tlapp': '1753714535994', 'bcn': 'dewu', 'do2': '15', 'tvlc': '', 'dhdsi': 'Darwin,21.6.0,iPhone', 'nifct': '1', 'dbg': '0', 'dmc': '0778ca838aeb915xxxxxd040ccc3cf1', 'dcai': '-', 'bdn': '嘿嘿嘿', 'tnt': '1', 'dadr': '0x183be7f30|0x198dcd280|0x183c228f4|0x1843a027c', 'bstdr': 'd2802a50|d4001001|540000e3|a9bf7bfd', 'dsst': '2024-07-16 02:56:32 +0000,2024-07-16 02:56:32 +0000', 'iksour': '0', 'tkuid': '88cea24c5dc2b6fa', 'bav': '5.65.2', 'bmkd': '0', 'tfedtk': '0', 'bid': '嘿嘿嘿', 'dme': 'iPhone9,1', 'bssm': '20250727103330b9e50c069149fa1嘿嘿嘿e4010063231b0ddba74e33892', 'lacjb': '0', 'tot': '1753714543785', 'lftk': '0', 'skst': '0', 'dfdlp': '', 'ladf': '0', 'ljdb': '0', 'dsd2bt': '1753613048', 'ldjb': '0', 'tcst': '250', 'oidv': '3DCEDCB0-7FBE-42A3-AB71-F8F567F8D6D6', 'bacdr': 'd2800430|d4001001|540000e3|a9bf7bfd', 'idv': '3DCEDCB0-7FBE-42A3-AB71-F8F567F8D6D6', 'dcpu': 'arm64_v8,2', 'norcst': '14', 'idfs': 'da82cc8c261c12bb4b53f7b24bb8a3bb', 'lrtcai': '', 'lrsf': '', 'bcv': '1.9.3.250402', 'diud': 'UUIDac247e7093e542b3b10e9a1e609111ac', 'lfjbl': '1152921500311909827,0,0', 'dat2': '2025-07-27 10:26:55', 'lfd': '0', 'mntd2': '2B6A9A424CAE41D1E6BD373E0D8115BA06FC18CC980871FFE32118CDDA264F5D6E5264408016FEF6D0C967172BC2E761', 'lspf': '', 'smid': '20250727103330b9e50c069149fa17b8ebd17e4010063231b0ddba74e33892', 'dcm': 'e97ff888f3e25a1f1fda881db47f4fe7', 'lnfrt': '0', 'lrtkt': '0', 'iaid': 'UUIDac247e7093e542b3b10e9a1e609111ac', 'src': 'ios', 'dat3': '1970-01-01 08:00:00', 'dtms': '31968497664', 'dss': '750,1334,2', 'ifa': '', 'dsimc': '0', 'dln': 'zh-Hans-CN', 'idfni': '8abc5649728bfa574ee08df4ff31ad24', 'idv2': '3DCEDCB0-7FBE-42A3-AB71-F8F567F8D6D6', 'dust': '1', 'sk': '9RW3A2fK0GI1wBlAnh1XOcWhI57exliJ8eJvqM0oC4NHlBGnB9WT8OZl4m7CLeizKtvfnyDyrln4lB1VY0xHrpXhcH1v', 'ltwi': '-', 'sksour': '2', 'lrev': '0', 'dat': '2025-07-28 22:53:52', 'itm': '7GPZR297Z9', 'dtiz': '28800', 'lism': '0', 'datmt': '1753714432398', 'dbs': '1,78', 'dvo': '0.00', 'ldjbc': '0,0', 'ikfa': '', 'dpms': '2097807360', 'tfetk': '0', 'dbt': '1753696073860', 'dint': '1745742242.944226818', 'dm': 'iPhone', 'did': 'com.siwuai.duapp', 'dsb': '51', 'dtu': 'App Store', 'dn': 'iPhone', 'dcm2': 'b2ffaf1cebcb07776bec74c0d5cc7d1e', 'dmpn': '中国电信', 'do': '15.8.3', 'ljbmc': '0', 'lnrsf': '', 'ljb': '0', 'dme2': 'D10AP', 'dpxy': '1', 'datpt': '0', 'ds': '14132,30487', 'incuf': 'vs2|0EH|vs2|0|0^E3|0EH|E3|0|0^pWa|0EH|pWa|0|0^wYa|0EH|wYa|0|0^-^-^96|0EH|96|0|0^V3|0EH|V3|0|0^JEj|0EH|JEj|0|0^Mj7|0EH|Mj7|0|0^iPhone9,1kwarm64_v8,2', 'dms': '2000.62,68.75,710.38,649.69,1674.20,314.14,3.34', 'lsimu': '0', 'cicst': '28', 'dpid': '6155', 'dmcc2': 'CN', 'lsd': 'fac37083aacff02337c3fb8797b1f3bd', 'lrspt': '0', 'mntd': '2B6A9A424CAE41D1E6BD373E0D8115BA06FC18CC980871FFE32118CDDA264F5D6E5264408016FEF6D0C967172BC2E761@/dev/disk0s1s1', 'tct': '1753714543885', 'ljbac': '0', 'rcst': '21', 'lrmtc': '0', 'lnpf': '1', 'stone': '9RW3A2fK0GI1wBlAnh1XOcWhI嘿嘿嘿8OZl4m7CLeizKtvfnyDyrln4lB1VY0xHrpXhcH1v', 'tllc': '', 'dsst2': '1745742265.564154', 'lstf': '0', 'dadir': '/private/var/containers/Bundle/Application/A6AB079B-9E4D-4D4C-8124-A65AED710DB5/DUApp.app', 'inzt': '', 'tcdetk': '0', 'tcrp': '1', 'dsdbt': '1753613048836661', 'lrdyf': '0', 'bkv': '', 'iud': '79373A6D235A40CB90154B58648F460B', 'bty': 'default', 'bty2': '1', 'nect': '1'}, 'devEncParam': {'ct': '1', 'nck2': '62Q9C86sk67A0ye9BE'}}
{'skData': {'tlapp': '1753714535994', 'bcn': 'dewu', 'do2': '15', 'tvlc': '', 'dhdsi': 'Darwin,21.6.0,iPhone', 'nifct': '1', 'dbg': '0', 'dmc': '0778ca838aeb915xxxxxd040ccc3cf1', 'dcai': '-', 'bdn': '嘿嘿嘿', 'tnt': '1', 'dadr': '0x183be7f30|0x198dcd280|0x183c228f4|0x1843a027c', 'bstdr': 'd2802a50|d4001001|540000e3|a9bf7bfd', 'dsst': '2024-07-16 02:56:32 +0000,2024-07-16 02:56:32 +0000', 'iksour': '0', 'tkuid': '88cea24c5dc2b6fa', 'bav': '5.65.2', 'bmkd': '0', 'tfedtk': '0', 'bid': '嘿嘿嘿', 'dme': 'iPhone9,1', 'bssm': '20250727103330b9e50c069149fa1嘿嘿嘿e4010063231b0ddba74e33892', 'lacjb': '0', 'tot': '1753714543785', 'lftk': '0', 'skst': '0', 'dfdlp': '', 'ladf': '0', 'ljdb': '0', 'dsd2bt': '1753613048', 'ldjb': '0', 'tcst': '250', 'oidv': '3DCEDCB0-7FBE-42A3-AB71-F8F567F8D6D6', 'bacdr': 'd2800430|d4001001|540000e3|a9bf7bfd', 'idv': '3DCEDCB0-7FBE-42A3-AB71-F8F567F8D6D6', 'dcpu': 'arm64_v8,2', 'norcst': '14', 'idfs': 'da82cc8c261c12bb4b53f7b24bb8a3bb', 'lrtcai': '', 'lrsf': '', 'bcv': '1.9.3.250402', 'diud': 'UUIDac247e7093e542b3b10e9a1e609111ac', 'lfjbl': '1152921500311909827,0,0', 'dat2': '2025-07-27 10:26:55', 'lfd': '0', 'mntd2': '2B6A9A424CAE41D1E6BD373E0D8115BA06FC18CC980871FFE32118CDDA264F5D6E5264408016FEF6D0C967172BC2E761', 'lspf': '', 'smid': '20250727103330b9e50c069149fa17b8ebd17e4010063231b0ddba74e33892', 'dcm': 'e97ff888f3e25a1f1fda881db47f4fe7', 'lnfrt': '0', 'lrtkt': '0', 'iaid': 'UUIDac247e7093e542b3b10e9a1e609111ac', 'src': 'ios', 'dat3': '1970-01-01 08:00:00', 'dtms': '31968497664', 'dss': '750,1334,2', 'ifa': '', 'dsimc': '0', 'dln': 'zh-Hans-CN', 'idfni': '8abc5649728bfa574ee08df4ff31ad24', 'idv2': '3DCEDCB0-7FBE-42A3-AB71-F8F567F8D6D6', 'dust': '1', 'sk': '9RW3A2fK0GI1wBlAnh1XOcWhI57exliJ8eJvqM0oC4NHlBGnB9WT8OZl4m7CLeizKtvfnyDyrln4lB1VY0xHrpXhcH1v', 'ltwi': '-', 'sksour': '2', 'lrev': '0', 'dat': '2025-07-28 22:53:52', 'itm': '7GPZR297Z9', 'dtiz': '28800', 'lism': '0', 'datmt': '1753714432398', 'dbs': '1,78', 'dvo': '0.00', 'ldjbc': '0,0', 'ikfa': '', 'dpms': '2097807360', 'tfetk': '0', 'dbt': '1753696073860', 'dint': '1745742242.944226818', 'dm': 'iPhone', 'did': 'com.siwuai.duapp', 'dsb': '51', 'dtu': 'App Store', 'dn': 'iPhone', 'dcm2': 'b2ffaf1cebcb07776bec74c0d5cc7d1e', 'dmpn': '中国电信', 'do': '15.8.3', 'ljbmc': '0', 'lnrsf': '', 'ljb': '0', 'dme2': 'D10AP', 'dpxy': '1', 'datpt': '0', 'ds': '14132,30487', 'incuf': 'vs2|0EH|vs2|0|0^E3|0EH|E3|0|0^pWa|0EH|pWa|0|0^wYa|0EH|wYa|0|0^-^-^96|0EH|96|0|0^V3|0EH|V3|0|0^JEj|0EH|JEj|0|0^Mj7|0EH|Mj7|0|0^iPhone9,1kwarm64_v8,2', 'dms': '2000.62,68.75,710.38,649.69,1674.20,314.14,3.34', 'lsimu': '0', 'cicst': '28', 'dpid': '6155', 'dmcc2': 'CN', 'lsd': 'fac37083aacff02337c3fb8797b1f3bd', 'lrspt': '0', 'mntd': '2B6A9A424CAE41D1E6BD373E0D8115BA06FC18CC980871FFE32118CDDA264F5D6E5264408016FEF6D0C967172BC2E761@/dev/disk0s1s1', 'tct': '1753714543885', 'ljbac': '0', 'rcst': '21', 'lrmtc': '0', 'lnpf': '1', 'stone': '9RW3A2fK0GI1wBlAnh1XOcWhI嘿嘿嘿8OZl4m7CLeizKtvfnyDyrln4lB1VY0xHrpXhcH1v', 'tllc': '', 'dsst2': '1745742265.564154', 'lstf': '0', 'dadir': '/private/var/containers/Bundle/Application/A6AB079B-9E4D-4D4C-8124-A65AED710DB5/DUApp.app', 'inzt': '', 'tcdetk': '0', 'tcrp': '1', 'dsdbt': '1753613048836661', 'lrdyf': '0', 'bkv': '', 'iud': '79373A6D235A40CB90154B58648F460B', 'bty': 'default', 'bty2': '1', 'nect': '1'}, 'devEncParam': {'ct': '1', 'nck2': '62Q9C86sk67A0ye9BE'}}
function hook_setObject() {
    var _className = "__NSDictionaryM"; //类名
    var _methodName = "- setObject:forKeyedSubscript:"; //方法名NSMutableDictionary
    var hook_method = eval('ObjC.classes.' + _className + '["' + _methodName + '"]');
    Interceptor.attach(hook_method.implementation, {
        onEnter: function (args) {
            var str = ObjC.Object(args[3]).toString()
            // console.log(str)
            // Print_OC_RET(args[2], str, this.context);
            if (str === "替换要分析的字段") {
                print_c_stack(this.context, "参数位置")
                // Print_OC_RET(args[2], str, this.context);
            }
        }, onLeave: function (retval) {
        }
    });
}
function hook_setObject() {
    var _className = "__NSDictionaryM"; //类名
    var _methodName = "- setObject:forKeyedSubscript:"; //方法名NSMutableDictionary
    var hook_method = eval('ObjC.classes.' + _className + '["' + _methodName + '"]');
    Interceptor.attach(hook_method.implementation, {
        onEnter: function (args) {
            var str = ObjC.Object(args[3]).toString()
            // console.log(str)
            // Print_OC_RET(args[2], str, this.context);
            if (str === "替换要分析的字段") {

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

最后于 2025-8-6 09:38 被兆兆的罩罩编辑 ,原因:
收藏
免费 4
支持
分享
最新回复 (18)
雪    币: 23
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2

2025-8-5 09:24
0
雪    币: 209
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
2025-8-5 13:54
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
大佬这个data解密怎么弄呀
2025-8-8 03:07
0
雪    币: 2474
活跃值: (4139)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
有Android版本的吗?
2025-8-8 04:16
0
雪    币: 792
活跃值: (1176)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
暂时没有看哦
2025-8-8 20:39
0
雪    币: 792
活跃值: (1176)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
解密关注一下+ duSecDouEncodeWithRequest:方法
2025-8-8 20:40
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
大佬能不能出一期data加解密的
2025-8-8 22:29
0
雪    币: 168
活跃值: (290)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
不愧是反风控专家 
2025-8-19 15:39
0
雪    币: 42
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
可以私聊吗
2025-9-4 12:48
0
雪    币: 308
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
得物系的app设备注册差不多都是这个东西,之前搞的确实风控一天一个样,很恶心
2025-9-17 12:31
1
雪    币: 792
活跃值: (1176)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12

最后于 2025-9-18 22:35 被兆兆的罩罩编辑 ,原因:
2025-9-17 18:25
0
雪    币: 792
活跃值: (1176)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
mb_yqsvfqmf 可以私聊吗
ok的
2025-9-18 22:35
0
雪    币: 792
活跃值: (1176)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
一线之隔 得物系的app设备注册差不多都是这个东西,之前搞的确实风控一天一个样,很恶心
dddd
2025-9-18 22:36
0
雪    币: 42
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
兆兆的罩罩 ok的
你v?
2025-9-22 10:53
0
雪    币: 0
活跃值: (220)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
大佬私
2025-9-23 02:20
0
雪    币: 0
活跃值: (220)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
dddd
2025-9-23 17:24
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
你只看了三分之一 啊
2025-11-12 14:42
0
雪    币: 792
活跃值: (1176)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
19
mb_cpwlanod 你只看了三分之一 啊

现在看完了

最后于 2025-11-12 23:36 被兆兆的罩罩编辑 ,原因:
2025-11-12 23:02
1
游客
登录 | 注册 方可回帖
返回