钩子注入是利用SetWindowsHookEx函数这是一个被动的注入方式,入口点注入是一个主动注入,就是做这件事什么都不为就是为了注入,入口点注入有很多优势比如说做一个游戏的多开器,多开的检测事情是在游戏一启动的时候完成的,所以只有用入口点注入才能完成这个多开的事情如果用的不是入口点注入那么就完成不了,还有有的程序不让调式这个东西使用了windows底层一些隐藏的api面临这些隐藏的api还是要用入口点注入。
入口点在我们写控制台程序的时候都会从main函数开始,写mfc的时候也有一个象main这样的函数这就是入口点,每个程序都会有一个起始点,这个起始点由于编译器的不同不见得都是main函数也有可能这个起始点调用了main函数,从起始点到程序的运行这个过程就提供了很多的机会,入口点注入就是利用了这个特性。
原本的程序运行:
使用入口点注入之后的图:
找入口点首先打开Ollydbg附加上我们剑侠游戏,然后点击下图红框
然后找到剑侠游戏右击选择下图红框
然后就会出现下图的样子(PE头),然后双击下图红框
下图中可以看到一个程序最开始执行的是一个dos头
往下滑可以看到下图红框的内容,红框中的内容是记录的这个exe文件pe头所在的位置这是一个偏移
ImageBase是这个程序加载到内存之后的地址,AddressOfEntryPoint就是所谓的入口点,AddressOfEntryPoint是入口点的偏移真正的位置是AddressOfEntryPoint加上ImageBase它的结果也就是400000+2BD50= 42BD50,ImageBase的值会有变化加载到内存时的地址是不确定的,只有让它ImageBase与AddressOfEntryPoint相加还是能算出入口点的,ImageBase的值是可以指定的
最终程序就会先从下图红框位置走,我们要做的就是在执行下图红框位置之前做一个HOOK跳转到我们的代码,也就是10.实现游戏中完美的真正无敌它里面的操作,这样就是神不知鬼不觉的入口点注入