一、什么是沙箱机制?
沙箱是一个虚拟系统程序,沙箱提供的环境相对于每一个运行的程序的进程空间都是独立的,程序的运行互不干扰,而且不会对现有的系统产生影响。
二、什么是hook?
hook的意思是勾住。比如A发送消息给B,在消息过去之前,可以先把消息勾住,不让其传递,你可以先执行你的操作(或者说先执行你的钩子函数)。
专业的说法就是:hook技术,能够改变API执行的结果,将系统的API函数执行重定向。
三、为什么需要hook?
android系统的沙箱机制使我们不能通过一个程序改变其他程序的某些行为,但是hook技术正好可以解决此类问题。
四、代理是什么?
举例生活中,比如我经常需要买一些香港的东西,又不太现实每次自己亲自去,只能找一些代购帮我们去买。那代购就比较坑了,不仅坑你的钱,还可能坑你的货品,给你带回了假货回来。
五、代理分类?
1.静态代理
2.动态代理
六、反射机制?
Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。
在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态获取的信息以及动态调用对象的方法的功能就称为java语言的反射机制。通俗点讲,通过反射,该类对我们来说是完全透明的,想要获取任何东西都可以。
七、hook技术分类?
分类1 —— API hook:
分类2 —— 系统消息hook:
八、小实践
以下我们对API hook举一个详细的例子:
步骤