Skip to content

Extract the part of JavaHook in the Xposed. Usage: Inject one process to load libtest.so, then enter the Java world and hook the java function.

Notifications You must be signed in to change notification settings

lwllovewf2010/javaHook

Repository files navigation

# javaHook
Extract the part of JavaHook in the Xposed. Usage: Inject one process to load libtest.so, then enter the Java world and hook the java function.

1、Choose a process that you want to inject.
    (jni/inject.c)
    target_pid = find_pid_of("system_server");
    if(inject_remote_process(target_pid, "/system/lib/libtest.so", "java_hook_test", "I'm parameter!", strlen("I'm parameter!")) == 0)
		  LOGV("inject success");
		
2、Attention the attribute of dex_out_path.
    (jni/libtest.cpp)
    For example, system_server can write in the folder such as "/data/dalvik-cache" because the owner is system.
  
3、Add the function you want to hook.
    (Hook.java)
    Bridge.hookAllMethods(Helpers.findClass("com.android.internal.policy.impl.PhoneWindowManager"), "interceptKeyBeforeQueueing");
  
4、Add the beforeHookedMethod and afterHookedMethod like Xposed.
    (Hook.java)
    static XC_MethodHook cb_interceptKeyBeforeQueueing = new XC_MethodHook() {
  		@Override
  		protected void beforeHookedMethod(MethodHookParam param)
  				throws Throwable {
  			Log.v("test", "[KeyPress]" + param.args[0] + " | " + param.args[1]
  					+ " | " + param.args[2]);
  		}
  	};

5、Call "before method" and "after method" in handleHookedMethod.
    (Bridge.java)
    if (method.getName().equals("interceptKeyBeforeQueueing"))
		  Hook.cb_interceptKeyBeforeQueueing.beforeHookedMethod(param);	

![image](https://github.com/phoebe1990/javaHook/blob/master/1.jpg)

About

Extract the part of JavaHook in the Xposed. Usage: Inject one process to load libtest.so, then enter the Java world and hook the java function.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published