这次有点sao了,破解安卓某 APP 低层加密( 二 )


这次有点sao了,破解安卓某 APP 低层加密

文章插图
 
同时也来抓包:
这次有点sao了,破解安卓某 APP 低层加密

文章插图
 
把v52的值放到在线MD5网站中加密看看:
这次有点sao了,破解安卓某 APP 低层加密

文章插图
 
和抓包得到的结果是一样的 , 那就证明hook点找对了 , 那么v49就是base64编码之前的值 , v49是什么呢 , 仔细一看 , 里面也有deviceID , 再来分割一下:
这次有点sao了,破解安卓某 APP 低层加密

文章插图
 
第一行通过两次hook , 发现他是固定不变的 , 第二行是改变的 , 32位 , 看起来又是个md5 , 第六行是包名 , 返回伪c代码 , 再来分析看看 , 在前面又看到了MD5加密的地方:
这次有点sao了,破解安卓某 APP 低层加密

文章插图
 
那来hook这个函数 , 看看入参:
这次有点sao了,破解安卓某 APP 低层加密

文章插图
 
打印的入参数据为:
这次有点sao了,破解安卓某 APP 低层加密

文章插图
 
S是一个时间戳 , 拿到MD5加密网站上验证一下 , 正好和v49中包含的字符串相同:
这次有点sao了,破解安卓某 APP 低层加密

文章插图
 
至此 , 逆向就完成了 , 来总结一下x-app-token的获取过程 , 先是带有把时间戳进行md5 , 按下图顺序拼接:
这次有点sao了,破解安卓某 APP 低层加密

文章插图
 
然后把拼好的字符串进行base64编码 , 最后把编码结果进行MD5 , 得到x-app-token的开头部分 , 组成如下:
这次有点sao了,破解安卓某 APP 低层加密

文章插图
 
接下来写个脚本来请求数据
请求
代码如下:
这次有点sao了,破解安卓某 APP 低层加密

文章插图
 
运行 , 成功拿到数据:
这次有点sao了,破解安卓某 APP 低层加密

文章插图
 
总结
 
今天主要介绍了 native 层 hook 的方法 , 虽然 so 文件中的伪c代码要有一定的基础才能看懂 , 但是先不要怕 , 分析的过程中可以先大胆假设 , 有 frida 非常强大的 hook 功能 , 就能一步步验证之前的假设 。这两次都是静态分析方法 , 下次我们再来介绍一下动态调试的方法 。
 
最后 , 以上内容仅供学习交流 , 希望对你有帮助 , 那么我们下回见 , peace!




推荐阅读