Commit 1e683c1c authored by swift_gan's avatar swift_gan

tweak HookBlackList

parent e84a32a9
package com.swift.sandhook.blacklist; package com.swift.sandhook.blacklist;
import java.lang.reflect.Member; import java.lang.reflect.Member;
import java.lang.reflect.Method;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
public class HookBlackList { public class HookBlackList {
static Set<String> blackList = new HashSet<>(); public static Set<String> methodBlackList = new HashSet<>();
public static Set<Class> classBlackList = new HashSet<>();
static { static {
blackList.add("java.lang.reflect.Member.getDeclaringClass"); methodBlackList.add("java.lang.reflect.Member.getDeclaringClass");
blackList.add("java.lang.reflect.Method.invoke"); methodBlackList.add("java.lang.reflect.Method.invoke");
blackList.add("java.util.Map.get"); methodBlackList.add("java.util.Map.get");
blackList.add("java.lang.reflect.AccessibleObject.setAccessible"); methodBlackList.add("java.util.concurrent.ConcurrentHashMap.get");
blackList.add("java.lang.reflect.Member.getModifiers"); methodBlackList.add("java.lang.reflect.AccessibleObject.setAccessible");
blackList.add("java.lang.reflect.InvocationTargetException.getCause"); methodBlackList.add("java.lang.reflect.Member.getModifiers");
methodBlackList.add("java.lang.reflect.InvocationTargetException.getCause");
methodBlackList.add("java.lang.reflect.Method.hashCode");
methodBlackList.add("java.lang.reflect.Class.getName");
methodBlackList.add("java.lang.String.hashCode");
methodBlackList.add("java.lang.String.length");
} }
public final static boolean canNotHook(Member origin) { public final static boolean canNotHook(Member origin) {
if (classBlackList.contains(origin.getDeclaringClass()))
return true;
String name = origin.getDeclaringClass().getName() + "." + origin.getName(); String name = origin.getDeclaringClass().getName() + "." + origin.getName();
return blackList.contains(name); return methodBlackList.contains(name);
} }
} }
...@@ -400,7 +400,7 @@ public class HookStubManager { ...@@ -400,7 +400,7 @@ public class HookStubManager {
} }
} }
public static long callOrigin(HookMethodEntity entity, Member origin, Object thiz, Object[] args) throws Throwable { public final static long callOrigin(HookMethodEntity entity, Member origin, Object thiz, Object[] args) throws Throwable {
Object res = SandHook.callOriginMethod(origin, thiz, args); Object res = SandHook.callOriginMethod(origin, thiz, args);
return entity.getResultAddress(res); return entity.getResultAddress(res);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment