动态代理hook自己进程的startActivity方法
来源:互联网 发布:淘宝增值服务有哪些 编辑:程序博客网 时间:2024/06/05 08:07
hook 原理
package yzy.jnidemo;import android.app.Application;import android.util.Log;import java.lang.reflect.Field;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); Log.i("INFO", "start hook"); Class<?> forName = null; try { forName = Class.forName("android.app.ActivityManagerNative"); Field defaultField = forName.getDeclaredField("gDefault"); defaultField.setAccessible(true); //gDefault变量值 Object defaultValue = defaultField.get(null); //反射SingleTon Class<?> forName2 = Class.forName("android.util.Singleton"); Field instanceField = forName2.getDeclaredField("mInstance"); instanceField.setAccessible(true); //系统的iActivityManager对象 Object iActivityManagerObject = instanceField.get(defaultValue); //钩子 Class<?> iActivityManagerIntercept = Class.forName("android.app.IActivityManager"); AmsInvocationHandler handler = new AmsInvocationHandler(iActivityManagerObject); Object proxy = Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), new Class<?>[]{iActivityManagerIntercept}, handler); instanceField.set(defaultValue, proxy); } catch (Exception e) { e.printStackTrace(); } } private class AmsInvocationHandler implements InvocationHandler { private Object obj ; public AmsInvocationHandler(Object iActivityManagerObject) { obj = iActivityManagerObject; } @Override public Object invoke(Object o, Method method, Object[] objects) throws Throwable { Log.i("yzy","invoke before " + method.getName()); method.invoke(obj,objects); Log.i("yzy","invoke after " + method.getName()); return null; } }}
阅读全文
0 0
- 动态代理hook自己进程的startActivity方法
- 动态代理实现方法以及对象HooK
- hook+android动态代理
- so注入(inject)和挂钩(hook) 以及同进程动态库so文件的函数hook方法介绍
- Context的startActivity方法
- Android插件化开发之Hook StartActivity方法
- Android插件化开发之Hook StartActivity方法
- Android插件化开发之Hook StartActivity方法
- 代理、动态代理、基于模版方法的动态代理
- Java动态代理的自己理解
- 自己写的JDK动态代理类
- 用Annotation,Future,动态代理实现自己的JAVA方法运行超时应用
- 继承?静态代理?写一个自己的动态代理吧
- 自己实现动态代理
- Hook技术之4 在自己的进程中注入一个Dll到别人的进程
- Android插件化开发-hook动态代理
- Android插件化开发-hook动态代理
- Android 插件之Hook机制动态代理
- 喝饮料问题
- 前端JS/JQuery常用封装的方法介绍
- 关于MySQL编码问题解析
- 使用maven集成Dubbo
- 解决macbook pro在只有win8系统下开启AHCI的问题
- 动态代理hook自己进程的startActivity方法
- HDU 2485 Destroying the bus stations(最小割)
- 阿里-2018 c++ 第一题
- 博客格式测试
- 多态的经典问题
- easyui精简版教程 10分钟上手
- 1355 斐波那契的最小公倍数
- 校园招聘-2017阿里C/C++研发工程师内推笔试编程题
- VS恢复默认设置