1

所以我想做的很简单;我想将一个函数写入另一个进程的内存并执行它。我所做的是获取函数的大小,并使用 WriteProcessMemory 来执行此操作。我已经成功创建了一个线程来运行这个函数,并使用作弊引擎的调试功能确认。该函数如下所示:

inline void __cdecl Test( )
{ }

看起来很简单。它不应该依赖任何需要重新定位的东西,所以它应该可以正常工作。它是内联的,因为我在标题中定义了它,如果相关的话。虽然这个函数什么都不做,但这就是作弊引擎中发生的事情:

奇怪的是它正在复制一个字符串,但更重要的是它正在调用一个函数?由于这个随机函数调用正在发生,程序崩溃,因为地址没有重新定位以匹配函数在新进程中的位置。所以,我的问题是:为什么它会调用一个函数,我怎样才能阻止这种情况发生?

4

1 回答 1

0

所以基本上,调试模式是导致此问题的原因,并且不会在发布中发生。

于 2019-02-15T03:28:03.993 回答