转自bujin888
第一个版本
HShield反外挂方式应该向进程插入他们的反外挂钩子 拦截我们做外挂的必要函数
我当时突破方法是ROOKIT技术,隐藏进程!
第二个版本
HShield利用消息全局钩子插入他们的反外挂钩子 ,我是拦截了LOADLIBARY到
自己的处理函数拒绝了他家反外挂钩子进入
第三个版本
他家在LOADLIBARY上做了处理,但他们忽律了一个东西!那就是LOADLIBARYEX函数
第四个版本
也就是现在这个版本!只能用变态来形容 一开始我用HOOK LOADLIBARYEX ,
但是好多API仍然不能使用 我一开始以为LOADLIBARYEX 也被处理过了
于是我又拦截 RtlInitUnicodeString 因为每一个文件在底层传输字符处理中
必须用到这个函数,但是发现HShield的DLL是全被拦截了,但getpixel等仍然没有作用,
通过调试发现,ring3层代码完全没有被修改,那只能说明进了sysenter的ring0层!
没办法,也只好自己写驱动对抗了,于是根据DDK资料里的mirro.sys
重新写了我所需要的外挂函数驱动win32GDI.sys!完成了这次的反外挂的突破!
问题:
win32GDI.sys是参考DDK驱动里的mirror驱动改写的,属于虚拟显卡的的方式!他有几个缺点
一:不支持 directx游戏
二:消耗的CPU比较大!
看了驱动开发网的资料 hook int 2e hook sysenter 和 国外rootkit方式中的另类
hook sysenter 仍然不能根本解决问题!
因为如果 我HOOK sysenter 然后启动游戏 游戏的驱动HOOK 又会把接口接管过去
我如果恢复接口,游戏就会自动退出! 还有通过直接在原来sysenter地址里面写跳
转代码来实现HOOK sysenter我感觉也 没什么用!因为sysenter已经被拦截了,根本
运行不到我所写跳转的位置,就算运行到了又能如何呢?我总不能自己实现sysenter功
能吧,如果能自己实现sysenter功能!我还不如直接ring3层hook kisystemcall
目前我有新的想法 就是增加服务ID 就是增加系统的服务ID 假如getpixel最后调用
的系统服务器ID为X 我们增加个系统的服务ID Y,让Y的ID跳到X的ID里执行,从而欺骗
反外挂系统!不知道大家有什么更好的办法
语文一直不及格!所以语言组织很差!大家见谅