日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android笔记-Xposed的使用(Hook登录函数获取用户名密码)

發布時間:2025/3/15 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android笔记-Xposed的使用(Hook登录函数获取用户名密码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如這個APP例子:

點擊登錄,Xposed打印:?

對應的Java代碼:

?

這里可以看到其包名為hfdcxy.com.myapplication

函數為check。

Xposed關鍵函數如下:

public class HookUtils implements IXposedHookLoadPackage {@Overridepublic void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {if(loadPackageParam.packageName.equals("hfdcxy.com.myapplication")){XposedBridge.log("here");XposedHelpers.findAndHookMethod(loadPackageParam.classLoader.loadClass("hfdcxy.com.myapplication.MainActivity"),"check",String.class,String.class,new XC_MethodHook() {@Overrideprotected void beforeHookedMethod(MethodHookParam param) throws Throwable {super.beforeHookedMethod(param);XposedBridge.log("------------beforeHookedMethod start------------");String userName = (String)param.args[0];String password = (String)param.args[1];XposedBridge.log("userName:" + userName + ",password:" + password);XposedBridge.log("------------beforeHookedMethod end------------");}@Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);XposedBridge.log("------------afterHookedMethod start------------");String userName = (String)param.args[0];String password = (String)param.args[1];XposedBridge.log("userName:" + userName + ",password:" + password);XposedBridge.log("------------afterHookedMethod end------------");}});}} }

?

編寫Xposed模塊的邏輯是這樣的。

1. 添加對應Xposed API jar包,修改build.gradle;

2. 繼承IXposedHookLoadPackage,設置需要Hook的類名,函數名;

3. 新增資源文件,新建xposed_init,內容為繼承IXposedHookLoadPackage的Hook類;

4. AndroidManifest.xml添加xposed相關模塊數據。

如下:

?其中xpose_init內容為:

com.example.myapplication.HookUtils

HookUtils.java:

package com.example.myapplication;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 HookUtils implements IXposedHookLoadPackage {@Overridepublic void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {if(loadPackageParam.packageName.equals("hfdcxy.com.myapplication")){XposedBridge.log("here");XposedHelpers.findAndHookMethod(loadPackageParam.classLoader.loadClass("hfdcxy.com.myapplication.MainActivity"),"check",String.class,String.class,new XC_MethodHook() {@Overrideprotected void beforeHookedMethod(MethodHookParam param) throws Throwable {super.beforeHookedMethod(param);XposedBridge.log("------------beforeHookedMethod start------------");String userName = (String)param.args[0];String password = (String)param.args[1];XposedBridge.log("userName:" + userName + ",password:" + password);XposedBridge.log("------------beforeHookedMethod end------------");}@Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);XposedBridge.log("------------afterHookedMethod start------------");String userName = (String)param.args[0];String password = (String)param.args[1];XposedBridge.log("userName:" + userName + ",password:" + password);XposedBridge.log("------------afterHookedMethod end------------");}});}} }

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapplication"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><meta-data android:name="xposedmodule" android:value="true"/><meta-data android:name="xposeddescription" android:value="Xposed Demo"/><meta-data android:name="xposedminversion" android:value="89"/></application></manifest>

build.gradle

apply plugin: 'com.android.application'android {compileSdkVersion 30buildToolsVersion "30.0.3"defaultConfig {applicationId "com.example.myapplication"minSdkVersion 22targetSdkVersion 30versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}sourceSets {main{assets.srcDirs = ['src/assets']}} }dependencies {implementation fileTree(include: ['*.jar'], dir: 'libs')implementation 'androidx.appcompat:appcompat:1.0.2'implementation 'androidx.constraintlayout:constraintlayout:1.1.3'testImplementation 'junit:junit:4.12'androidTestImplementation 'androidx.test.ext:junit:1.1.0'androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'compileOnly files('lib/XposedBridgeAPI-89.jar') }

總結

以上是生活随笔為你收集整理的Android笔记-Xposed的使用(Hook登录函数获取用户名密码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。