首页
社区
课程
招聘
[求助]edxposed hook 部分信息无效
2021-8-25 07:57 3205

[求助]edxposed hook 部分信息无效

2021-8-25 07:57
3205

最近在学习HOOK 在安卓10下HOOK一些系统信息,有一部分有用,但是针对分辨率 运营商代码 sdk版本的修改都无效研究了一阵子了,也无法解决,部分代码如下,可付费指导
分辨率
XposedHelpers.findAndHookMethod("android.util.DisplayMetrics", loadPkgParam.classLoader, "widthPixels", DisplayMetrics.class, new XC_MethodHook(XCallback.PRIORITY_LOWEST) {

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
        @Override
        protected void afterHookedMethod(MethodHookParam param)    throws Throwable {
            // TODO Auto-generated method stub
            super.afterHookedMethod(param);
            DisplayMetrics dm=(DisplayMetrics)param.args[0];
            dm.widthPixels=999;
        }
 
    });
} catch (Exception e) {
    XposedBridge.log("Fake DPI ERROR: " + e.getMessage());
}
try {
 
    XposedHelpers.findAndHookMethod("android.util.DisplayMetrics", loadPkgParam.classLoader, "heightPixels", new XC_MethodHook() {
 
        @Override
        protected void afterHookedMethod(MethodHookParam param)
                throws Throwable {
            // TODO Auto-generated method stub
            super.afterHookedMethod(param);
 
            DisplayMetrics dm=(DisplayMetrics)param.args[0];
            dm.heightPixels=888;
 
        }
 
    });
} catch (Exception e) {
    XposedBridge.log("Fake DPI ERROR: " + e.getMessage());
}
 
try {
    XposedHelpers.findAndHookMethod("android.view.Display", loadPkgParam.classLoader, "getMetrics", new XC_MethodHook() {
 
        @Override
        protected void afterHookedMethod(MethodHookParam param)
                throws Throwable {
            // TODO Auto-generated method stub
            super.afterHookedMethod(param);
 
            final int dpi = 111;
            DisplayMetrics metrics = (DisplayMetrics) param.args[0];
            metrics.densityDpi = dpi;
 
        }
 
    });
} catch (Exception e) {
    XposedBridge.log("Fake DPI ERROR: " + e.getMessage());
}

MCC MNC

 

HookTelephony("android.telephony.TelephonyManager", "getNetworkOperator", "88877");
HookTelephony("android.telephony.TelephonyManager", loadPkgParam, "getSimOperator", "88877");

 

SDK
XposedHelpers.findField(android.os.Build.VERSION.class, "SDK").set(null, "30");


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 1867
活跃值: (3703)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
virjar 1 2021-8-25 11:26
2
0
1. static final对象可能反射修改无效。首先final在java语言里面定义为常量,从java语言来说理论上final变量不可以被修改,以及所有static final都可能在编译器编译的时候被内联优化: 参考资料: https://blog.csdn.net/zimo2013/article/details/44040981
2.Edxposed方案中,可能又部分方法无法被hook,可能的原因比如: 极度简单的函数(getter,setter等,他们可能在虚拟机中直接被优化),JIT对artmethod的影响等。参考资料:http://weishu.me/2017/11/23/dexposed-on-art/  (关注文末局限描述: epic也不例外:它也有它自己的缺点,有些是先天的,有些是后天的,还有一些我没有发现的 ~_~;比如说xxxx.)
3. 确定下hook有没有报错
雪    币: 11
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
huangbof 2021-8-25 22:12
3
0
virjar 1. static final对象可能反射修改无效。首先final在java语言里面定义为常量,从java语言来说理论上final变量不可以被修改,以及所有static final都可能在编译器编译的 ...
赞!!!
游客
登录 | 注册 方可回帖
返回