24.钩子注入的注意事项
上一个内容:23.在游戏中按下Home键呼出辅助窗口
钩子注入是一个典型的注入方式,它原本是用来截取消息的,为了截取消息就不得不注入操作系统就被动的帮我们进行了注入它不注入都不行,钩子注入就基于拦截消息完成的注入,钩子注入与其它注入不同的地方,做外挂辅助的会很喜欢用它比如说外挂是需要收费的也就是 23.在游戏中按下Home键呼出辅助窗口 它里面的注入者,注入者在外挂中会作为一个收费的角色就是注入者与服务器通信检测发现你没交钱那就不给你注入,交钱了才给注入,还有在 23.在游戏中按下Home键呼出辅助窗口 这个程序点了注入之后然后把它关闭了,这时游戏也会崩溃这样就非常好游戏与外挂进行一个强绑定就限制一个窗口就只绑定一个窗口其它的注入就不好实现没有这样的优势,钩子注入这种方式的缺点比较依赖于windows的消息、依赖于窗口,钩子注入的点一定是目标程序运行的比较成熟之后才可以做注入,然后 23.在游戏中按下Home键呼出辅助窗口 的程序每点一次注入都会给钩子链接中添加一个钩子这个要做一个判断只能注入一次防止多次注入(模块只会加载一次但是钩子会重复加载,就是模块加载一次之后它里面的函数也加载了,然后第二次注入时由于钩子的回调函数是写死的所以第二次注入的钩子与第一次注入的钩子的回调函数是同一个,第三次注入与第二次注入同理后续的注入也是同理,然后钩子是一个链表也就是会从第一个钩子开始执行直到最后一个所以如果注入了两次那么回调函数就会执行两次),这个 23.在游戏中按下Home键呼出辅助窗口 辅助进程结束游戏也会结束的原因是我们的dll没有写卸载(声明创建的内存没有被释放)导致的卸载钩子的函数是UnhookWindowsHookEx,给UnhookWindowsHookEx函数传入注入时得到的keyHook变量的值就可以也就是把keyHook变量传给UnhookWindowsHookEx函数。如果是 23.在游戏中按下Home键呼出辅助窗口 它的代码会由于mfc复杂的机制导致释放的不够全面(进程关闭游戏崩溃就说明辅助dll卸载的不够全面)还是会让游戏崩溃的