package com.android.reverse.apimonitor;
import com.android.reverse.hook.HookParam;
import com.android.reverse.hook.MethodHookCallBack;
import com.android.reverse.util.Logger;
public abstract class AbstractBahaviorHookCallBack extends MethodHookCallBack {
@Override
public void beforeHookedMethod(HookParam param) {
// TODO Auto-generated method stub
Logger.log_behavior("Invoke "+ param.method.getDeclaringClass().getName()+"->"+param.method.getName());
this.descParam(param);
//this.printStackInfo();
}
@Override
public void afterHookedMethod(HookParam param) {
// TODO Auto-generated method stub
//Logger.log_behavior("End Invoke "+ param.method.toString());
}
private void printStackInfo(){
Throwable ex = new Throwable();
StackTraceElement[] stackElements = ex.getStackTrace();
if(stackElements != null){
StackTraceElement st;
for(int i=0; i<stackElements.length; i++){
st = stackElements[i];
if(st.getClassName().startsWith("com.android.reverse")||st.getClassName().startsWith("de.robv.android.xposed.XposedBridge"))
continue;
Logger.log_behavior(st.getClassName()+":"+st.getMethodName()+":"+st.getFileName()+":"+st.getLineNumber());
}
}
}
public abstract void descParam(HookParam param);
}