在不修改函数的情况下停止调用函数



标题可能看起来很混乱,但是,如何在不修改内存的情况下修改子例程?

我试图做的基本上是NOP子程序(有效地使其变得无用),而不修改内存或产生类似的东西。。。这可能吗?

如果您在Unix/Linux上,并且它在一个共享库中,请使用符号插入来提供一个您首先加载的无所事事的定义。(例如通过LD_PRELOAD)。

否则,如果你不能修改呼叫目标,我看不到除了修改每个呼叫站点之外的任何选项。

您将其标记为"内联程序集"。这是否意味着你可以重新编译整个程序?如果是,那么就这样做,并使用预处理器技巧将调用定义为无操作。

最新更新