【问题标题】:Advanced Memory Editing/Function Calling高级内存编辑/函数调用
【发布时间】:2011-05-30 22:48:02
【问题描述】:

我对视频游戏的编码培训师(修改不同流程的价值的程序)非常感兴趣。我已经完成了简单的“上帝模式”和“无限金钱”的事情,但我想做的远不止这些。 (使用 WriteProcessMemory 进行简单编辑)

我正在开发的视频游戏的互联网上有函数的内存地址,其中一个函数类似于“CreateCar”,我想从外部程序调用该函数。

我的问题:如何在 C/C++ 中从外部进程调用函数,提供函数地址,使用进程句柄或其他方法。

PS:如果有人可以将我链接到可以帮助解决此类事情的工具(我有调试器,不需要更多..),那就太好了。

【问题讨论】:

    标签: c windows api memory editing


    【解决方案1】:

    你不能,至少不能安全。如果函数只有一个参数,您可以在该进程中的函数地址处创建一个新线程。如果它有更多,您可能需要注入一个 DLL 来执行此操作。

    但是这些解决方案都不是安全的,因为如果其他线程当前正在使用它们,创建一个新线程来运行该函数会破坏数据结构。在另一个进程中调用函数的唯一安全方法是以某种方式将调用插入到该进程中正确的位置,以便该程序在逻辑上是正确的。不要介意技术障碍(在任意位置插入挂钩);你需要确切地知道程序是如何工作的,这基本上意味着你有很多逆向工程在你面前(或者你需要获取源代码)。

    【讨论】:

    • 对在 google 中搜索的正确单词提供了一些见解(大声笑)。感谢您的回答。
    猜你喜欢
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多