文章目录[隐藏]
app shield 算法分析 12 / 13
- app shield 参数加密破解|unidbg
- shield 参数加密破解 - python 执行 c++
- app sessionid searchid|算法分析
- app sessionid searchid|算法还原
- pc timestamp2 加密参数分析破解
- app shield so 加密算法分析破解还原|前言
- app shield so 加密算法分析破解还原|so 算法简单分析
- app shield so 加密算法分析破解还原|aes 算法分析破解
- app shield so 加密算法分析破解还原|md5 算法分析破解
- app shield so 加密算法分析破解还原|xydata 算法分析破解
- app shield so 加密算法分析破解还原|总结
- app hmac 参数分析
- 7261 版 shield 算法分析破解
仅供学习研究 。请勿用于非法用途,本人将不承担任何法律责任。
const 小白龙_龙哥 = function () {}
const a = 龙哥是全能的傻宝,每天都会换一种姿势来分享各种骚操作
const b = 10月份开始准备密码学课程,11月份准备更完 aes 密码学系列课程
const c = 除了密码学,还有各种 unidng 骚操作,反 unidbg,反反 unidbg,全是出自傻宝
const d = 赶紧点击加入星球吧,买到就是赚到 !
return 无敌的龙哥,全能的傻宝
前面
前面分析了 shield 参数的生成逻辑,最后也是成功使用 python 还原,有兴趣的可以联系博主一起讨论哦
其中有个比较重要的参数就是 hmac 今天就来分析分析这个参数的生成逻辑
0x1
先清空 app
或者,重新安装,然后打开 app
抓包,切记不要登录
打开手机的这个目录,查看 s.xml
文件,hmac
就存在这个里面了,复制一段到抓包工具里搜索一下
搜索到四个结果,发现 hmac
结果都是在,响应头里,所以 hmac
是服务器下发给客户端的
来看下参数,这里依旧有 shield
参数,前面文章中分析 shield
经验时,会使用到 hmac
参数,但是请求前很明显客户端是没有 hmac
所以这里有坑,那我们就先来踩一踩
先直接复制请求参数,运算一下,结果果然不一样,那这里可能还有些细节需要处理,使用 unidbg
试试
unidbg
使用 unidbg
把 hmac
赋值为空字符串在计算,发现结果是相同的,里面有猫腻,来 console debugger
下
aes
逻辑的这个函数下个断点 0x117FE
,好家伙直接执行结束,那就说明代码没执行到这里,往上分析
这里是判断参数一,参数二是否为空,参数一是 JNIEnv
,参数二是 hmac
所以这里条件不成立,直接执行跳过返回
来到 md5
处下个断点 0x93EB0
成功断下来记录 r0
寄存器的地址 0xbffff6b0
,输入 n
执行
执行完在查看数据,发现 md5
的结果为空,
再来到这里下断点 0x93EB0
查看参数一,是前面拼接的结果,参数二是 0x53
,参数三是 buffer
用来存放结果数据,记录下地址 0x402920c0
n
单步执行,查看 0x402920c0
地址数据,结果已经出来了
使用 CyberChef
看看,结果相同,下面在使用 python
试试
python
前面分析到,md5 返回结果是空,所以咱们这里直接写,主要不要写空,还是依旧要给 16 个字节,因为后面要参与运算,给空就报错了
跑起来,有了运算结果,看起来是一样的,其实不对,里面还有一个坑
就是这里有个判断,hmac
为空就是 1 否则及时 2,之前分析的时候这里写死了,所以结果不对改一下
我这里直接判断写死,再跑起来,结果就一样了
写过接口测试一下
一切正常 hmac
也正常返回了
666
2022-02-10大佬,求源码
永恒之心
2022-01-12大佬,6.87版本还能正常返回数据吗?没提示版本过低吗?
会爬山的小脑虎
2022-01-12@永恒之心 可用的,一些正常,
bb
2021-11-20大佬,我想请问下,怎么用 unidbg 把 hmac 赋值为空字符串?谢谢大佬!
会爬山的小脑虎
2021-11-20@bb 额,直接不能赋值吗,就像变量赋值一样,
bb
2021-11-20@bb 主要是我没搞明白要赋给哪个地址。是这样的,我直接调用lieshield.so文件来计算shield,发现计算结果和抓包结果不一致。然后看到了大佬你的这篇文章,所以想请教一下解决思路。
会爬山的小脑虎
2021-11-20@bb 这样啊,在 libshield.so 里是通过,SharedPreferences.getString 方法读取,hmac 的,你可以在 unidbg 补环境的时候,直接返回 hmac 真正的值即可,
bb
2021-11-20@bb 终于解决了,十分感谢大佬!
会爬山的小脑虎
2021-11-20@bb 客气了
zl
2021-11-19看了大佬有关小红书一系列的文章,受益匪浅。不过,我现在爬取过程中会进行大批量的抓取,但是发现有个请问参数xy-common-params中sid这个参数很重要,爬取过多会出现滑块问题。请问下,大佬有研究过这个sid参数的生成方式吗,可否有大批量生成这个参数的方式吗
会爬山的小脑虎
2021-11-19@zl sid 是 数美风控生成的,跟登陆状态绑定,难搞,没深入研究过