上下文
我是一家开发MMO的工作室的游戏开发人员。我们构建了一个权威的服务器,但仍遇到漏洞和自动化问题。我下载了用于破解我们游戏的主机器人,以确定它如何利用我们的服务器,以便我们可以相应地进行修补。
问题
我使用dotPeek反编译.exe以获取源文件但遇到了一个问题:我只获得了启动器的源文件。启动程序在运行时将核心程序集注入我们的应用程序。它通过将程序集作为十六进制数据存储在.resource文件中来实现。知道如何从这个.resource文件中获取源代码吗?
解决方案
感谢大家的帮助。我通过从.resource文件中提取二进制数据并将其写入.dll文件然后使用dotPeek对其进行反编译来获取源文件。有关详细信息,请参阅my solution。
答案 0 :(得分:2)
您是否不能使用GetManifestResourceStream
来获取嵌入数据?
答案 1 :(得分:1)
感谢大家的帮助 - 使用反编译器并在运行时读取二进制汇编数据并将其写入.dll文件的组合帮助我获取源代码:
我用dotPeek反编译发射器。在程序集资源管理器中,我然后右键单击程序集并选择Export to Project...
然后我在Visual Studio中打开项目并插入一行使用File.WriteAllBytes
来编写byte [](已经可以通过他们的应用程序获得,但这只是使用ResourceManager.GetObject
)将.resource文件中的二进制数据转换为.dll文件。然后我在dotPeek和wala中打开了.dll文件 - 源代码可见。
答案 2 :(得分:0)
我建议围绕这个问题进行设计,这是一种由服务器强制执行的软访问密码。您的问题的真实性是:.Net可以扩展。而不是围绕客户端进行“猫捉老鼠争夺”,考虑如何检测非人类活动,或如何随机要求仅限人类活动。
如果你的游戏值得关注,他们将克服你。他们很多:)