系统:WinAll 大小:4KB
类型:程序源码 更新:2016-03-23 08:50
易语言超级hook模块是小编为大家分享的一款论坛大牛分享的超级hook模块,据说非常好用,所以小编就来分享给大家了。喜欢的自取吧!
1.hook是什么:
英文来说,hook是钩子。
其实捏,Hook是Windows中提供的一种用以替换DOS下“中断”的系统机制,中文译为“挂钩”或“钩子”。在对特定的系统事件进行hook后,一旦发生已hook事件,对该事件进行hook的程序就会受到系统的通知,这时程序就能在第一时间对该事件做出响应。(转自百科)
某大神说:
Hook是一个针对程序执行过程中挂钩技术。它主要用来拦截一些数据,并对这些数据进行处理,此时,程序转到我们的Hook代码,我们拥有整个程序的执行权限,我们可以选择跳过此处,也可以选择修改数据,或者出错退出程序等等。
2.hook应用的范围
这东西应用范围相当广啊。。。可以是程序(高深点说是用户层)可以是内核(貌似叫硬件层)4p虫子大神一定会内核什么的?驱动什么的。。。
3.其实还是2
我们一般用Hook主要是用在外部程序,来监视一个程序的某个动作是否满足我们的条件。
(当然也可以用于自身程序的说)
4.废话
hook用于拦截。。。所以当然APIHook最为重要啦其实我的目的就在这里。。。(求教APIHook)
5.汇编基础。。。
6.工具:我OD,易语言,百度
首先,搞一个厉害的程序
然后,码代码
然后,打开静态编译好。
然后,打开OD,F3附加这个程序
然后,将滑块条移至最上方,找到这里
ok,为什么是这里,而不是上面呢?其实,我也说不清楚。。。大概应该是关于调用子程序的东西。。。但是我们是要hook,那肯定得要找有用的地方,而我们看到这里下方有local.1、2、3 就是有3个局部变量。。。local在英语中是局部的意思。然后,我们在这里下断。运行,让他走到这里停下,再一步步分析。。。
这一大段,就是c=a+b的运算过程,貌似多借了2行。。。
我们hook就要从这里下手。首先,我们分析下这一小段。。。第二行sub esp,24是腾出变量空间。第3-5行是初始化3个局部变量,4.5是分别把1、2赋值给a和b。介个很容易理解吧。。。然后下面棕色这一段就是处理运算。(又见易语言奇葩的浮点。。。)最后mov是把c输出出来,然后下面call弹出信息框,然后继续走下去就结束了。这个过程很简单的样子。
好了,废话了这么一大堆,开始hook。那我们怎么hook啊我又不会APIHook
那我就找段空白代码自己码出来再跳回去吧。。。
ok,翻到最底下,随便找一个。
我们在上面分析过了,加法运算是从那一堆棕色的玩意开始的。。。那我们hook的入口就定在fild [local.1]那里。找个存储的,我的是
00461BC1 00 db 00
然后把入口fild [local.1]那里修改成jmp 00461BC1,
毫不清楚。。。就这样看吧
介个OD为什么下面有nop啊,什么字节问题,可以自行去百度
然后是关键,ctrl+G 到00461BC1
开始写让它ab变的代码,似乎红色的相当不清楚。我把他弄出来
00461BC1 C745 FC 03000>mov dword ptr ss:[ebp-4],3
00461BC8 C745 F8 04000>mov dword ptr ss:[ebp-8],4
00461BCF 8B45 FC mov eax,dword ptr ss:[ebp-4]
00461BD2 0345 F8 add eax,dword ptr ss:[ebp-8]
00461BD5 8945 F4 mov dword ptr ss:[ebp-C],eax
00461BD8 ^ E9 9AF4F9FF jmp 厉害!.00401077
前两句是把a,b改为3和4 后三句是把a赋值给eax,再加上b,然后再传给c。最后一句呢,就是把他跳到信息框弹出的call啦。
然后右键赋值可执行文件,所有修改,全部复制,右键保存文件即可。
是不是很简单那,其实我的主要目的是
应用信息