逆向 x品会 api_sign
版本 7.88.6
帖子底部有参考说明
charles 抓包
目标字段 api_sign
api_sign
搜索关键字
跟进找到是api_sign >>> KeyInfo native gsNav 方法
private static native String gsNav(Context context, Map<String, String> map, String str, boolean z);
###########
################
导出 keyinfo.so 用ida分析
定位
算法 hash1
跟进 找到hash1算法
动态调试
具体几次sha1加密,有无加盐,拼接的字符串长啥样
用frida hook [Functions_gs > hookj_getByteHash] 方法
通过hook可知 俩次的头部都出现[aee4c425dbb2288b80c71347cc37d04b]这个固定字符串 可能是一段salt
- 测试:
- 通过charles把map获取,通过UrlDecode转换一下
- 验证第一次sha1 将salt+拼接的字符串进行一次sha1
- 然后sha1结果拼接salt再进行一次sha1
加解密在线工具 网站
ida 代码翻译不全处理
- 如图
- 右键选择 hide casts
- File–>Load File–>Prase C Header File–>选择jni.h
- 点到 a1 右键 convert to struct * //转换到结构体指针 再选择 _JNIEnv
-
效果
-
下载资源