如何重写可执行文件的汇编线程安全?

时间:2019-09-17 08:09:04

标签: c++ multithreading assembly detours

我的意图是使以线程安全的方式重写功能启动程序集(.text)成为可能。问题是,我不能确定其他线程不在函数重写的开始时。我写了该函数的前5个字节。在整个过程生命周期中都执行此操作。

我对此有几个想法:

  1. 暂停其他线程。不错。但这仅在Windows上可以。在linux上没有这样的事情。您必须使用信号来实现它,这使操作变得复杂并且难以调试。由于操作频繁,因此也会严重损害性能。
  2. 使用线程优先级。写入线程被授予较高的优先级,因此其他线程应等待它。据我了解,它只能在单核平台上提供帮助。

我的问题是还有其他方法可以这样做。

0 个答案:

没有答案