package com.android.reverse.apimonitor; import java.io.FileDescriptor; import java.lang.reflect.Method; import com.android.reverse.hook.HookParam; import com.android.reverse.util.Logger; import com.android.reverse.util.RefInvoke; public class MediaRecorderHook extends ApiMonitorHook { @Override public void startHook() { Method startmethod = RefInvoke.findMethodExact( "android.media.MediaRecorder", ClassLoader.getSystemClassLoader(), "start"); hookhelper.hookMethod(startmethod, new AbstractBahaviorHookCallBack() { @Override public void descParam(HookParam param) { // TODO Auto-generated method stub Logger.log_behavior("Media Record: Start ->"); String mPath = (String)RefInvoke.getFieldOjbect("android.media.MediaRecorder", param.thisObject, "mPath"); if(mPath != null) Logger.log_behavior("Save Path: ->" +mPath); else{ FileDescriptor mFd = (FileDescriptor) RefInvoke.getFieldOjbect("android.media.MediaRecorder", param.thisObject, "mFd"); Logger.log_behavior("Save Path: ->" +mFd.toString()); } } }); Method stopmethod = RefInvoke.findMethodExact( "android.media.MediaRecorder", ClassLoader.getSystemClassLoader(), "stop"); hookhelper.hookMethod(stopmethod, new AbstractBahaviorHookCallBack() { @Override public void descParam(HookParam param) { // TODO Auto-generated method stub Logger.log_behavior("Media Record: Stop ->"); } }); } }