首先声明,这些是从其他的博客上整理的,吾爱破解的教我的兄弟学安卓,如下是链接,感兴趣的可以去看看,很适合新手区学习。
https://www.52pojie.cn/thread-742703-1-1.html
1,Xposed框架修改参数
public class HookMain implements IXposedHookLoadPackage {
public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {
//固定格式
findAndHookMethod(
"android.telephony.TelephonyManager", //要hook的包名+类名
lpparam.classLoader, //classLoader固定
"getDeviceId", //要hook的方法名
//方法参数 没有就不填
new XC_MethodHook() {
@Override
//方法执行前执行
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
}
//方法执行后执行,改方法的返回值一定要在方法执行完毕后更改
protected void afterHookedMethod(MethodHookParam param)
throws Throwable {
param.setResult("355888888888888");
}
}
);
if(!lpparam.packageName.equals("com.ss.android.ugc.aweme")) //这里过滤一下包名
{
return;
}
Log.i("Tiger_test","hook进入解锁程序");
//Hook a方法
findAndHookMethod(
"com.hfdcxy.android.by.test.a", //要hook的包名+类名
lpparam.classLoader, //classLoader固定
"a", //要hook的方法名
String.class, //方法的参数类型 这里为String类
new XC_MethodHook() {
@Override
//方法执行前执行,修改参数的地方
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
}
//方法执行后执行,修改方法的返回值的地方
protected void afterHookedMethod(MethodHookParam param)
throws Throwable {
Log.i("Tiger_test","a方法的第一个参数为:"+param.args[0].toString());//param.args[0]为方法的第一个参数,同理param.args[1]为第二个参数
Log.i("Tiger_test","a方法的返回值为:"+param.getResult());//方法的返回值只能放在afterHookedMethod中获取
//以下为修改
//param.args[0] = "235wtwerteq" //如果要修改第一个参数可以直接这样写
//param.setResult("7f769c0f91efd402a23d63627f48f03e"); //param.setResult修改方法的返回值
}
}
);
findAndHookMethod(
"com.hfdcxy.android.by.test.b", //要hook的包名+类名
lpparam.classLoader, //classLoader固定
"a", //要hook的方法名
SharedPreferences.class, //方法的参数类型
TextView.class, //方法的参数类型
int.class, //方法的参数类型
new XC_MethodHook() {
@Override
//方法执行前执行,修改参数的地方
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
param.args[2] = 10000; //注意修改参数要放在beforeHookedMethod里面写
Log.i("Tiger_test","成功充值一万金币");
}
//方法执行后执行,修改方法的返回值的地方
protected void afterHookedMethod(MethodHookParam param)
throws Throwable {
}
}
);
}
}
备注区域
2,Xposed框架修改返回值
public class XposedManager implements IXposedHookLoadPackage {
public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {
if(lpparam.packageName.equals("com.bbk.appstore")) {
XposedHelpers.findAndHookMethod("com.a.b.c", lpparam.classLoader,"a", new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param)
throws Throwable {
// TODO Auto-generated method stub
String result = "this is your value";
param.setResult(result );
}
});
}
}
}