今天学习java中的HOOK,了解了其工作原理:把函数注册为在JVM即将退出前执行的函数。
看了这个,我想起来C语言里面的钩子函数。这两个工作原理差不多,都是回调函数在系统发生某件事情的时候会被执行。不过C语言的回调函数要比java中的HOOK功能多的多。
例如,C语言里面的钩子函数可以监听键盘事件(获取你点击的键的值),鼠标事件(鼠标一旦发生移动就会获取鼠标的坐标值)等,这些能做什么就不用我说了吧!
据我目前所学的知识,java里面的HOOK只能在JVM即将退出还未退出的时候被调用,可以用来做一些清理工作,比如删除某个特定文件等。
当然,C语言中的钩子函数的实现也比java里面的HOOK要麻烦一点,以后会更新这样的实现来供大家参考。
随便说说,后续更新。。。