本帖最后由 360_冰 于 2013-8-23 15:45 编辑
PnkBstr是反作弊软件PunkBuster在操作系统中的系统服务【简称PB】,最早出现在战地2142的PunkBuster中,其包含为PnkBstrA、PnkBstrB两个服务,三个文件:PnkBstrA.exe(C:\WINDOWS\system32)、PnkBstrB.exe(C:\WINDOWS\system32)、PnkBstrK.sys(C:\WINDOWS\system32\drivers),同时这三个文件也存在于游戏目录下的PB文件夹中,其中真正起反作弊作用的是PnkBstrB,但PnkBstrB依赖和挂钩于于游戏,也就是说,当游戏未启动时,PnkBstrB服务不会启动,而游戏一旦启动,PnkBstrB也随之启动。 PunkBuster在系统服务中可以选择关闭,但关闭后不能进入需验证PunkBuster的服务器,否者会被服务器踢出!
有游戏玩家、淘宝卖家宣传开启该游戏的时候务必要关闭防护类软件,不少将矛头指向360安全卫士,以免被踢出游戏,不过经仔细研究后发现,不管是否有开启防护类软件,都存在被踢出的可能,而且被踢出的可能性上看,也没有必要的关联。各位看官请看调查后的真相: PnkBstrA监听了本地UDP端口(PunkBuster安装后会自行选取), 只要任何人向这个端口发送UDP协议”u”开头的数据包,就会导致PnkBstrA去删除PnkBstrB服务项。该代码写的之奇葩, 令人发指!
细节: PnkBstrA 和 PnkBstrB是这个反作弊程序的两个服务项 删除PnkBstrB的动作是PnkBstrA发起的,逆了下PnkBstrA的代码 PnkBstrA会读取注册表Even Balance\PnkBstrA Port注册表值来决定自己监听哪个端口 读取后监听,本地UDP端口(LocalHost), 当收到以”u”开头的UDP包时, 会直接卸载PnkBstrB的服务项, 没有任何校验。
该反外挂会提示多种错误, 比如: “No Packet Flow” //这通常是因为国内网络环境不好. 反作弊程序通讯数据包丢失导致.可以连接国外VPN解决. “PnkBstrB.exe initialization failed” //这通常是因为PnkBstrB.exe服务项被删除,(PnkBstrA.exe收到UDP”u” 开头的包就会自己删除PnkBstrB.exe). 可以重新安装Punkbuster解决. //该问题没法规避, 本地端口收到”u”开头UDP包不可控
至此,真相似乎变得明了了,PunkBuster这段几乎不带筛选的机制,会导致很多没有作弊的玩家被踢出游戏。 出于对游戏的热爱,请广大玩家的亲们分享玩战地游戏的经验,如何突破Punkbuster的限制呢?
|
评论
直达楼层