多人游戏(例如:Tibia)的作弊是如何从客户端(本例中为C++)访问信息的

How cheats made for multiplayer games (ex: Tibia) accesses information from the client (in this case, C++)?

本文关键字:客户端 信息 访问 C++ 例如 游戏 Tibia      更新时间:2023-10-16

Tibia是一款通过C++客户端运行的在线多人游戏(图片)。有一些作弊工具可以改变你的字符的外观,在你的生命值达到某个点时使用恢复项目,甚至在没有美感的情况下描绘地图(图像)。

这些软件如何访问Tibia使用的内部存储器,以及如何确定特定信息存储在哪里?

如您所知,应用程序的所有指令/数据都保存在内存中的特定偏移量处,通常由编译器设置。使用调试器/反汇编程序(例如ollydbg)或内存"搜索程序"(例如CheatEngine),您可以查看这些。一个简单的过程是在内存中搜索给定的值(例如ingame health),然后通过游戏动态改变它,并重复搜索,直到你有了问题值的内存地址,它通常是静态的,即:在可执行文件更新之前不会改变。(事实上,像ASLR这样的技术被用来随机化,但可以绕过)

现在,使用获取的地址,您可以生成一个处理程序,通过使用Windows API执行鼠标单击/击键,或者通过调用ingame函数来处理它,这些地址和参数也可以通过调试找到。(例如:如果health<50%,调用此函数)

另一种方法是使用一个代理,所有流量都通过该代理进行路由,您可以注入传出的数据包来执行操作,或者解析传入的数据包以推断条件。

很明显,我不能提供示例代码,但你可以从阅读逆向工程基础知识和包优化开始,通过解决破解问题进行练习,并遵循CheatEngine论坛上的单人游戏作弊教程。

你也可以查看这个聊天日志,了解向非程序员解释的僵尸和对策:http://pastebin.com/6WWif7gK(起始时间:20)