package com.android.reverse.apimonitor;
import java.lang.reflect.Method;
import java.util.List;
import com.android.reverse.hook.HookParam;
import com.android.reverse.util.Logger;
import com.android.reverse.util.RefInvoke;
public class ProcessBuilderHook extends ApiMonitorHook {
@Override
public void startHook() {
// TODO Auto-generated method stub
Method execmethod = RefInvoke.findMethodExact(
"java.lang.ProcessBuilder", ClassLoader.getSystemClassLoader(),
"start");
hookhelper.hookMethod(execmethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
// TODO Auto-generated method stub
Logger.log_behavior("Create New Process ->");
ProcessBuilder pb = (ProcessBuilder) param.thisObject;
List<String> cmds = pb.command();
StringBuilder sb = new StringBuilder();
for(int i=0 ;i <cmds.size(); i++){
sb.append("CMD"+i+":"+cmds.get(i)+" ");
}
Logger.log_behavior("Command" + sb.toString());
}
});
}
}