快手sig3加密参数逆向分析(一)
2020-07-14 本文已影响0人
feng504x
本文适合有一定逆向基础的朋友~~大神请轻喷~~~
本文只提供分析过程
1. 随便一个反编译工具打开apk, 搜索关键词__NS_sig3
![](https://img.haomeiwen.com/i13570404/1b810b821f8fff1a.png)
2. 定位到方法中
![](https://img.haomeiwen.com/i13570404/0b6cb1d6ac0b9272.png)
3. 层层推进, 找到最终的加密方法
![](https://img.haomeiwen.com/i13570404/ddaeaeda15cc51b6.png)
![](https://img.haomeiwen.com/i13570404/23abe1fda7041133.png)
实现类只有一个~~~
![](https://img.haomeiwen.com/i13570404/1d3d894cd82d8347.png)
![](https://img.haomeiwen.com/i13570404/576fb79d0c13117c.png)
![](https://img.haomeiwen.com/i13570404/840dcb56b657324c.png)
![](https://img.haomeiwen.com/i13570404/66eba832ed0b210e.png)
![](https://img.haomeiwen.com/i13570404/036620a0e9a658d1.png)
![](https://img.haomeiwen.com/i13570404/461f1f163986b352.png)
分析过程中 hook一下 app_key和wb_key
![](https://img.haomeiwen.com/i13570404/00fd90e4d0b4ae9d.png)
![](https://img.haomeiwen.com/i13570404/6bff743e1ba6eadf.png)
不确定是否会改变, 试过重启app, 值没有改变
![](https://img.haomeiwen.com/i13570404/b5ce11ccc68be55a.png)
最后返回的str2就是sig3加密参数
![](https://img.haomeiwen.com/i13570404/078018d2efc5c16e.png)
进入j()方法中看看
![](https://img.haomeiwen.com/i13570404/1982562eab1ae5c0.png)
![](https://img.haomeiwen.com/i13570404/cac63828fe4418d4.png)
查看c方法的用例
![](https://img.haomeiwen.com/i13570404/ec1db1faf23a31c1.png)
比较多的引用
可以猜测可能是在前面的方法调用了f125g赋值了
![](https://img.haomeiwen.com/i13570404/25c2c15845916f4f.png)
发现是一个接口
![](https://img.haomeiwen.com/i13570404/312058de6a01f83f.png)
继续找实现类~~~~~
![](https://img.haomeiwen.com/i13570404/c0d2498b519958c8.png)
![](https://img.haomeiwen.com/i13570404/bcf56d32ffb714a8.png)
IVar.i() 的值就是 前面 url + sig拼接的字符串的字节数组
分析一下a加密方法
![](https://img.haomeiwen.com/i13570404/4f88d4779d587085.png)
又是一个接口
![](https://img.haomeiwen.com/i13570404/060c177e4df211fc.png)
![](https://img.haomeiwen.com/i13570404/1b0dcf67a0fc0a42.png)
![](https://img.haomeiwen.com/i13570404/d47f0a75478d19ea.png)
整个加密方法在java端的调用栈分析完毕, 下一篇分享 frida直接调用方法获取sig3