Xposed 探索之Hook 驾考宝典

本文固定链接,转载请先评论点赞

一、起因:

最近在考驾照,钱是去年年初的时候交的。科目一到前段时间才开始,又碰上疫情。所以耐着性子看了三四遍驾考宝典。1350个题目用两个不同的驾考app各刷了一遍。总担心考不过科目一。尤其是刷了第一遍题目后总感觉还有些内容总结不够。看这个app会员功能有总结,当时还发了个朋友圈要买个会员,问别人有没有会员可以借来使使的(当然,经过大家一致的吐糟,最后迎着苦涩又刷了一遍题目)。所以,过程有点曲折,但是起因就是对这个app的vip功能情有独钟。

二、契机:

最近在看Xposed的事情,如果你看过之前的文章,你会知道我为啥看这个框架。总之是折腾之后有点失落。最后决定对这个享誉盛名的app表达一下尊重。我们严肃的表示,我们在探索技术。

三、准备工作:

从他的官网下载了app。保存在桌面。安装了MuMu模拟器。用模拟器安装这个app。
备注:为什么用MuMu模拟器原因有两个:
1、模拟器开发者模式和root都已经做了。Xposed框架基础条件都有
2、在调试功能的时候要经常重启。如果用真机我担心对我的“三老婆”有损。(二老婆是车(暂时没有)三老婆是手机(宝贝着咧))

按照上一个文章所示,搭建好android studio 环境,过程请看:
Android Studio 在MuMu模拟器上实现 xposed简单劫持
工程结构如图:
在这里插入图片描述
MainActivity.java代码如下:

package com.cf.exposedpractice;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btn=(Button)findViewById(R.id.button);

        btn.setOnClickListener(new View.OnClickListener() {
   
            @Override
            public void onClick(View v) {
   
                showCenterContent();
            }
        });
    }

    public void showCenterContent()
    {
   
        TextView centerText=(TextView)findViewById(R.id.centerTextView);

        centerText.setText(GetContent());
    }

    public String GetContent()
    {
   
        return  "Xposed test";
    }
}

XposedTools.java代码如下:

package com.cf.exposedpractice;

import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;

public class XposedTools implements IXposedHookLoadPackage {
   
    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
   

        XposedBridge.log("Loaded app: " + lpparam.packageName);

        if(lpparam.packageName.equals("com.cf.exposedpractice"))
        {
   
            XposedHelpers.findAndHookMethod("com.cf.exposedpractice.MainActivity", lpparam.classLoader, "GetContent", new XC_MethodHook() {
   
                @Override
                protected void afterHookedMethod(MethodHookParam param) throws Throwable {
   
                    super.afterHookedMethod(param);

                    XposedBridge.log("GetContent afterHookedMethod");

                    param.setResult("hooked the function of GetContent");
                }
            });
        }

        if(lpparam.packageName.equals("com.handsgo.jiakao.android"))
        {
   
            XposedHelpers.findAndHookMethod("cn.mucang.android.comment.api.data.UserSimpleJsonData", lpparam.classLoader, "isJiakaoVip", new XC_MethodHook() {
   
                @Override
                protected void afterHookedMethod(MethodHookParam param) throws Throwable {
   
                    super.afterHookedMethod(param);

                    XposedBridge.log("afterHookedMethod");

                    Object result=param.getResult();

                    boolean v=(boolean)result;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值