我对视频游戏的编码培训师(修改不同流程价值的程序)非常感兴趣。我做过简单的“神模式”和“无限金钱”的事情,但我想做的不仅仅是这些。 (使用WriteProcessMemory进行简单编辑)
我正在处理的视频游戏的互联网上有函数的内存地址,其中一个函数就像“CreateCar”,我想从外部程序中调用该函数。
我的问题:如何使用进程句柄或其他方法提供函数地址,如何在C / C ++中调用外部进程的函数。
PS:如果有人可以将我链接到工具(我有调试器,不需要更多......),这有助于解决这类问题,那就太好了。答案 0 :(得分:1)
你不能,至少不安全。如果函数只有一个参数,则可以在该过程中在函数地址处创建新线程。如果它有更多,你可能想要注入一个DLL来做它。
但这些解决方案都不安全,因为创建一个新线程来运行该函数可以并且如果其他线程当前正在使用它们,则会破坏数据结构。在另一个进程中调用函数的唯一安全方法是以某种方式将调用插入该进程中的正确位置,以便在该逻辑上对该程序正确。别担心技术障碍(在任意位置插入挂钩);你需要确切知道程序是如何工作的,这基本上意味着你面前有很多逆向工程(或者你需要获得源代码)。