您的位置首页 >硬件 >

利用Xposed去hook住Android系统框架层函数去脱壳

导读 大家好,我是极客范的本期栏目编辑小友,现在为大家讲解利用Xposed去hook住Android系统框架层函数去脱壳问题。对于“反向基本问题1 :认证

音频解说

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解利用Xposed去hook住Android系统框架层函数去脱壳问题。

对于“反向基本问题1 :认证登录”的反向问题,我们需要先shell。我们之前讲过很多shell的方法,比如《逆向基础题21:ART环境下使用IDA脚本shell》中使用IDA脚本shell。下面介绍如何使用Xposed来挂接安卓系统框架层的DexClassLoader函数来摆脱外壳。Xposed的使用可以参考文章《反向基础18:安卓的Xposed框架》。下图显示了公开的核心代码。根据DexClassLoader的第一个参数,它是要加载的apk的路径,所以我们可以直接获取apk文件,然后我们先读取apk文件并将其存储在字节数组中,然后将字节数组的内容写入/data/data/packagename的路径中。

安装完Xposed插件后,运行要去壳的APK,然后可以在/data/data/packagename的路径中找到dumper.apk。我们把文件拿到窗口,用JADX打开它。之前,我们通过修改Smali代码打印出用户名和密码。这次,我们直接分析源代码来获取用户名和密码。核心代码如下:调用checkNameAndPassword函数,base64加密后传入用户名、密码和字符串作为密钥。

继续跟踪代码,发现base64解码的用户名是‘U2hlMTFfTjZSYw==’,密码是基于用户名SHA1加密的,取前16个字节生成。

直接在线解码网页,结果如下,获得用户名和密码。

对于“反向基本问题1 :认证登录”的反向问题,我们需要先shell。我们之前讲过很多shell的方法,比如《逆向基础题21:ART环境下使用IDA脚本shell》中使用IDA脚本shell。下面介绍如何使用Xposed来挂接安卓系统框架层的DexClassLoader函数来摆脱外壳。Xposed的使用可以参考文章《反向基础18:安卓的Xposed框架》。下图显示了公开的核心代码。根据DexClassLoader的第一个参数,它是要加载的apk的路径,所以我们可以直接获取apk文件,然后我们先读取apk文件并将其存储在字节数组中,然后将字节数组的内容写入/data/data/packagename的路径中。

安装完Xposed插件后,运行要去壳的APK,然后可以在/data/data/packagename的路径中找到dumper.apk。我们把文件拿到窗口,用JADX打开它。之前,我们通过修改Smali代码打印出用户名和密码。这次,我们直接分析源代码来获取用户名和密码。核心代码如下:调用checkNameAndPassword函数,base64加密后传入用户名、密码和字符串作为密钥。

继续跟踪代码,发现base64解码的用户名是‘U2hlMTFfTjZSYw==’,密码是基于用户名SHA1加密的,取前16个字节生成。

直接在线解码网页,结果如下,获得用户名和密码。dfma {

相对位置:

宽度: 1000 px;

margin: 0 auto

}。dfma a:after {

绝对位置:

left : 0;

bottom : 0;

宽度: 30px;

线高: 1.4;

文本对齐:中心;

背景-color: rgba(0,0,0, 5);

color: # fff

font-size : 12px;

内容:“广告”;

}。dfma img {

display:块;

}

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。