答复
历史来看NP曾经出过无数版本..
从最早的驱动反HOOK..到现在的3分钟检测..
一次比一个变态..一次比一个可怕..
所以做为技术人员..我们深入研究NP的各种技术..同时发现NP的技术大部分依赖驱动..但由于WIN32这个笼子...NP本身开始走向一个衰败和极端...
首先..说一下NP本身的一些技术..和一些漏洞
(目前除了3分钟检测..我几乎都能挂掉 因为3分钟检测属于完全内置与游戏代码中...NP的特征库不全..有时候无法区分版本..所以挂起来很困难)...
NP可以说有众多版本..反外挂的等级也层次不起...
其中最容易也简单的..应该是2001~2003版本(部分2003版本带3分钟检测..例如精灵)
用年号区分...是因为NP本身的技术是没有太大的长进的..只是每年适当的更新
例如..众多版本都使用NP的驱动挂接API函数..这个和当初所谓的检测导入表差距比较大...
我个人也模仿NP的一些假想技术开发过一些反外挂程序..其中对于检测到处表..可以说是非常的占资源..属于不太可能实现的一种手段..因为你要去定位..但是这个对于CPU开销太大
我也在考虑NP是如何检测一个程序是否是非法程序的呢?
做几个试验..启动带NP的游戏..之后启动GM8或WPE..你会发现这些程序自动关闭...
其实要做起来也简单..JMP API函数....当程序要读写内存,注入进程时..这个时候API已经跳到了NP自己的地址空间..之后NP只需要结束目标程序即可..(如果是DLL..就释放该DLL)简单D很~!
那么如何破解呢?我们开发过驱动的应该知道..启动本身需要加载之后才可以起效....之后程序结束..驱动同时卸载...(如果需要可以参考WINIO的驱动加载部分)
这个过程大概需要1秒前后(好机器更快)..但是如果你的外挂是全局HOOK..这个时候比NP要快..已经自动挂接到全部的系统进程当中(前提是再游戏启动NP前启动外挂)...着就是NP最大的局限..也是NP无法攻克的局限..
为了兼容NP只有60%左右的驱动...
其实想挂掉NP.只要挂掉NP加载即可..但是3分钟检测如果是再程序内部被封装..这个时候你即便挂掉NP..3分钟检测依然会启动..游戏本身没什么用..
NP一般是在启动程序时的一个CALL..之后加载NP..只要耐心跟踪..首先确认哪个CALL LAOD NP..跟进入..再确认哪个CALL LOAD NP..依次..直到彻底NOP掉NP为止..
所以要看NP的版本来确定采用什么技术来挂掉NP~!
同时需要你的汇编非常好~!
以上是一些经验和技术理论..
