2024年5月24日最新版 xposed脚本

手机android12    Redmi Note 9  手机已经root

2024年最新版本androidstudio

 新建Native C++ 项目

项目结构如下

1.项目查看方式设置为Project模式,以方便查看。然后在 “项目名称/app/src/main/”目录下找到AndroidManifest.xml,双击之,并在指定位置插入以下三段代码: 

<meta-data

android:name="xposedmodule"

android:value="true" />

<meta-data

    android:name="xposeddescription"

    android:value="这是一个Xposed例程" />

<meta-data

    android:name="xposedminversion"

    android:value="53" />

2.                 MainActivity类:

pacge com.roysue.mhook430;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import android.widget.Button;
import android.os.Bundle;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.Toast;
public class MainActivity extends AppCompatActivity {

    private Button button;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

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

        button.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                Toast.makeText(MainActivity.this, toastMessage(), Toast.LENGTH_SHORT).show();

            }

        });

    }

    public String toastMessage() {

        return "我未被劫持";

    }

}

3 .       XposedBridgeApi-89.jar          jar包,手动导入到libs目录里

以下地址下载jar包

GitHub - 924587628/XposedBridgeAPI: 可利用Xposed框架实现拦截系统方法

4.        在 “项目名称/app/src/main/”目录下找到build.gradle     

compileOnly fileTree('libs/XposedBridgeAPI-89.jar')引入 XposedBridgeApi-89.jar
build.gradle   完整配置:
plugins {
    id 'com.android.application'
}

android {
    namespace 'com.roysue.mhook430'
    compileSdk 34

    defaultConfig {
        applicationId "com.roysue.mhook430"
        minSdk 31
        targetSdk 34
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
//https://github.com/924587628/XposedBridgeAPI
    // 引用本地jar文件
    compileOnly fileTree('libs/XposedBridgeAPI-89.jar')

    //compileOnly 'de.robv.android.xposed:api:82'
   // compileOnly 'de.robv.android.xposed:api:82:sources'
   // implementation files('libs/XposedBridge.jar')

    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.11.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}

5.   hook类      HookTest

package com.roysue.mhook430;

import android.view.View;
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 HookTest implements IXposedHookLoadPackage {

    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {

        if (loadPackageParam.packageName.equals("com.roysue.mhook430")) {

            XposedBridge.log(" has Hooked!");



            Class clazz = loadPackageParam.classLoader.loadClass(

                    "com.roysue.mhook430.MainActivity");

            XposedHelpers.findAndHookMethod(clazz, "toastMessage", new XC_MethodHook() {

                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {

                    super.beforeHookedMethod(param);

                    //XposedBridge.log(" has Hooked!");

                }

                protected void afterHookedMethod(MethodHookParam param) throws Throwable {

                    param.setResult("你已被劫持");

                }

            });

        }

    }

}

6.          xposed入口文件:

右键点击 “main ” 文件夹 , 选择new --> Folder -->Assets Folder,新建assets 文件夹:

然后右键点击 assets文件夹, new--> file,文件名为xposed_init 并在其中写上入口类的完整路径(就是自己编写的那一个Hook类),这样, Xposed框架就能够从这个 xposed_init 读取信息来找到模块的入口,然后进行Hook操作了

com.roysue.mhook430.HookTest

7.        项目打包apk

adb install Mhook430

8.        在手机上打开LSPosed软件           Mhook430未启用前

 

 

9.        在手机上打开LSPosed软件           Mhook430启用后

 

好了,宝子们,教程结束了,我们下期再见! 

  • 34
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值