吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7737|回复: 41
收起左侧

[Android 原创] 某咖啡app网络请求签名算法分析与解密

  [复制链接]
darbra 发表于 2021-3-11 13:24
1 接口请求分析
抓包:
0001.jpg
加密参数:sign

2 加密参数分析
脱壳, jadx反编译后,进行全局搜索“sign”,并进行相应的hook尝试均无功而返。
接着全局搜索“System.loadLibrary”,定位到com/*******/safeboxlib/CryptoHelper.java。
0002.jpg

0003.jpg

对md5_crypt进行hook分析,可以确定加密位置就是这个native函数。
0004.jpg
从hook的结果中,我们发现,参数1是请求的query的key与value(还有cookie里的uid和其value)用“=”号拼接,并用“;”组合而成。

接着我们hook 之前截图中的StubApp.getString2("17534") 得到so的名称为crypt**D。

旋即打开这个so,一眼就瞄准了export中的某md5,点进去探索一番。
0005.jpg
0006.jpg
可以看到graph略微花哨,用了混淆,但影响不大,我们只要抓住关键点就行。
0007.jpg
我们在代码中锁定了doMD5sign,进行相应的hook,和结果一致。

进入doMD5sign探索一番,看到了两个关键函数:md5和bytesToInt。
我们发现,md5函数的入参数,在原有的query基础上添加了salt。
0008.jpg
我们进行相应的验证,和上图结果一致。

0009.jpg
我们接着发现,bytesToInt的某输出是最终结果的一部分。
0010.jpg
通过此bytesToInt函数名字的顾名思义,和流程分析,我们可以确认,在上一部md5的digest结果基础上,分成四部分,各四个字节,并将每一个部分进行“int.from_bytes”,如果小于零则✖️-1.
0011.jpg
最终算法如下图所示:
0012.jpg
与结果一致,大功告成了啊。

在 本人github.com/darbra/sign 有更多的一些思路交流,如果对老师们有所帮助,不甚欣喜。

免费评分

参与人数 11威望 +1 吾爱币 +28 热心值 +9 收起 理由
zh_cn + 1 + 1 鼓励转贴优秀软件安全工具和文档!
heawercher + 1 + 1 鼓励转贴优秀软件安全工具和文档!
qtfreet00 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
luofei + 1 用心讨论,共获提升!
xhc1123 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
ming300 + 1 + 1 用心讨论,共获提升!
听风没有雨 + 1 看到你github上已经分析了很多app的sign 多分享下解决思路吧
正义钢炮 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
蘑菇君丶 + 1 + 1 我很赞同!
可乐大鲨鱼 + 1 热心回复!
笙若 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

侠一胡 发表于 2021-3-21 18:30
Light紫星 发表于 2021-3-11 15:31
昨天搞的一个flutter写的apk,sign通过长度判断是sha256的,然后flutter编译出来一个libapp.so,在github上 ...

flutter的apk我基本就放弃了大佬有没有什么关于flutter的逆向的教程
Light紫星 发表于 2021-3-11 15:31
昨天搞的一个flutter写的apk,sign通过长度判断是sha256的,然后flutter编译出来一个libapp.so,在github上找了个工具导出了so里面的函数名称和地址,然后hooksha256的加密方法最终找到了计算sign的方法
李现在哪 发表于 2021-3-11 13:30
Airey 发表于 2021-3-11 13:41
感谢分享,前来支持~
温故而知新 发表于 2021-3-11 13:56
谢谢楼主分享!!!
bao2330 发表于 2021-3-11 14:04
谢谢分享,学习了
ares313 发表于 2021-3-11 14:11
只能模板一下
做不了
 楼主| darbra 发表于 2021-3-11 15:36
Light紫星 发表于 2021-3-11 15:31
昨天搞的一个flutter写的apk,sign通过长度判断是sha256的,然后flutter编译出来一个libapp.so,在github上 ...

老师优秀
影子记忆 发表于 2021-3-11 16:06
学习一下,感谢分享
masker_k 发表于 2021-3-11 16:27
大佬牛逼
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-20 04:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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