逆向APK,动态调试解出加密算法key

原创 sauren  2019-04-16 09:45  阅读 333 views 次 评论 0 条

需求来源于朋友提的一个应用,需要拿出API来用一下,方便统计数据。burp抓包后发现存在签名校验,某些字段存在加密算法。

初次尝试将APK反编译失败,随后想了一下,历史版本可能没有加固过,遂百度了一下最老版本,果然没加固,并且API算法是一致的。

 

jd-gui工具搜索源码找到关键的加密类如上图

可以看出使用DES加密,并且种类为1,应该是cbc方式,密钥key,和算法因子Iv参数都是一样(key.getBytes("UTF-8"))

之后,找到该源码对应smali文件,log一下key的值。

红框为我插入的log语句。重新编译打包后,可以使用adb工具连接模拟器,执行到该语句时,就可以看print出来的key是什么东西了。

使用adb shell logcat后,打印出了该key。

至此逆向完成,找出了算法以及加密的关键密钥。许多APP在早期时,公司比较小,没有进行加固,而后期由于人员、功能臃肿,可能也无法去更改算法和密钥。这也是我们渗透测试的一种方法,找到历史版本APP,也许能少走很多弯路。

本文地址:/archives/190.html
版权声明:本文为原创文章,版权归 sauren 所有,欢迎分享本文,转载请保留出处!
高性能云服务器特惠

发表评论


表情