我正在尝试使用 Win32 函数关闭由 Windows 上的进程持有的互斥锁。这可以使用 procexp 完成,但我需要在不使用 procexp GUI 的情况下以编程方式完成。
方法 1:
我尝试使用 EasyHook 将 dll 注入进程,然后从注入的线程尝试以下操作: - OpenMutex
- ReleaseMutex 它给了我 ERROR_NOT_OWNER 错误,可能是因为在与调用 AcquireMutex 的线程不同的线程上调用了释放。
方法2: 注入dll后,我尝试使用mHook钩住CreateMutex。挂钩的 CreateMutex 只是回调了原来的 CreateMutex。但这只会使应用程序崩溃。
我可以使用 procexp 来关闭互斥体,但我需要以编程方式进行。procexp 是如何做到的?如何在没有任何内核模式代码的情况下以编程方式完成?