无根据的函数调用

Unwarranted Function Call

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

inline void __cdecl Test( )
{ }

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

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

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