针对“逆向基础题一:验证登录”逆向题,需要先脱壳,前面讲过很多脱壳的方法,例如“逆向基础二十一:ART环境下使用IDA脚本脱壳”中使用IDA脚本脱壳。下面介绍利用Xposed去hook住Android系统框架层DexClassLoader函数去脱壳。Xposed的使用可以参考“逆向基础十八:Android之Xposed框架”这篇文章。 如下所示是xposed核心代码,根据DexClassLoader的第一个参数就是待加载的apk的路径,所以我们可以直接取到apk文件,然后我们先读取apk文件存放到byte数组中,然后将byte数组中内容写入/data/data/packagename路径下。
安装好该Xposed插件后,运行待脱壳APK,然后可以在/data/data/packagename路径下找到dumper.apk,我们将该文件取出到Windows上,利用JADX打开,之前我们利用修改Smali代码打印出用户名和密码,这次我们直接正向去分析源码来获取用户名和密码。 核心代码如下,调用checkNameAndPassword函数,传入用户名、密码以及str字符串做base64加密后当做key传入。
继续跟踪代码,发现用户名是"U2hlMTFfTjZSYw=="进行base64解码,密码是基于用户名做SHA1加密,取前16字节生成。
直接网页在线解码,结果如下,得到了用户名和密码。
全部0条评论
快来发表一下你的评论吧 !