注:本篇文章长达 1609字
两年前笔者先后写了2篇博文,分别是 《Hook_获取寄存器数值》 以及 《Hook讲解 First》,当时年少轻狂,知道了点东西就开始瞎装逼,现在回想起来,感觉当初的自己太傻了。hook这种东西,会者不难,只是因为国内相关的资料比较的稀少,而且百度搜索的算法有点问题,在某些方面的资料用百度那可是相当的难找。咳咳,废话不多,下面进入正题。
hook,中文直译 钩子
,叫这个名字其实就已经很直观了,大概描述起来就是在一段代码块之中选择一行代码,覆写跳转语句,使运行逻辑跳转到自行申请的其他空间,在跳转过去的地方补上那行代码,随后进行一系列操作之后再跳回去,这样就可以做到不修改原有代码逻辑,使程序不至于崩溃。
如果要和hook打交道,首先会些汇编语言是最基础的东西,目前网上的资料都是好几年前32位老的汇编指令教程,现在流行的游戏基本都已经是64位的程序了,这就注定了门槛的提高。(不过大部分游戏为了兼容性,还是会推出32位版,也就是所谓的x86)
下面上一段伪代码来简单的演示一下
// exam