AndroidStudio编写Xposed模块并Hook某方法

1.新建一个Android项目,有没有Activity都行。
2.在项目的app文件夹里新建一个lib文件夹 (普通的文件夹) project 右边 下拉标志那 选择 项目
3.把XposedBridgeApi-XX.jar复制粘贴到lib文件夹里
4.来到AS的lib文件夹,右键XposedBridgeApi-XX.jar,选择add as library,点击OK
5.打开app/build.gradle文件,把最下面compile files(‘libs/XposedBridgeApi-XX.jar’) 的compile改为provided,然后点击右上角同步,必须点!
注意是 app目录下的 build.gradle文件
6.在AndroidManfest里边,在项中添加如下项。路径app/src/main/AndroidManifest.xml
//true会加载这个模块尝试hook
//这是模块描述
//XposedBridgeApi版本号

7.回到app/src/main/java/xxx.xxx.xxx(包名)/包名下创建一个java class,类名随意(尽量写Test),内容如下:
复制粘贴到类中,有注释清晰可见可阅读 //记得把之前默认创建的类给 替换掉

import android.content.Context;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;

public class Test implements IXposedHookLoadPackage {
@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {
try{
if (loadPackageParam.packageName.equals(“要hook的包名”)){//要hook的包名
findAndHookMethod(“类名”,loadPackageParam.classLoader,“方法名”,参数类型,new myHook());
//要hook的类名以及方法名,如果有参数,在方法名后面写参数类型与参数个数,例如int.class或String.class或Context.class,有几个写几个,没有就不写(去掉这个 参数类型,)。
//这里的类名 是工程java下的路径+类名 不是单单的类名
}
} catch (Exception e){
e.printStackTrace();
}

}

}

class myHook extends XC_MethodHook{
protected void beforeHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {
}

protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {
    Object ret =123456;   //这个123456只是个 例子  具体 你自己任意修改 类型也可以任意
    param.setResult(ret);//返回
}

}

8.在AS项目的app文件夹上点击右键,选择NEW,Folder(前面是安卓图片的),Assets Folder,选择main,点击ok

9.来到app/src/main/Assets,右键Assets选择NEW,创建一个File,命名为xposed_init 里面的内容是hook模块的入口点,本例中的包名以及入口点是com.xiaolajiao.myhook.Test所以这个文件里就写了这个,具体你们的包名是什么,类名是什么,你们自己更改。
这里的包名是 com.xiaolajiao.myhook 类名是Test

10.至此,完成了模块的编写,点击绿色三角进行安装
11.安装后打开Xposed,打开模块选项,勾选模块,回到框架选项,点击软重启
12.重启回来后,即可对指定的包名,指定的类名,指定的方法,进行HOOK,返回你设定好的返回值。

你可能感兴趣的:(安卓逆向)