开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2906|回复: 11
收起左侧

[图文资料] 某资金盘Uniapp逆向协议加密静态分析

[复制链接]
结帖率:100% (3/3)
发表于 2024-7-8 14:34:36 | 显示全部楼层 |阅读模式   福建省漳州市
本帖最后由 moxi520 于 2024-7-9 11:03 编辑

某资金盘Uniapp逆向协议加密静态分析

  • 查壳(查APP有没有加壳,俗称加固)

    查壳.png

    注:我这里显示可能未加固(其实是没加壳的),具体可以用TM管理器或者用其它的查壳工具
  • 查看是Uniapp,还是flutter,还是Java

    用压缩包打开APK文件 进到assets目录下,发现有个 apps 文件夹,进去看看怎么个事

    apps.png

    发现有个UNI开头的文件夹,点进去在接着点进去www的文件夹里(这种类型的就是Uniapp)

    Uni.png

    把这个 app-service.js 导出来到桌面(这个JS文件就是Uniapp的主代码)

    app-service.png
  • 开始抓包,看具体有那些加密了

    注:我这里用的是Sunny的抓包工具(模拟器Sunny抓包配置Sunny官网就有教程)根据自己喜好用自己趁手的抓包工具,不一定跟我用的一样

    把APK丢进模拟器里面看看能不能运行,OK能运行起来,不能运行就看看是否是有root检测或者模拟器检测

    第一处加密 抓包发现协议头上有个sign 看下值 有点像加盐(俗称MD5),把APP结束后台重新打开在观察下 sign 的值发现跟之前抓到的一样没变化,那就是在加盐的时候没有加入一些会变动的的值进行加盐

    抓包1.png

    第二处加密 抓包注册的时候发现提交的Json里面有个code是加密的,看下这些字符长度这么短,首先排查非对称加密,那剩下的就是对称加密了

    注册code.png

    第三处加密 抓包登录的时候发现提交的Json里面有个code是加密的,看下这些字符长度这么短,首先排查非对称加密,那剩下的就是对称加密了

    登录code.png
  • 开始静态分析

    OK,加密的地方都找出来了,开始静态分析

    问:这里可能就有人有疑问了,不是Uniapp吗?直接上HBuilder X里面的Uniapp调试不就行了,干嘛还静态分析那么麻烦呢

    答:我有用HBuilder X调试结果卡在连接成功界面一直在转圈圈,后面也上了WebView调试,发现在浏览器里抓不到包,我直接放弃了,所以才静态分析JS文件.

    行了废话少说,我在这里用 WT-JS 来打开之前导出到桌面的 app-service.js 美化JavaScript代码,美化之后保存,美化只为了方便阅读代码

    JS美化.png

    之后用 Visual Studio Code 打开文件 Ctrl+F 快捷键搜索
    [JavaScript] 纯文本查看 复制代码
    sign:
    区分大小写 全词匹配都选上

    搜索sign.png

    找到这个位置发现好像跟协议头的格式差不多,那就开始找 k 这个方法定义在哪里

    我们双击 k 变成选中状态之后,鼠标右键 转到定义

    k定义.png

    这里就是 k 定义的地方 最后都是调用了这个方法
    [JavaScript] 纯文本查看 复制代码
    (0, l.default)(r + d.sign)
    双击 l 右键 转到定义

    l定义.png

    发现是webpack调用模块的一个样子,我们直接搜索
    [JavaScript] 纯文本查看 复制代码
    5363:
    区分大小写 全词匹配都选上

    5363模块.png

    发现就是MD5加密

    我们回到 k 定义的地方,浏览一下具体流程 把传进来的 t 进行 Json到文本 之后进行MD5(r + d.sign)

    d.sign 是个啥东西我们还不知道,继续双击 d 右键 转到定义

    d定义.png

    又是webpack调用模块的一个样子,我们直接搜索
    [JavaScript] 纯文本查看 复制代码
    5a5d:
    区分大小写 全词匹配都选上,结果没有,换个格式 加上双引号
    [JavaScript] 纯文本查看 复制代码
    "5a5d":

    sign加盐值.png

    嘿嘿,找出来了.我们进行加盐验证一下

    sign验证.png

    没毛病,接下来就是 登录 跟 注册的code了,开始动手

    搜索
    [JavaScript] 纯文本查看 复制代码
    code:
    区分大小写 全词匹配都选上

    code赋值.png

    差不多就这个位置,嘿嘿发现有个
    [JavaScript] 纯文本查看 复制代码
    r.aesEncrypt(r.verifyCode, "abc1234567890123")
    这个方法,继续搜索
    [JavaScript] 纯文本查看 复制代码
    aesEncrypt:

    aesEncrypt定义.png

    看到是AES\ECB\Pkcs7的,需要传两个参数 t 跟 e ,t就是待加密的内容,e就是Key根据上面的调用方法,那Key不就是
    [JavaScript] 纯文本查看 复制代码
    abc1234567890123
    开始验证,有了Key我们直接解密看看.

    登录code解密.png

    诶,奇怪解密怎么没结果呢?我们明明找对位置了啊。这里我就直接说了这个加密值就是空文本加密出来的我们空加密文本直接加密看看

    登录code加密.gif

    OK,竟然Key找出来了,那我们直接解密注册的code看看.

    注册code解密.png

    诶,发现竟然解密不出来,我们继续回到JS文件,搜索一下注册包里面的一个值 就拿 parentSpreadCode 这个搜索吧
    [JavaScript] 纯文本查看 复制代码
    parentSpreadCode:

    注册code赋值.png

    发现key竟然跟登录的不一样.最后更改Key解密注册的code

    注册code解密1.png

    至此图文教程结束.

    如果本帖对您有帮助还望动动您发财的小手点个赞,评分支持一下!


评分

参与人数 2好评 +2 精币 +4 收起 理由
mj1210 + 1 + 2 感谢发布原创作品,精易因你更精彩!
heigui999 + 1 + 2 YYDS~!

查看全部评分


结帖率:100% (1/1)

签到天数: 8 天

发表于 2024-8-29 06:30:07 | 显示全部楼层   香港特别行政区*
这是我今天学到的最有用的东西。
回复 支持 反对

使用道具 举报

发表于 2024-7-14 14:30:09 | 显示全部楼层   广西壮族自治区玉林市
学习了,挺有用的,对我这个新人很有帮助
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)

签到天数: 8 天

发表于 2024-7-13 10:48:30 | 显示全部楼层   山西省临汾市
谢谢大佬分享
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 5 天

发表于 2024-7-8 22:33:12 | 显示全部楼层   湖北省武汉市

回帖奖励 +10 枚 精币

谢谢大佬分享
回复 支持 反对

使用道具 举报

结帖率:98% (39/40)
发表于 2024-7-8 19:30:39 | 显示全部楼层   吉林省通化市

回帖奖励 +2 枚 精币

谢谢大佬分享
回复 支持 反对

使用道具 举报

签到天数: 7 天

发表于 2024-7-8 17:10:48 | 显示全部楼层   河南省郑州市

回帖奖励 +2 枚 精币

谢谢大佬分享  
回复 支持 反对

使用道具 举报

签到天数: 7 天

发表于 2024-7-8 17:10:24 | 显示全部楼层   河南省郑州市
学习一下   
回复 支持 反对

使用道具 举报

结帖率:100% (8/8)

签到天数: 8 天

发表于 2024-7-8 16:11:10 | 显示全部楼层   广东省东莞市

回帖奖励 +2 枚 精币

谢谢大佬分享
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)

签到天数: 7 天

发表于 2024-7-8 15:59:50 | 显示全部楼层   山西省太原市

回帖奖励 +2 枚 精币

                                 
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表