自己想写一个反外挂的程序,老虾们来给指点一下啊该如何处理

自己想写一个反外挂的程序,老虾们来给指点一下啊
(1)获取系统当前所有窗口和进程信息,与已知的外挂进程窗口比较,如发现,立即终止其运行,如无法终止,就将游戏终止。
(2)HOOK系统所有进程中的可以修改内存的API。
(3)查找游戏进程所载入的动态链接库,如检测到非法的链接库,即结束游戏运行。
    以上前两点是我在网上看到的办法,但稍微高级一点的外挂好像都能逃避掉,第3条是我偶然想到的,不知道是不是实用。偶还是学生,第一次把在书上看到的东西拿出来PK,老鸟们指教一下我上面的方法有什么好点的改进办法吗?如果你们有好办法了,教教小弟啊,先谢谢了

------解决方案--------------------
jf
------解决方案--------------------
第3个最可行
------解决方案--------------------
韩国反外挂产品分析报告

目录
文档目的
分析市场上韩国反外挂产品的机理,明确其优缺点
评估韩国反外挂系统在中国网络游戏市场可行性
总结成熟反外挂产品的必备特点
文档目标读者
研发中心
游戏开发商
游戏运营商
韩国反外挂产品的基本情况


随着网络游戏产业的发展,外挂产业也随之诞生并得到飞速的发展,外挂技术不断升级,对网络游戏的威胁也在不断加剧.大陆主流的网络游戏,尤其是MMORPG,基本上都是从韩国引进运营.因此从2002年开始,在韩国游戏开发商逐步认识到外挂对网络游戏的危害,感受到*外挂制作者高超的技术实力的同时,韩国的网络安全技术公司也意识到反外挂将伴随网络游戏产业的持续发展,成为一个极具潜力的新兴产业,尤其是在外挂危害最深的大陆市场.因此,韩国将原来用于电子商务,网络通讯,病毒防护等领域的软件安全技术移植到网络游戏,开发了几款网络游戏反外挂系统,比较有名的是INCA公司的Game Guard和安博士研究所的AhnLab HackShield.

奇迹在2003年下半年开始使用Game Guard反外挂系统,陆续使用Game Guard的游戏有希望Online,天堂2等等.Game Guard在与奇迹合作的早期(2003年底),确实达到了遏制外挂的目的.但是很快,随着外挂制作者对Game Guard技术的了解不断深入,同时由于该技术本身固有的一些弱点,一些外挂已经完全突破了Game Guard对网络游戏的防护,神话外挂就已经能够绕过Game Guard直接启动奇迹游戏客户端.Game Guard在吸取了奇迹上的教训以后在保护机制,验证机制等方面有了很多的改进,但是后来的希望Online等游戏尽管使用了Game Guard,各种外挂,尤其脱机外挂仍然层出不穷,无法遏止,主要原因就是外挂制作者已经熟悉了Game Guard所使用的核心技术,并积累了破解的经验,因此不触动实现理念和核心机制的小修小补无济于事.

AhnLab HackShield出现较晚,在国内的应用也比较少,目前使用安博士的只有天联世纪的街头篮球.尽管在大陆的应用时间不长,并不为人所了解,但是由于其核心机制和Game Guard基本一致,很快也出现了脱机外挂,比如街头篮球战神.
韩国的反外挂产品在大陆应用的多次失败,已经能够说明很多问题.且不论其实现机制和使用的技术是否优秀,其系统的基本理念就有明显的缺陷.这些产品在韩国本土的成功运用并不能证明其在大陆也能够成功,只能说明在韩国本土,由于政策的限制,用户的习惯以及黑客文化的缺乏,没有形成像大陆这样蓬勃发展的游戏外挂产业.


韩国反外挂产品的技术特点和内在缺陷

韩国的反外挂产品,由于其源自于电子商务,网络通讯,病毒防护等领域的已有技术,不可避免地带有原有技术的明显特征,比如依赖于系统底层技术的目标进程保护,类似于病毒扫描的特征码识别等等.这些手段对付木马和病毒应该是有效的,但对于游戏外挂,则存在一些内在的缺陷:
外挂程序在用户的系统中拥有和反外挂程序同样的控制权限,因此依赖于系统底层技术,就是在与外挂制作者较量谁能够最终控制系统,过多地使用底层技术还会带来兼容性问题.由于外挂用户不是被动的受害者,而是主动的使用者,因此外挂在优先权上更有优势,比如用户会根据外挂的使用说明,严格地按步骤操作,甚至会按外挂的要求安装新的操作系统.

外挂与病毒和木马有完全不同的目的和代码特征,而且在利益的驱动下,外挂的变形能力和更新能力远高于病毒和木马,因此基于特征码识别的技术很难取得明显的效果,金山游盾就是最好的例证.

韩国反外挂产品更多地是在操作系统层面与游戏客户端绑定,与游戏过程本身的关联很弱,只要能够找到黑客高手成功的从系统层面剥离反外挂系统,外挂程序就可以随意使用;这种剥离基本上只需要做一次,因为底层机制的更新是很困难的.
韩国反外挂产品的设计思路是阻止外挂侵害客户端,着眼于对游戏客户端进程的保护,对于不依赖于客户端存在的脱机外挂,这些保护完全没有意义,脱机外挂需要做的只是模拟反外挂模块与反外挂服务端的简单验证通讯,而网络游戏最大的敌人就是对游戏平衡性具有最强破坏力的脱机外挂;
韩国反外挂产品寄希望于一劳永逸地解决外挂问题,过多的底层技术应用使其无法快速更新以应对层出不穷的外挂技术.
韩国反外挂产品的技术实现机理

下面是我们对Game Guard和HackShield这两种反外挂产品所实现的功能及其实现方式的简要分析.这两款产品在实现思路和机制上是基本一致的,仅在实现细节上有少量的差异


------解决方案--------------------
Game Guard
Game Guard随游戏客户端启动,启动后检查自身版本并自动更新到最新版本.启动后,首先加载设备驱动进入Ring 0级获得系统的控制权,在NT系统中使用的驱动程序为npptNT.sys.Game Guard使用设备驱动监控系统的进程创建动作,从而保证在系统的所有进程,包括游戏启动时已有的和启动以后新建的进程,中注入Game Guard的模块npggNT.des,该模块拦截所注入进程的部分系统API,实现对系统API监控,防止外挂进程针对游戏进程的有害操作.随Game Guard启动的还有一个GameMon.des进程,该进程主要负责对非法进程和模块的特征码扫描.为保证模块自身的存在,Game Guard提供一个可以即时更新的服务端认证模块,即Game Guard的客户端模块需要与服务端进行加密验证通讯以确认客户端模块是否正常工作,后期增加了对客户端程序代码的验证,因此在一定程度上可以阻止脱机外挂,但这种验证与游戏过程无关,因此仅仅是增加了外挂模拟的难度.

HackShield
HackShield使用了同样的自动更新方式,也利用设备驱动获得控制权,驱动程序EagleNT.sys(NT系统)动态生成,不需要磁盘上保留程序文件.HackShield在所有进程中注入的模块为EGRNAPx2.dll,API的拦截方式与Game Guard也有所不同.除了实现API监控外,EagleNT.sys还接管了NTOSKERNAL中的系统服务函数:NtOpenProcess, NtOpenSection, NtReadVirtualMemory, NtWriteVirutalMemory, NtSuspendThread, NtTerminateThread等,目的是阻止各种用户级和核心级调试工具,也可以更有效地防范外挂读写游戏内存.HackShield同样也实现了对外挂进程和模块的特征码扫描.与Game Guard的服务端认证类似,HackShield提供 "服务器连动防止外挂 ",即客户端定时地根据服务端的请求返回正确的响应以验证客户端模块不被篡改,同样这种请求-响应包含了部分对客户端程序的完整性检查,但与游戏过程还是没有什么联系.HackShield还注册了一个WH_DEBUG钩子,估计是用于检查阻止其他消息钩子,但对于底层键盘钩子并无效果.

根据前面的介绍,Game Guard和HackShield都使用了大量的底层技术,据HackShield的演示文档,HackShield,HackShield Pro和Game Guard在技术运用上的差异如下:
项 目
HackShield (H)
HackShield Pro (HP)