求助各位大佬Xposed 怎么HOOK安卓系统函数??
XposedHelpers.findAndHookMethod("android.location.LocationManager", classLoader, "getGpsStatus", GpsStatus.class, new XC_MethodHook(){
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable
{
GpsStatus gss = (GpsStatus) param.getResult();
if (gss == null)
return;
这段代码是想找到手机的当前位置,并修改当前的手机位置的方法,这个方法直接报异常 ,我在LSposd 是选择的 系统框架这个模块来HOOK的,请问HOOK手机本身的类该怎么操作?
是我代码的问题?还是我HOOK的模块的问题?请大佬给我指点一下。。谢谢了。
本帖最后由 正己 于 2023-9-8 12:40 编辑
1.首先hook系统函数需要重启
2.其次这个方法大概率是重载函数,所以建议用下面这个免填参数的来hook
Class Gps = loadPackageParam.classLoader.loadClass("android.location.LocationManager");
XposedBridge.hookAllMethods(Gps, "getGpsStatus", new XC_MethodHook() {
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
super.beforeHookedMethod(param);
}});
3.还有一种可能是就是classload要传对,不然也会找不到方法
谢谢大佬的回复,我去看看。 选择的应用应该是你要hook的对应应用,而不是“系统框架”
比如你想让哪个应用的GPS定位变成你修改的那个,就应该把这个应用添加进去 1.看看类名函数名参数填对没有
2.hook系统函数无需重启,hook系统框架才用重启
3.你的目标应用是你想修改的app,而非系统框架
4.classloader不对
5.建议用LocationManager.class,不用findclass 主要目标是手机本身,不是某一个指定的应用,比如我想修改手机本身的当前定位地址,这样所有的APP的地址就都变了。LSposed还必须要选一个应用,所以我就只能选了系统框架。有目标app当然简单了,直接HOOK目标应用关键点就可以了。我其实是想HOOK手机的系统函数。就老报错找不到对应的方法,就很郁闷。。
页:
[1]