1234下一页
返回列表 发布新帖

[教程] [某小说旗下漫画SFSecurity逆向记录]

646 33
发表于 2025-3-14 21:06:29 来自手机 | 查看全部 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
某天心血来潮,弄了个书源,爬某平台的漫画

既然这样,那么第一步肯定就是抓包了
先MT看看
Image_253721469837199.webp

APP有某数字加固,不慌,通过一些手段绕过SSL检查,开始抓包

我们看看请求
```
https://api.*****.com/search/comics/result/new?q=血姬与骑士&expand=comics,typeName,authorName,intro,latestchaptitle,latestchapintro,tags,sysTags&sort=hot&page=0&size=12&systagids=&isFinish=-1&updateDays=-1
```
这里没啥特殊的

我们再看看请求头
有一个Authorization头,但分析了好几次后,发现是固定的,所以我们也写死就行
还有一个叫SFSecurity头,里面包含了一个随机的uuid,时间戳和deviceToken
nonce=1DD2FC4E-15C0-4FA7-AD33-599B8483B9A9&timestamp=1741955967576&devicetoken=5B1883D9-D7E9-BAD4-A60F-DF82A415E432&sign=6A92026619F3C78EAC36270E729C5EBB

那么我们的目标就很明确了,那便是拿下sign参数
32位HEX,盲猜MD5
经过一些奇奇怪怪的操作之后,我们成功把数字加固脱了下来
进dex分析
Image_254728232629567.webp
看到了一些奇怪的东西

上面的clinit里加载了二进制库libsfdata.so,所以算法大概率就在这里面
我这里没有电脑,所以是纯手机处理(其实我看过ida,一so有壳,二被混淆了,静态分析超级难)
我们先readelf一下
```
    47: 0000000000021a4c 21584 FUNC    GLOBAL DEFAULT   10 _ZN3MD59transformEPKh
    49: 0000000000020bdc   900 FUNC    GLOBAL DEFAULT   10 _ZN3MD5C2Ev
    97: 0000000000028c44    92 FUNC    GLOBAL DEFAULT   10 _Z3md5Ss
   109: 00000000000283fc  1632 FUNC    GLOBAL DEFAULT   10 _ZNK3MD59hexdigestEv
   113: 0000000000026e9c  1584 FUNC    WEAK   DEFAULT   10 _ZN3MD52HHERjjjjjjj
   444: 0000000000027aa4  2392 FUNC    GLOBAL DEFAULT   10 _ZN3MD56updateEPKhj
后面省略
```

发现了大量的MD5相关,所以MD5无疑
因为APP有数字加固,所以我决定自己搓一个APP,模拟调用函数
写APP这一步省略

那么,上frida吧

编写Hook脚本
```js
Java.perform(function () {
    console.log('hook start');
    var checkInterval = 1000;
    var maxAttempts = 20;

    var attempt = 0;
    // 因为我APP逻辑问题,so不是启动时加载,所以需要这一步
    var interval = setInterval(function () {
        attempt++;
        var module = Module.findBaseAddress('lib**data.so');
        if (module) {
            clearInterval(interval);
            console.log('lib**data.so loaded at: ' + module);
            hookFunction();
        } else if (attempt >= maxAttempts) {
            clearInterval(interval);
            console.log('Failed to load lib**data.so within the given attempts');
        }
    }, checkInterval);

    function hookFunction() {
        var funcAddress = Module.findExportByName('lib**data.so', '_ZN3MD56updateEPKhj');
        if (!funcAddress) {
            console.log('Function _ZN3MD56updateEPKhj not found'); // 这是MD5最关键的MD5Update函数
            return;
        }
        console.log('Function address: ' + funcAddress);

        Interceptor.attach(funcAddress, {
            onEnter: function(args) {
                // C++成员函数的第一个参数是this指针
                // 后续参数为数据指针和数据长度
                var thisPtr = args[0];
                var dataPtr = args[1];
                var dataLength = args[2].toInt32();

                console.log('\nMD5::update called');
                console.log('this:', thisPtr);
                console.log('dataPtr:', dataPtr);
                console.log('dataLength:', dataLength);

                // 检查指针有效性
                if (!dataPtr.isNull() && dataLength > 0) {
                    // 读取前N个字节(防止数据过长)
                    var readSize = Math.min(dataLength, 512);
                    var rawData = Memory.readByteArray(dataPtr, readSize);
                    console.log('Data:', rawData);
                } else {
                    console.log('Invalid data pointer or length');
                }
            }
        });
    }
});
```

就酱紫,我们成功拿到了MD5哈希前的明文
```
1DD2FC4E-15C0-4FA7-AD33-599B8483B9A917419559675765B1883D9-D7E9-BAD4-A60F-DF82A415E432后面保密
```
一看,这不就是前面三个参数拼上一个固定的盐吗

最后经过测试,抓取的盐是正确的,那么我们的工作便顺利完成了

评分

参与人数 5源币 +105 贡献 +14 收起 理由
洛璃 + 20 + 2 水平!
另一个书友圈 + 5 淡定,我来学习!
河鹅和 + 20 + 2 赞一个,好评!
shusan + 50 + 8 源社区,有您更精彩!
壬二酸 + 10 + 2 源社区,有您更精彩!

查看全部评分

fw一只而已,不必在意qwq

评论33

壬二酸Lv.15星光赞助(未赞助不可申请) 发表于 2025-3-14 21:08:56 来自手机 | 查看全部
好厉害。谢谢澄子
回复

使用道具 举报

天天的鸟蛋蛋Lv.14 发表于 2025-3-14 21:20:08 来自手机 | 查看全部
橙子,牛批。
回复

使用道具 举报

xunxunLv.4 发表于 2025-3-14 21:26:47 来自手机 | 查看全部
看不懂 但好厉害 夸夸
回复

使用道具 举报

李七夜星光赞助(未赞助不可申请) 发表于 2025-3-14 21:27:59 来自手机 | 查看全部
看不懂,但是感觉很牛逼
回复

使用道具 举报

我是萝卜Lv.9 发表于 2025-3-14 21:30:31 | 查看全部
绝绝子。厉害哒

回复

使用道具 举报

落雪Lv.4 发表于 2025-3-14 21:34:15 来自手机 | 查看全部
大佬厉害
回复

使用道具 举报

小白菜Lv.2 发表于 2025-3-14 21:35:51 来自手机 | 查看全部
漫画的盐xw*******
是对的  详情 回复
发表于 2025-3-14 23:09
回复

使用道具 举报

轻风吹过77Lv.4 发表于 2025-3-14 21:47:56 来自手机 | 查看全部
感谢分享
回复

使用道具 举报

青蛙Lv.4星光赞助(未赞助不可申请) 发表于 2025-3-14 21:52:31 来自手机 | 查看全部
太厉害了,都是看不懂的代码
回复

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

ysqbbs@outlook.com

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加QQ群
Copyright © 2001-2025 源社区 版权所有 All Rights Reserved.
关灯 在本版发帖
扫一扫添加QQ群
返回顶部
快速回复 返回顶部 返回列表