1

一个新发布的游戏已经提供了服务器文件,这些文件目前没有配置 IP 地址/端口以进行绑定的选项。不幸的是,这限制了每台机器运行多个应用程序实例的能力,因为它被硬编码到端口“12345”。

许多年前,我使用 c++ 和十六进制编辑器来更改这样的硬编码值,虽然这些知识早已被遗忘,是否可以通过编写辅助应用程序在运行时更改该值来改进这一点?

4

1 回答 1

1

您仍然可以使用十六进制编辑器来更改硬编码常量。

另一种方法是使用任何体面的操作系统提供的调试 api。在 Windows 中,它是 WriteProcessMemory 函数。

它看起来如下方式 - 启动应用程序在调试模式下运行修改后的应用程序。更改需要保持不变,然后运行它。

当然,修改后的应用程序可能会使用反调试技术——在这种情况下,解决方案并非易事。

在这两种情况下,您都必须知道该值在内存(可执行文件)中的位置。这种方式必须提供一些逆向工程。

请注意,在最后一个问题编辑之后:所有这些答案都是针对本机可执行文件的。对于托管代码,它可能更复杂。

于 2013-08-07T06:07:11.460 回答