[Java] 纯文本查看 复制代码public void b()
{
try
{
Object localObject = ClassLoader.getSystemClassLoader()
.loadClass("de.robv.android.xposed.XposedHelpers").newInstance();
// 如果加载类失败 则表示当前环境没有xposed
if (localObject != null)
{
a(localObject, "fieldCache");
a(localObject, "methodCache");
a(localObject, "constructorCache");
}
return;
}
catch (Throwable localThrowable) {}
}
private void a(Object arg5, String arg6) {
try {
// 从XposedHelpers中读取相关的hook信息
Field v0_1 = arg5.getClass().getDeclaredField(arg6);
v0_1.setAccessible(true);
Set v0_2 = v0_1.get(arg5).keySet();
if(v0_2 == null) {
return;
}
if(v0_2.isEmpty()) {
return;
}
Iterator v1 = v0_2.iterator();
// 排除无关紧要的类
while(v1.hasNext()) {
Object v0_3 = v1.next();
if(v0_3 == null) {
continue;
}
if(((String)v0_3).length() <= 0) {
continue;
}
if(((String)v0_3).toLowerCase().startsWith("android.support")) {
continue;
}
if(((String)v0_3).toLowerCase().startsWith("javax.")) {
continue;
}
if(((String)v0_3).toLowerCase().startsWith("android.webkit")) {
continue;
}
if(((String)v0_3).toLowerCase().startsWith("java.util")) {
continue;
}
if(((String)v0_3).toLowerCase().startsWith("android.widget")) {
continue;
}
if(((String)v0_3).toLowerCase().startsWith("sun.")) {
continue;
}
this.a.add(v0_3);
}
}
catch(Throwable v0) {
v0.printStackTrace();
}
}
这篇博客探讨了如何在Android环境中检查Xposed框架的存在,并提供了相关代码片段来检测Xposed的hook信息。通过加载XposedHelpers类并分析其字段,排除特定的类前缀,以判断是否存在Xposed框架。
2323

被折叠的 条评论
为什么被折叠?



