首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问其他程序并改变其行为(主要是关于游戏的非官方多人mod)

访问其他程序并改变其行为(主要是关于游戏的非官方多人mod)
EN

Stack Overflow用户
提问于 2013-04-04 01:19:21
回答 1查看 185关注 0票数 3

所以我最近学习了一些逆向工程,我真的很想更好地了解像sa-mpmafia 2 multiplayer这样的东西是如何实际制造的。当我连接到sa-mp中的服务器时,它启动了游戏。它是否在这一点上注入了dll或其他东西来控制游戏的流程,并从城市中删除所有的npc等?我并不是真的问什么具体的东西,而只是问一个想法。我看了几个类似项目的source codes,但没有真正理解它是如何开始的。如果有人能对这些事情有所了解,我将不胜感激。

自从我发现了这些mods后,这真的是我感兴趣的事情,所以我期待着收到你的回复。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-03 17:39:02

在开发这样的软件时,需要完成的一大部分工作是逆向工程。

这包括弄清楚游戏客户端是如何工作的,以及您将如何使用它执行任务。通常要查找的内容可能包括:

  • 保存游戏所有实体的数据结构/容器
  • 重要类的结构,您需要从中读取信息(位置,健康,弹药...)
  • 控制客户端的方式。这从一些简单的东西开始,比如模拟按键,调用游戏的控制函数,或者直接操纵网络流量。

之后,与目标进程交互的首选方式是编写动态库(DLL)。这样做的主要好处是,您可以与目标共享虚拟内存,因此可以取消引用指针,就像拥有所有数据一样。你可以直接读写内存,调用函数,绕道函数等。

如果你对客户端有足够的了解,你可以修改到你的想象力的极限。

在我看来,你链接的mod也创建了自己的服务器。服务器将只是一个常规的游戏服务器(使用您收集的信息构建),您可以完全控制它。客户端需要在DLL内部实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15793908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档