最近一直在学习hook,但是自己摸索太难了,网上的消息是很多,但是同样也很杂乱,但是学习的态度要端正,自己慢慢摸索,也记录下自己学习的点点滴滴
1.hook的概念
hook一直知道是钩子,知道能勾住APP的某个函数进行修改,进而影响其功能,但是具体的就不知道了,直到看到了网上的一段话:
在windows系统中,一切皆消息,
比如按了一下键盘,也是一个消息,Hook的意思是勾住,也就是在消息过去之前,可以先把消息勾住,不让其传递,你可以优先处理,也即这项技术就是提供了一个入口,能够针对不同的消息或者API在执行前,先执行你的操作,你的操作也称为「钩子函数」,所以,有的时候程序员在讨论的时候,也经常会说,可以先hook住,在处理,也即在执行某某操作之前,优先处理一下
这句话就是hook的思想和原理了
2.了解hook的基础知识
我们都知道无论是手机还是电脑运行的时候都依赖系统各种各样的API,当某些API不能满足我们的要求时,我们就得去修改某些api,使之能满足我们的要求。这样api hook就自然而然的出现了。我们可以通过api hook,改变一个系统api的原有功能。基本的方法就是通过hook“接触”到需要修改的api函数入口点,改变它的地址指向新的自定义的函数。当然这种技术同样适用于Android系统,在Android开发中,我们同样能