抖音数据采集教程,一例APK脱壳反编译寻找AES密钥过程记录

数据采集教程,一例APK脱壳反编译寻找AES密钥过程记录

应客户需求对一款名为“**主治医师总题库”包名为com.zitibaohe.zhuzhiyishierke)的APP进行采集可行性分析。
  这款APP和服务器的通讯使用的是HTTP协议,很容易抓到数据包,惋惜返回的数据是加密的,以下图所示。
image.png
  根据以往经验,内容应该是被AES加密了。要想还原出明文,必需要反编译拿到KEY才行。
  下载APK文件,用JADX对其进行反编译,发现被加壳了,使用的是360的加壳工具,以下图所示。
image.png
  必须先脱壳才能反编译到真实的APK源码。脱壳咱们使用Xposed + FDex2插件(PS:若是你对Xposed还不熟悉,建议先阅读Xposed相关文章)。
  安装好FDex2插件(不要忘了重启系统),启动插件,点选要脱壳的APP,以下图所示。
image.png
  而后启动目标APP(儿科主治医师总题库)。使用Root Explorer浏览到APP的数据目录(/data/data/com.zitibaohe.zhuzhiyishierke/)下,若是看到多个dex文件(本来该目录下没有这些文件,以下图所示),说明脱壳成功了。
image.png
  将这几个dex文件pull下来,而后依次用JADX对其进行反编译。因为有多个dex,怎么快速定位咱们关注的代码在哪个里呢?咱们能够搜一些特征字符串,好比前面抓包看到的请求URL中的个“questions”,若是找到了,说明八成就是这个dex文件(以下图所示)。
image.png
  而后咱们再搜索AES相关的关键词好比“AES/”,"SecretKeySpec"或“IvParameterSpec”,最终成功定位(以下图所示),其使用了"AES/CBC/NoPadding"加密算法,对应的KEY和IV都是明文的。
image.png
  咱们来验证下KEY和IV是否正确。借助“AES Online”(http://aes.online-domain-tools.com/)这个在线工具,选择对应的加密算法,输入密文、KEY、IV(以下图所示)。
image.png
  而后点击"Decrypt",成功还原出明文(以下图所示)。点击“[Download as a binary file]”下载解密后的数据文件,发现内容是JSON格式的,解析以后以下图所示。
image.png
  至此,目标实现。
  除了上述经过反编译源码来获取秘钥外(过程很繁琐),咱们还能够利用Xposed的方式(你须要先了解Xposed相关知识),经过HOOK javax.crypto.spec.SecretKeySpec和javax.crypto.spec.IvParameterSpec类来截获KEY和IV,操做过程简单,下面介绍两个相关插件。
1.使用Inspeckage(https://github.com/ac-pm/Inspeckage)这个Android动态分析工具。以下图所示是Inspeckage截获到的AES的KEY,与咱们上面经过源码获取到的一致(不过没有获取的IV,缘由未知)。
image.png
2.我还测了一个叫作CryptoFucker的Xposed插件(https://github.com/Chenyuxin/CryptoFucker),用起来虽然没有Inspeckage方便(没有UI),不过,效果很好,成功获取到了KEY和IV,以下图所示(HEX形式显示)。
image.png
java

更多抖音,快手,小红书数据实时采集接口,请查看文档: TiToDatagit


免责声明:本文档仅供学习与参考,请勿用于非法用途!不然一切后果自负。github

相关文章
相关标签/搜索