下面列出了android.hardware.Camera.PreviewCallback#com.android.reverse.hook.HookParam 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void startHook() {
try {
Class receiverDataClass = Class.forName("android.app.ActivityThread$ReceiverData");
if (receiverDataClass != null) {
Method handleReceiverMethod = RefInvoke.findMethodExact("android.app.ActivityThread", ClassLoader.getSystemClassLoader(),
"handleReceiver", receiverDataClass);
hookhelper.hookMethod(handleReceiverMethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
Logger.log_behavior("The Receiver Information:");
Object data = param.args[0];
Logger.log_behavior(data.toString());
}
});
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
@Override
public void startHook() {
Method execmethod = RefInvoke.findMethodExact(
"java.lang.Runtime", ClassLoader.getSystemClassLoader(),
"exec", String[].class,String[].class,File.class);
hookhelper.hookMethod(execmethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
Logger.log_behavior("Create New Process ->");
String[] progs = (String[]) param.args[0];
for(int i=0 ;i <progs.length; i++){
Logger.log_behavior("Command" + i + " = "+progs[i]);
}
}
});
}
@Override
public void startHook() {
Method execmethod = RefInvoke.findMethodExact(
"java.lang.ProcessBuilder", ClassLoader.getSystemClassLoader(),
"start");
hookhelper.hookMethod(execmethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
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());
}
});
}
@Override
public void startHook() {
// HttpURLConnection
Method openConnectionMethod = RefInvoke.findMethodExact("java.net.URL", ClassLoader.getSystemClassLoader(), "openConnection");
hookhelper.hookMethod(openConnectionMethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
URL url = (URL) param.thisObject;
Logger.log_behavior("Connect to URL ->");
Logger.log_behavior("The URL = " + url.toString());
}
});
if(Build.VERSION.SDK_INT < 23){
httpHook = new ApacheHttpHook();
httpHook.startHook();
}
}
@Override
public void startHook() {
if (Build.VERSION.SDK_INT <= 19) {
Method setMobileDataEnabledmethod = RefInvoke.findMethodExact(
"android.net.ConnectivityManager", ClassLoader.getSystemClassLoader(),
"setMobileDataEnabled", boolean.class);
hookhelper.hookMethod(setMobileDataEnabledmethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
boolean status = (Boolean) param.args[0];
Logger.log("Set MobileDataEnabled = " + status);
}
});
}
}
@Override
public void startHook() {
// TODO Auto-generated method stub
Method registerReceivermethod = RefInvoke.findMethodExact(
"android.app.ContextImpl", ClassLoader.getSystemClassLoader(),
"registerReceiver", BroadcastReceiver.class,IntentFilter.class);
hookhelper.hookMethod(registerReceivermethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
// TODO Auto-generated method stub
Logger.log_behavior("Register BroatcastReceiver");
Logger.log_behavior("The BroatcastReceiver ClassName = "+param.args[0].getClass().toString());
if(param.args[1] != null){
String intentstr = descIntentFilter((IntentFilter) param.args[1]);
Logger.log_behavior("Intent Action = ["+intentstr+"]");
}
}
});
}
@Override
public void startHook() {
// TODO Auto-generated method stub
try {
Class receiverDataClass = Class.forName("android.app.ActivityThread$ReceiverData");
if (receiverDataClass != null) {
Method handleReceiverMethod = RefInvoke.findMethodExact("android.app.ActivityThread", ClassLoader.getSystemClassLoader(),
"handleReceiver", receiverDataClass);
hookhelper.hookMethod(handleReceiverMethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
Logger.log_behavior("The Receiver Information:");
Object data = param.args[0];
Logger.log_behavior(data.toString());
}
});
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void startHook() {
// TODO Auto-generated method stub
Method startRecordingMethod = RefInvoke.findMethodExact(
"android.media.AudioRecord", ClassLoader.getSystemClassLoader(),
"startRecording");
hookhelper.hookMethod(startRecordingMethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
// TODO Auto-generated method stub
Logger.log_behavior("Audio Recording ->");
}
});
}
@Override
public void startHook() {
Method execmethod = RefInvoke.findMethodExact(
"java.lang.Runtime", ClassLoader.getSystemClassLoader(),
"exec", String[].class,String[].class,File.class);
hookhelper.hookMethod(execmethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
// TODO Auto-generated method stub
Logger.log_behavior("Create New Process ->");
String[] progs = (String[]) param.args[0];
for(int i=0 ;i <progs.length; i++){
Logger.log_behavior("Command" + i + " = "+progs[i]);
}
}
});
}
@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());
}
});
}
@Override
public void startHook() {
Method setImplmethod = RefInvoke.findMethodExact(
"android.app.AlarmManager", ClassLoader.getSystemClassLoader(),
"setImpl",int.class,long.class,long.class,long.class,PendingIntent.class,WorkSource.class);
hookhelper.hookMethod(setImplmethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
Logger.log_behavior("The Alarm Information:");
PendingIntent intent = (PendingIntent) param.args[4];
descPendingIntent(intent);
Logger.log_behavior("TriggerAtMillis = "+param.args[1]);
Logger.log_behavior("windowMillis = "+param.args[2]);
Logger.log_behavior("intervalMillis = "+param.args[3]);
}
});
}
@Override
public void startHook() {
Method setMobileDataEnabledmethod = RefInvoke.findMethodExact(
"android.net.ConnectivityManager", ClassLoader.getSystemClassLoader(),
"setMobileDataEnabled",boolean.class);
hookhelper.hookMethod(setMobileDataEnabledmethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
boolean status = (Boolean) param.args[0];
Logger.log("Set MobileDataEnabled = "+status);
}
});
}
@Override
public void startHook() {
// TODO Auto-generated method stub
Method registerReceivermethod = RefInvoke.findMethodExact(
"android.app.ContextImpl", ClassLoader.getSystemClassLoader(),
"registerReceiver", BroadcastReceiver.class,IntentFilter.class);
hookhelper.hookMethod(registerReceivermethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
// TODO Auto-generated method stub
Logger.log_behavior("Register BroatcastReceiver");
if(param.args[0] != null){
Logger.log_behavior("The BroatcastReceiver ClassName = "+param.args[0].getClass().toString());
}
if(param.args[1] != null){
String intentstr = descIntentFilter((IntentFilter) param.args[1]);
Logger.log_behavior("Intent Action = ["+intentstr+"]");
}
}
});
}
@Override
public void startHook() {
// TODO Auto-generated method stub
try {
Class receiverDataClass = Class.forName("android.app.ActivityThread$ReceiverData");
if (receiverDataClass != null) {
Method handleReceiverMethod = RefInvoke.findMethodExact("android.app.ActivityThread", ClassLoader.getSystemClassLoader(),
"handleReceiver", receiverDataClass);
hookhelper.hookMethod(handleReceiverMethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
Logger.log_behavior("The Receiver Information:");
Object data = param.args[0];
Logger.log_behavior(data.toString());
}
});
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void startHook() {
// TODO Auto-generated method stub
Method startRecordingMethod = RefInvoke.findMethodExact(
"android.media.AudioRecord", ClassLoader.getSystemClassLoader(),
"startRecording");
hookhelper.hookMethod(startRecordingMethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
// TODO Auto-generated method stub
Logger.log_behavior("Audio Recording ->");
}
});
}
@Override
public void startHook() {
Method execmethod = RefInvoke.findMethodExact(
"java.lang.Runtime", ClassLoader.getSystemClassLoader(),
"exec", String[].class,String[].class,File.class);
hookhelper.hookMethod(execmethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
// TODO Auto-generated method stub
Logger.log_behavior("Create New Process ->");
String[] progs = (String[]) param.args[0];
for(int i=0 ;i <progs.length; i++){
Logger.log_behavior("Command" + i + " = "+progs[i]);
}
}
});
}
@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());
}
});
}
@Override
public void startHook() {
Method setImplmethod = RefInvoke.findMethodExact(
"android.app.AlarmManager", ClassLoader.getSystemClassLoader(),
"setImpl",int.class,long.class,long.class,long.class,PendingIntent.class,WorkSource.class);
hookhelper.hookMethod(setImplmethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
Logger.log_behavior("The Alarm Information:");
PendingIntent intent = (PendingIntent) param.args[4];
if(intent != null)
descPendingIntent(intent);
Logger.log_behavior("TriggerAtMillis = "+param.args[1]);
Logger.log_behavior("windowMillis = "+param.args[2]);
Logger.log_behavior("intervalMillis = "+param.args[3]);
}
});
}
@Override
public void startHook() {
Method setMobileDataEnabledmethod = RefInvoke.findMethodExact(
"android.net.ConnectivityManager", ClassLoader.getSystemClassLoader(),
"setMobileDataEnabled",boolean.class);
hookhelper.hookMethod(setMobileDataEnabledmethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
boolean status = (Boolean) param.args[0];
Logger.log("Set MobileDataEnabled = "+status);
}
});
}
@Override
public void startHook() {
// TODO Auto-generated method stub
Method registerReceivermethod = RefInvoke.findMethodExact(
"android.app.ContextImpl", ClassLoader.getSystemClassLoader(),
"registerReceiver", BroadcastReceiver.class,IntentFilter.class);
hookhelper.hookMethod(registerReceivermethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
// TODO Auto-generated method stub
Logger.log_behavior("Register BroatcastReceiver");
Logger.log_behavior("The BroatcastReceiver ClassName = "+param.args[0].getClass().toString());
if(param.args[1] != null){
String intentstr = descIntentFilter((IntentFilter) param.args[1]);
Logger.log_behavior("Intent Action = ["+intentstr+"]");
}
}
});
}
@Override
public void startHook() {
// TODO Auto-generated method stub
try {
Class receiverDataClass = Class.forName("android.app.ActivityThread$ReceiverData");
if (receiverDataClass != null) {
Method handleReceiverMethod = RefInvoke.findMethodExact("android.app.ActivityThread", ClassLoader.getSystemClassLoader(),
"handleReceiver", receiverDataClass);
hookhelper.hookMethod(handleReceiverMethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
Logger.log_behavior("The Receiver Information:");
Object data = param.args[0];
Logger.log_behavior(data.toString());
}
});
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void startHook() {
// TODO Auto-generated method stub
Method startRecordingMethod = RefInvoke.findMethodExact(
"android.media.AudioRecord", ClassLoader.getSystemClassLoader(),
"startRecording");
hookhelper.hookMethod(startRecordingMethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
// TODO Auto-generated method stub
Logger.log_behavior("Audio Recording ->");
}
});
}
@Override
public void startHook() {
Method execmethod = RefInvoke.findMethodExact(
"java.lang.Runtime", ClassLoader.getSystemClassLoader(),
"exec", String[].class,String[].class,File.class);
hookhelper.hookMethod(execmethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
// TODO Auto-generated method stub
Logger.log_behavior("Create New Process ->");
String[] progs = (String[]) param.args[0];
for(int i=0 ;i <progs.length; i++){
Logger.log_behavior("Command" + i + " = "+progs[i]);
}
}
});
}
@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());
}
});
}
@Override
public void startHook() {
Method setImplmethod = RefInvoke.findMethodExact(
"android.app.AlarmManager", ClassLoader.getSystemClassLoader(),
"setImpl",int.class,long.class,long.class,long.class,PendingIntent.class,WorkSource.class);
hookhelper.hookMethod(setImplmethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
Logger.log_behavior("The Alarm Information:");
PendingIntent intent = (PendingIntent) param.args[4];
descPendingIntent(intent);
Logger.log_behavior("TriggerAtMillis = "+param.args[1]);
Logger.log_behavior("windowMillis = "+param.args[2]);
Logger.log_behavior("intervalMillis = "+param.args[3]);
}
});
}
@Override
public void startHook() {
Method setMobileDataEnabledmethod = RefInvoke.findMethodExact(
"android.net.ConnectivityManager", ClassLoader.getSystemClassLoader(),
"setMobileDataEnabled",boolean.class);
hookhelper.hookMethod(setMobileDataEnabledmethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
boolean status = (Boolean) param.args[0];
Logger.log("Set MobileDataEnabled = "+status);
}
});
}
@Override
public void afterHookedMethod(HookParam param) {
if (!HAS_REGISTER_LISENER) {
fristApplication = (Application) param.thisObject;
BroadcastReceiver broadcastReceiver = new CommandBroadcastReceiver();
fristApplication.registerReceiver(broadcastReceiver, new IntentFilter(CommandBroadcastReceiver.INTENT_ACTION));
HAS_REGISTER_LISENER = true;
}
}
@Override
public void startHook() {
Method startRecordingMethod = RefInvoke.findMethodExact(
"android.media.AudioRecord", ClassLoader.getSystemClassLoader(),
"startRecording");
hookhelper.hookMethod(startRecordingMethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
Logger.log_behavior("Audio Recording ->");
}
});
}
@Override
public void startHook() {
Method notifyMethod = RefInvoke.findMethodExact("android.app.NotificationManager", ClassLoader.getSystemClassLoader(), "notify",int.class,Notification.class);
hookhelper.hookMethod(notifyMethod, new AbstractBahaviorHookCallBack() {
@Override
public void descParam(HookParam param) {
Notification notification = (Notification) param.args[1];
Logger.log_behavior("Send Notification ->");
Logger.log_behavior(notification.toString());
}
});
}
@Override
public void afterHookedMethod(HookParam param) {
// TODO Auto-generated method stub
if (!HAS_REGISTER_LISENER) {
fristApplication = (Application) param.thisObject;
IntentFilter filter = new IntentFilter(CommandBroadcastReceiver.INTENT_ACTION);
fristApplication.registerReceiver(new CommandBroadcastReceiver(), filter);
HAS_REGISTER_LISENER = true;
}
}