登录  | 立即注册

游客您好!登录后享受更多精彩

查看: 20|回复: 0

ACE反作弊ring3下的绕过分析

[复制链接]

30

主题

1

回帖

39

积分

网站编辑

积分
39
发表于 昨天 13:15 | 显示全部楼层 |阅读模式
前言
研究仅供学习交流目的,请勿用于任何违法用途
前几个月就听说了mw在新版本上实装了ACE反作弊,上个月有空的时候去研究了一下,发现绕过方式出奇的简单,最近有空就分享一下分析过程吧
分析过程尝试
正常启动游戏,又是那个熟悉的蓝色UI
958990_NSRAMFJNSRUYRTK.jpg
刚开始先是尝试了很多ring3下常用的绕过方法,如删除驱动文件,关闭驱动句柄等等
但都会触发反作弊的奇奇怪怪的检测,然后触发异常,最后没办法也就只能去具体分析了
分析
对比更新前的目录,发现在更新之后多了一个minigameappbase.dll,IDA启动看两眼
看一眼调试信息就知道这个就是加载ACE的模块了,不过很明显有加壳什么的,也没有进一步探究了(太菜了)
958990_58HZBTNUUSR3JTB.jpg
转而去分析加载这个模块的minigameapp.exe,很明显他也加壳了,难道接下来只能硬刚ACE了吗
958990_NH8R94NR7YP42E3.jpg
nonono! 我们还可以去分析一下它在实装ACE前是什么样的
这不看不知道,一看吓一跳啊,原来这玩意就仅仅只是调用了libiworld.dll中的WinMainEntry导出函数而已...
顺便去瞟了一眼libiworld.dll,也没有发现什么可疑的东西
958990_ZBM3U3UNZ7FB939.jpg
结果看起来已经很明显了,那就直接把原来的minigameapp.exe给替换过来,这样不就既可以正常加载游戏,又不会加载ACE模块了
nice,理论存在,开始实践!
诶可恶,居然触发了游戏的文件校验自动更新了程序
958990_R2NMMDG2P8Y5EWP.jpg
接着就得去分析一下怎么绕过文件校验部分,因为minigameapp.exe是由MicroMiniNew.exe启动的,那么就分析一下看看他在启动前后者还做了些什么
跟了一下ReadFile的交叉引用,没有发现跟文件校验有关的代码,猜测是不是有调用其他的dll
于是看了一下LoadLibraryA的交叉引用,发现了一个有趣的东西,start.mnw是个什么东西?,很可疑,拉IDA里分析一下
958990_7RKBAN6S7GCVJPB.jpg
搜一下关键字符串,果然发现有东西,猜测一下文件的md5就是存在md5filesdata.dat里用作校验了
958990_RSXX9RXWNKUUEZN.jpg
看了一下根目录,有两个相关的文件,干脆两个一起改了吧
958990_EUMUE7EGK3HED7U.jpg
010Editor简单替换一下
958990_M5AS8WMTJHCF4UJ.jpg
现在重新启动游戏,右下角已经不会出现ACE加载的提示了,CE测试了一下内存读写,下断调试都是没有问题的了,成功绕过!
958990_AYVSYKV22QDRMPA.jpg
总结
一次有趣的研究,对于游戏这个ACE加载位置的设计有点难以置信,过于好绕过了,而且后面也没有心跳检测什么的,不加载ACE也不会导致游戏掉线,感觉...就像...把vmp当upx加一样,也希望相关游戏厂商能尽快修复该问题吧

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|断点社区 |网站地图

GMT+8, 2024-12-23 22:26 , Processed in 0.064538 second(s), 30 queries .

Powered by XiunoBBS

Copyright © 2001-2025, 断点社区.

快速回复 返回顶部 返回列表