情人节,我跟对战平台谈恋爱,妖妖,vs,浩方

       13号晚结束,我打了几盘dota,迎来了情人节,没什么特别的。我正想着利用windows的权限来绕过平台的检测来作弊。

       基本思路是这样子的,既然我用非管理员的身份运行自己写的全图挂,会因为并非所有被引用的特权都指派给呼叫方而导致调用AdjustTokenPrivileges函数失败,从而导致提权失败。于是我想到了平台是怎么检测作弊的呢?应该是调用readprocessmemory(网上有人还提到ntreadprocessmemory)函数来检测内存数据是否被修改了,即读内存。那么我是否可以限制平台的权限导致平台连读内存的权限都没有。

       刚开始我有点天真,以为非管理员身份本来就没有读内存的权限。于是认为平台是这么检测的:如果我(平台)没有权限读内存,那么你玩家都没有权限修改内存。如果这个前提成立的话,那么只要我作弊程序的权限比平台高的话,就可以作弊了。于是我找到了用户用另一个用户身份打开程序的方法,在命令行用runas命令,当然需要密码。结果真的可以,我用普通用户(该用户没有分配调试程序的权限)通过管理官身份打开了全图挂,并且测试了单机可以修改内存。

       于是我去测试平台,刚开始在vs测试,可以运行一定的时间,但还是被检测出来了。11很快就检测出来了。浩方还没试。

       于是我想到应该是平台的权限还不够低。继续找降低进程的权限的方法。记得我在《windows核心编程》看过有这方面的知识,貌似通过作业的方法,但具体忘了。开始我以为通过CreateProcess,只要传正确的参数就可以降低进程的程序了,但貌似没有这样的方法。找了很久,刚开始发现一个叫DropMYRight的国外人写的程序可以降低进程的程序。后来又在msdn发现两个http://msdn.microsoft.com/en-us/library/bb625960.aspx

http://support.microsoft.com/kb/2278183

好的链接。其实这方面的知识很少,搜索关键词应该为“process low integrity”。

       此时我已经很困了,急着想睡觉。刚开始时测试vs的,但发现压根通过另一个程序打开vs不成功。于是想到测试浩方。于是用上面链接下载的程序,修改了一下源代码,打开浩方。试了一盘,竟然可以。于是满意的去睡觉了。

       第二天就是14号白天。我又故意试了直接打开浩方去测试,当然是会判作弊。不过浩方的惩罚不是立刻提出,而是禁止一定时间内不能打游戏。

       于是我改测vs,奇怪竟然这次可以打开了,只不过弹出了几个对话框说是,不能访问,真的权限太低了。不过点了确定,vs还是可以正常运行,悲剧的是进入房间后,没有了启动游戏的按钮,真的是权限太低了。或者是vs预测过这情况或者是有黑客这样作弊被vs发现了,于是vs有了这方面的防范措施。

       再测试浩方,降低权限后打开。我满怀期待的,因为昨晚这样成功了,现在不过是再次验证一下。结果是悲剧,被罚了24小时内不能打。也许是我在游戏里太高调了,公然跟大家说我在作弊,也许是浩方昨晚作了补丁(但貌似起床后没更新程序),也许是昨晚我幸运。

       最后又测试11,当然不行啊。

       好绝望,自己还是太年轻了啊。

       难道就没有进程的权限低到连其他进程读内存的权限都没有?还是平台判定了如果本身进程的权限不是预测的(从ProcessExplorer看到的是Medium,一般程序都是这个),就判定玩家作弊?

       哎,我败了。

       情人节,上演了一场3个女人和一个男人的故事,结果男人被这3个女生甩了。

       对了,我还跟妖妖的客服谈了两次,可能是不同的人。我问她为什么判我作弊了啊,两次都说可能是中毒了啊,杀毒后重启。还有什么自带的改键啊。也许客服的都是没有什么技术水平的,都是来忽悠人的,或者妖妖知道黑客们会从客服口中套话从而有所防范,结果是没套出什么话来。

       还发现了这个,原来11平台加载的不是游戏的dll而是自己的dll,为何有两个呢,可能一个用来加载一个用来做副本作为恢复数据使用。验证:修改游戏的dll(可以看小地图),11启动游戏后,没有效果,也不算作弊,压根就没加载我修改过那个dll。浩方是加载原来的game.dll的,因为我修改过得game.dll在游戏中其效果了。vs文件夹里有game.dll,估计也是加载自己的,但没验证。

       

你可能感兴趣的:(游戏,windows,测试,dll,平台,作业)