Commit bd2c91b1 authored by swift_gan's avatar swift_gan

add hookmode sample

parent d1c1b69e
......@@ -2,6 +2,7 @@ package com.swift.sandhook.testHookers;
import android.util.Log;
import com.swift.sandhook.annotation.HookMode;
import com.swift.sandhook.test.TestClass;
import com.swift.sandhook.annotation.HookClass;
import com.swift.sandhook.annotation.HookMethod;
......@@ -25,6 +26,7 @@ public class CtrHook {
}
@HookMethod("add1")
@HookMode(HookMode.INLINE)
public static void onAdd1(TestClass thiz) {
Log.e("TestClassHook", "add1 been hooked");
try {
......
......@@ -2,6 +2,7 @@ package com.swift.sandhook.testHookers;
import android.util.Log;
import com.swift.sandhook.annotation.HookMode;
import com.swift.sandhook.test.TestClass;
import com.swift.sandhook.annotation.HookClass;
import com.swift.sandhook.annotation.HookMethod;
......@@ -11,6 +12,7 @@ import com.swift.sandhook.annotation.HookMethodBackup;
public class JniHooker {
@HookMethod("jni_test")
@HookMode(HookMode.INLINE)
public static int onJni(TestClass thiz) {
Log.e("JniHooker", "hooked success ");
return onJniBackup(thiz);
......
......@@ -5,6 +5,7 @@ import android.util.Log;
import com.swift.sandhook.annotation.HookClass;
import com.swift.sandhook.annotation.HookMethod;
import com.swift.sandhook.annotation.HookMethodBackup;
import com.swift.sandhook.annotation.HookMode;
import com.swift.sandhook.annotation.MethodParams;
@HookClass(Log.class)
......@@ -12,6 +13,7 @@ public class LogHooker {
@HookMethod("w")
@MethodParams({String.class, String.class})
@HookMode(HookMode.INLINE)
public static int onCreate(String tag, String msg) {
Log.e("LogHooker", "hooked success " + tag);
return onCreateBackup(tag, msg);
......
......@@ -5,11 +5,13 @@ import android.util.Log;
import com.swift.sandhook.annotation.HookClass;
import com.swift.sandhook.annotation.HookMethod;
import com.swift.sandhook.annotation.HookMethodBackup;
import com.swift.sandhook.annotation.HookMode;
@HookClass(Object.class)
public class ObjectHooker {
@HookMethod("toString")
@HookMode(HookMode.INLINE)
public static String toStr(Object thiz) {
Log.e("ObjectHooker", "hooked success ");
return toStrBackup(thiz);
......
......@@ -41,7 +41,9 @@ public class HookWrapper {
fillBackupMethod(classLoader, clazz, hookEntityMap);
for (HookEntity entity:hookEntityMap.values()) {
if (entity.target != null && entity.hook != null) {
SandHook.hook(entity.target, entity.hook, entity.backup);
if (!SandHook.hook(entity.target, entity.hook, entity.backup)) {
throw new HookErrorException("hook method <" + entity.target.getName() + "> error in native!");
}
globalHookEntityMap.put(entity.target, entity);
}
}
......
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