一.前言
近日对某APP进行逆向分析时,发现请求数据进行了参数加密,如图。由于经验不足,逆向该签名算法过程颇有些曲折,所以写这篇文章来记录下。

二.正文
总共三个额外参数:code、awardType、time,先对sign的值进行观察,长度32位,因此猜测采用的是MD5算法加密的,所以就从这方面入手了。
1.先尝试常规方法,对参数进行简单排序然后MD5测试下,发现都不对,只能换种方法了。

2.大多情况下MD5加密会将排序后的参数+salt值再加密,或者将MD5后的值再偏移一下,这种情况只能采用反编译或Hook来解决了。
(1)先用jadx反编译工具查看下,搜索“sign”和URL值,并没有发现有用的信息,此时还可以从Activity分析下去,但分析混淆后的代码,这方法工作量就有点大了,于是转换Hook方法。
(2)先直接Hook加密类MessageDigest,因为采用原生MD5加密的一定会经过该类,所以先来试试
XposedBridge.hookAllMethods(classLoader.loadClass("java.security.Message

本文记录了一次针对APP签名算法的逆向分析过程。通过对不同环节的Hook尝试,最终定位到WebView中的JavaScript加密逻辑,揭示了MD5算法结合盐值的应用。
最低0.47元/天 解锁文章
2400

被折叠的 条评论
为什么被折叠?



