我正在嘗試關閉正在使用Win32函數的Windows上的進程持有的互斥鎖。這可以通過使用procexp來完成,但我需要以編程方式執行而不使用procexp GUI。procexp如何關閉另一個進程持有的互斥鎖?
方法一: 我試過注射用EasyHook一個dll到PROCESSS,然後試圖從注入線程執行以下操作: - OpenMutex
- ReleaseMutex 它給了我大概ERROR_NOT_OWNER錯誤,因爲該版本被稱爲上與調用AcquireMutex的線程不同。
方法2: 注入dll之後,我嘗試使用mHook掛接CreateMutex。掛鉤的CreateMutex只是調用原始的CreateMutex。但是這隻會使應用程序崩潰。
我可以使用procexp關閉互斥鎖,但我需要以編程方式執行它。 procexp如何做到這一點?如何在沒有任何內核模式代碼的情況下以編程方式完成?
ReleaseMutex不是它的關閉方法。你需要調用CloseHandle。你想解鎖一個互斥鎖或關閉它的句柄嗎? Process Explorer只能關閉它。 – 2013-04-30 04:43:43
這是一個由進程持有的全局互斥鎖。關閉它會讓其他進程能夠獲得它嗎? – pkumar0 2013-04-30 05:37:27
從文檔中不能確定,但我期望WaitForSingleObject成功,但錯誤代碼爲WAIT_ABANDONED。如果這不起作用,我會嘗試使用內核模式驅動程序;-) – 2013-04-30 05:47:01