xDr*_*onZ 15 linux security android
无需重新编译应用程序,用户就可以使用xposed to debug/heapdump app来调试应用程序
是否有任何方法(root或非root)来检测当前的应用程序:
要么
要么
使用
BuildConfig.DEBUG
和ApplicationInfo
,并检查标志字段是FLAG_DEBUGGABLE
不起作用,因为应用程序由zygote直接启动调试标志
下面是挂钩进程类的代码
try {
Method start = Process.class.getMethod(
"start", String.class, String.class, Integer.TYPE, Integer.TYPE, int[].class,
Integer.TYPE, Integer.TYPE, Integer.TYPE, String.class, String[].class);
XposedBridge.log("start hook, appInfo: " + loadPackageParam.appInfo);
XposedBridge.hookMethod(start, new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam methodHookParam) throws Throwable {
int id = 5;
int flags = (Integer) methodHookParam.args[id];
if ((flags & 0x1) == 0) {
flags |= 0x1;
}
methodHookParam.args[id] = flags;
}
}
});
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
在安装了 Xposed 的设备上,您无法阻止任何事情或依赖您的应用程序在 Java/dex 代码中处理的任何数据。任何东西都可以通过 Xposed 修改。
因此,唯一的方法是通过添加本机代码来强化您的应用程序,以防止在安装了 Xposed 的设备上执行。良好的强化框架也使得附加调试器变得非常困难/几乎不可能。
归档时间: |
|
查看次数: |
1626 次 |
最近记录: |