- A+
XposedFramewrork也使用了模块化的扩展模式,可以通过编写模块来满足不同的需求,比如有一个模块叫
Zygote是Android的核心,每打开一个app,Zygote就会fork一个虚拟机实例来运行app,XposedFramework深入到了Android核心机制中,通过改造Zygote来实现一些很牛逼的功能。Zygote的启动配置在/init.rc 脚本中,由系统启动的时候开启此进程,对应的执行文件是/system/bin/app_process,这个文件完成类库加载及一些函数调用的工作。
当系统中安装了XposedFramework之后,会对 app_process进行扩展,也就是说,XposedFramework会拿自己实现的app_process 覆盖掉Android原生提供的 app_process文件,当系统启动的时候,就会加载由XposedFramework替换过的进程文件,并且,XposedFramework还定义了一个jar包,系统启动的时候,也会加载这个包:
1.RootedDevice/Emulator(已root的手机或者模拟器)
2.XposedInstaller(
3.TestingAndroidApp
XposedFramework就是一个apk包,下载到后用下面的命令安装到手机上:
安装好之后,打开Xposed,下面是截图:
Modules下面是一些可用的模块
1.Modulename
2.ModuleDescription
3.ModuleMinimumVersion
package="com.bypass.validation"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="15" />
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" >
<meta-data
android:name="xposedmodule"
android:value="true"/>
<meta-data
android:name="xposeddescription"
android:value="Hooking Module for Bypassing Validation" />
<meta-data
android:name="xposedminversion"
android:value="30" />
</application>
</manifest>
这里的包名是com.attify.vuln,
上面这一行代码指定了只有当com.attify.vuln这个包加载的时候,才会触发一系列的hook行为,当这行为触发的时候,de.robv.android.xposed.XposedHelpers类的findAndHookMethod方法就会被调用,并在适当的时候执行前置方法(beforeHookedMethod)和后置方法(afterHookedMethod),这里绕过验证方法只需要让传递到checkLogin方法的两个参数相等即可,soeasy。当checkLogin方法被调用前调用我们实现的模块,并执行前置函数,就可以使得传递给checkLogin函数的两个参数相等。
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫