Xposed框架的一些注意的地方

首先声明,这些是从其他的博客上整理的,吾爱破解的教我的兄弟学安卓,如下是链接,感兴趣的可以去看看,很适合新手区学习。

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 );
					}
				});
			}
	}
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值