package com.android.sherlock;
import android.location.LocationManager;
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;
/**
* 示例:
* XposedHelpers.findAndHookMethod(
* "需要hook的方法所在类的完整类名",
* lpparam.classLoader, // 类加载器,固定这么写就行了
* "需要hook的方法名",
* 参数类型.class,
* new XC_MethodHook() {
*
* @Override protected void beforeHookedMethod(MethodHookParam param) {
* XposedBridge.log("调用getDeviceId()获取了imei");
* }
* @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable {
* XposedBridge.log(getMethodStack());
* super.afterHookedMethod(param);
* }
* }
* );
*/
public class SherLockMonitor implements IXposedHookLoadPackage {
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) {
if (lpparam == null) {
return;
}
//hook齐齐乐
XposedHelpers.findAndHookMethod("com.qiqilego.chat.ChatApp", lpparam.classLoader, "initSdk", new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) {
XposedBridge.log("开始hook齐齐乐 param="+param);
}
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
XposedBridge.log(getMethodStack());
super.afterHookedMethod(param);
}
});
//hook获取设备信息方法
XposedHelpers.findAndHookMethod(
android.telephony.TelephonyManager.class.getName(),
lpparam.classLoader,
"getDeviceId",
int.class,
new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) {
XposedBridge.log("调用getDeviceId(int)获取了imei");
}
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
XposedBridge.log(getMethodStack());
super.afterHookedMethod(param);
}
}
);
//hook imsi获取方法
XposedHelpers.findAndHookMethod(
android.telephony.TelephonyManager.class.getName(),
lpparam.classLoader,
"getSubscriberId",
int.class,
new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) {
XposedBridge.log("调用getSubscriberId获取了imsi");
}
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
XposedBridge.log(getMethodStack());
super.afterHookedMethod(param);
}
}
);
//hook低版本系统获取mac地方方法
XposedHelpers.findAndHookMethod(
android.net.wifi.WifiInfo.class.getName(),
lpparam.classLoader,
"getMacAddress",
new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) {
XposedBridge.log("调用getMacAddress()获取了mac地址");
}
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
XposedBridge.log(getMethodStack());
super.afterHookedMethod(param);
}
}
);
//hook获取mac地址方法
XposedHelpers.findAndHookMethod(
java.net.NetworkInterface.class.getName(),
lpparam.classLoader,
"getHardwareAddress",
new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) {
XposedBridge.log("调用getHardwareAddress()获取了mac地址");
}
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
XposedBridge.log(getMethodStack());
super.afterHookedMethod(param);
}
}
);
//hook定位方法
XposedHelpers.findAndHookMethod(
LocationManager.class.getName(),
lpparam.classLoader,
"getLastKnownLocation",
String.class,
new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) {
XposedBridge.log("调用getLastKnownLocation获取了GPS地址");
}
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
XposedBridge.log(getMethodStack());
super.afterHookedMethod(param);
}
}
);
}
private String getMethodStack() {
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
StringBuilder stringBuilder = new StringBuilder();
for (StackTraceElement temp : stackTraceElements) {
stringBuilder.append("hook打印、temp:"+temp.toString() + "\n");
}
return stringBuilder.toString();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
sherlock、demo代码(包含apk代码)
共34个文件
png:10个
xml:9个
properties:3个
需积分: 0 124 下载量 82 浏览量
2022-03-09
14:28:25
上传
评论
收藏 1.43MB ZIP 举报
温馨提示
仅用于测试的android代码!
资源详情
资源评论
资源推荐
收起资源包目录
sherlock-master.zip (34个子文件)
sherlock-master
app
.gitignore 6B
build.gradle 979B
src
main
AndroidManifest.xml 1KB
res
mipmap-xhdpi
ic_launcher_round.png 7KB
ic_launcher.png 5KB
mipmap-mdpi
ic_launcher_round.png 3KB
ic_launcher.png 3KB
layout
activity_main.xml 780B
mipmap-xxhdpi
ic_launcher_round.png 12KB
ic_launcher.png 8KB
drawable
ic_launcher_background.xml 5KB
mipmap-anydpi-v26
ic_launcher_round.xml 272B
ic_launcher.xml 272B
drawable-v24
ic_launcher_foreground.xml 2KB
mipmap-hdpi
ic_launcher_round.png 5KB
ic_launcher.png 4KB
mipmap-xxxhdpi
ic_launcher_round.png 16KB
ic_launcher.png 10KB
values
strings.xml 70B
colors.xml 207B
styles.xml 381B
assets
xposed_init 36B
java
com
android
sherlock
MainActivity.java 333B
SherLockMonitor.java 6KB
build
hook_2.0_qiqile.apk 1.57MB
proguard-rules.pro 750B
settings.gradle 44B
build.gradle 530B
gradlew 5KB
gradlew.bat 2KB
gradle.properties 1KB
gradle
wrapper
gradle-wrapper.properties 232B
gradle-wrapper.jar 53KB
local.properties 329B
共 34 条
- 1
卖n-bomb的小男孩
- 粉丝: 963
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0