xposed之hook自身apk之外的apk中的方法

被hook的apk正常显示的界面


其中,在查询数据库结束之后会调用MainActivity中的finishSetting()方法,隐藏progressbar、显示相对应的listview并更新listview中的内容

 private void finishSetting(){
        //取消progressbar的动画及隐藏progressbar
        ivLoading.clearAnimation();
        ivLoading.setVisibility(View.GONE);
        //显示相应的listview
        if (isUser) {
            listViewUser.setVisibility(View.VISIBLE);
            listViewSys.setVisibility(View.GONE);
        } else {
            listViewSys.setVisibility(View.VISIBLE);
            listViewUser.setVisibility(View.GONE);
        }
        //更新listview的内容,调用了cursoradapter的.changeCursor方法
        changeAdapterInfo();
    }


目的:现在要将该方法hook掉,查询结束后不进行任何处理,然后界面会一直显示进度条


步骤:

1.在自定义的hook的入口类Main中添加hook代码



类Main中的代码

public class Main implements IXposedHookLoadPackage{
    private static final String TAG = "testXpost";

    //手机中所有的程序被加载时都会调用这个方法
    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {
        //根据包名判断是否是所需要hook的目标apk
        if(loadPackageParam.packageName.equalsIgnoreCase("com.test.extractapk")) {
            //向xposed installer中写入日志信息
            XposedBridge.log("load app:xpose load success...........");
            //加载所要hook的apk中的方法所在的类,返回其clazz对象
            Class linkMainClazz = loadPackageParam.classLoader.loadClass("com.test.extractapk.MainActivity");
            //向xposed installer中写入日志信息
            XposedBridge.log("load app:xpose load extractapk success...........");
                //查找相应类中的相应方法,并替换方法的内容
                //第一个参数是方法所在的类的clazz,第二个参数是所要hook的方法名,内部类中是所要替换的方法的内容
                XposedHelpers.findAndHookMethod(linkMainClazz, "finishSetting", new XC_MethodReplacement() {
                    @Override
                    protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
                        //向xposed installer中写入日志信息
                        XposedBridge.log("changed method success...........");
                        return null;
                    }
                });
        }
    }


2.运行该apk ,在Xposed Installer中点击模块,勾选上这个apk的模块



3.Xposed Installer中回退到主界面,并点击框架,点击安装更新


4.然后手机会重启,重启后打开被hook的apk,由于把设置apk的方法hook掉了,会看到界面的进度条不停地旋转



5.上面的xposed入口类Main中通过调用方法XposedBridge.log向Xposed Installer中写入了一些日志,点击Xposed Installer的日志,在里面可以看到输出信息,执行过程




注:1.被hook的apk应该在install重启之前打开过一次,否则会报classNot Find Exception

        2.由于Xposed Installer需要向系统中写东西,手机需要有root权限

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值