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(
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(temp.toString() + "\n");
}
return stringBuilder.toString();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
sherlock-master.zip (35个子文件)
sherlock-master
gradlew 5KB
settings.gradle 44B
gradle
wrapper
gradle-wrapper.properties 232B
gradle-wrapper.jar 53KB
local.properties 440B
gradlew.bat 2KB
gradle.properties 1KB
app
src
androidTest
java
com
android
sherlock
ExampleInstrumentedTest.java 754B
test
java
com
android
sherlock
ExampleUnitTest.java 381B
main
AndroidManifest.xml 1KB
res
mipmap-hdpi
ic_launcher.png 4KB
ic_launcher_round.png 5KB
mipmap-xxxhdpi
ic_launcher.png 10KB
ic_launcher_round.png 16KB
mipmap-xhdpi
ic_launcher.png 5KB
ic_launcher_round.png 7KB
mipmap-anydpi-v26
ic_launcher.xml 272B
ic_launcher_round.xml 272B
mipmap-mdpi
ic_launcher.png 3KB
ic_launcher_round.png 3KB
drawable
ic_launcher_background.xml 5KB
layout
activity_main.xml 780B
drawable-v24
ic_launcher_foreground.xml 2KB
values
colors.xml 207B
strings.xml 70B
styles.xml 381B
mipmap-xxhdpi
ic_launcher.png 8KB
ic_launcher_round.png 12KB
assets
xposed_init 36B
java
com
android
sherlock
SherLockMonitor.java 6KB
MainActivity.java 333B
.gitignore 6B
build.gradle 979B
proguard-rules.pro 750B
build.gradle 530B
共 35 条
- 1
基础颜究的三亩叔
- 粉丝: 24
- 资源: 4668
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕业设计项目-基于深度学习的阿兹海默症早期诊断辅助系统设计与实现源码+项目说明.zip
- springboot的二手交易平台(源码+演示视频).rar
- 高分项目,基于STM32开发的数据采集+心率检测仪,内含原理图+PCB+程序源码等
- 数模论文tip-思维导图版
- 高分项目,基于STM32开发的二维码识别源码+二维码解码库lib
- 毕业设计基于机器学习的遥感影像分类+源代码+文档说明.zip
- 推荐系统全景解析:核心算法与应用实践
- 高分项目,基于STM32开发的多功能数控电源设计,内含原理图+PCB+程序源码等
- 毕业设计基于python+django+vue开发的外卖点餐网站源码+项目说明+数据库文件.zip
- Spring Boot集成rabbitMQ实现消息推送源码+项目说明.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0