多人游戏(例如:Tibia)的作弊是如何从客户端(本例中为C++)访问信息的
How cheats made for multiplayer games (ex: Tibia) accesses information from the client (in this case, C++)?
Tibia是一款通过C++客户端运行的在线多人游戏(图片)。有一些作弊工具可以改变你的字符的外观,在你的生命值达到某个点时使用恢复项目,甚至在没有美感的情况下描绘地图(图像)。
这些软件如何访问Tibia使用的内部存储器,以及如何确定特定信息存储在哪里?
如您所知,应用程序的所有指令/数据都保存在内存中的特定偏移量处,通常由编译器设置。使用调试器/反汇编程序(例如ollydbg)或内存"搜索程序"(例如CheatEngine),您可以查看这些。一个简单的过程是在内存中搜索给定的值(例如ingame health),然后通过游戏动态改变它,并重复搜索,直到你有了问题值的内存地址,它通常是静态的,即:在可执行文件更新之前不会改变。(事实上,像ASLR这样的技术被用来随机化,但可以绕过)
现在,使用获取的地址,您可以生成一个处理程序,通过使用Windows API执行鼠标单击/击键,或者通过调用ingame函数来处理它,这些地址和参数也可以通过调试找到。(例如:如果health<50%,调用此函数)
另一种方法是使用一个代理,所有流量都通过该代理进行路由,您可以注入传出的数据包来执行操作,或者解析传入的数据包以推断条件。
很明显,我不能提供示例代码,但你可以从阅读逆向工程基础知识和包优化开始,通过解决破解问题进行练习,并遵循CheatEngine论坛上的单人游戏作弊教程。
你也可以查看这个聊天日志,了解向非程序员解释的僵尸和对策:http://pastebin.com/6WWif7gK(起始时间:20)
相关文章:
- "unknown ca"自生成的 CA、证书和客户端/服务器
- 如何将函数集合传递给客户端类,以便将它们当作客户端类本身的成员使用
- 使用调试/崩溃报告将应用程序部署到客户端
- 如何在本地机器上运行c++和javascript客户端代码(hackerbank风格)
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 从服务器传输到客户端的消息不会出现
- OpenSSL TLS服务器-使用客户端证书白名单
- 多人游戏(例如:Tibia)的作弊是如何从客户端(本例中为C++)访问信息的
- CORBA客户端/服务器应用程序,从服务器获取信息(空值)
- 如何从任意客户端查找 DHCP 租约信息
- ASIO :服务器如何在侦听客户端的同时主动向客户端发送信息
- Java客户端和C++服务器有时会接收全部信息
- 从数据库中选择客户端的信息并存储到向量中
- 多播大数据包包含多个客户端的所有信息,而单个数据包则包含目标客户端的信息
- DHCP客户端信息请求
- 在服务器应用程序中以地图形式存储客户端信息的设计模式建议
- 如何获取有关客户端证书的信息
- 用于保存客户端信息的安全数据结构
- 从Arduino以太网客户端Get中删除标头信息
- TFTP客户端没有从服务器接收到信息(发送到错误的端口)