有什麼方法可以確定哪個進程調用了Win32函數。其實我需要掛鉤幾個函數,另外我還需要確定哪個進程調用了這個函數。我完成了使用MS Detours的鉤子函數,如FindNextFile()
和winsock函數send()
和,但問題在於稍後的部分,即確定調用者進程。請幫助。確定Win32函數的調用者進程
1
A
回答
2
您的掛鉤將在調用過程的上下文中運行,因此它可能會簡單地調用GetCurrentProcessId或返回您需要了解過程的類似函數。
+0
是的offracourse阿德里安!我進一步研究後得出了這個想法。實際上,我的完整解決方案在於,我想知道一個進程何時調用FindNextFile()。這可能通過以下方式發生:(i)「設置全系統掛鉤」或(ii)「鉤住所有正在運行的進程」。那麼你能告訴我哪一個更好/更容易,以及如何在這種情況下知道調用者進程。 – Faheem 2013-05-15 06:06:29
+0
@Faheem:我不明白你的後續問題,可能是因爲我從未與Detours合作過。你應該看看你的新問題是否已經解決堆棧溢出問題。如果沒有,請發起一個新問題。 – 2013-05-15 14:43:49
相關問題
- 1. Win32確定進程ID
- 2. 如何在進程讀取進程的內存時調用函數 - Win32 API
- 3. Xcode:在調試中確定xcode中函數的調用者
- 4. 從Julia調用Win32函數
- 5. Perl Win32 :: API()調用()函數
- 6. 如何確定調用者函數,文件和類構造函數的行?
- 7. 如何從Win32進程調用.NET DLL?
- 8. Win32 API中未確定的進度條
- 9. 獲取進程調用者
- 10. 中斷調用函數的進程popen
- 11. 如何確定特定win32 API調用所需的Windows庫?
- 12. Win32 Api函數的調試中斷
- 13. 無法確定調用者的應用程序身份錯誤
- 14. 確定用戶控制調用者
- 15. 如何從內聯彙編程序調用Win32 API函數?
- 16. 單線程C++函數調用中的undebuggable非確定性heisenbug
- 17. 確定哪些函數被調用
- 18. 在JavaScript函數中確定調用div
- 19. Win32/pthreads上的volatile正確性線程函數
- 20. P /調用Win32 DLL的正確版本?
- 21. 從子進程調用shell腳本中定義的函數
- 22. 如何確定pythondecorator函數中的被調用者詳細信息?
- 23. 在matlab中調用一個函數,並讓調用者在運行時確定輸出參數的數量
- 24. 從子進程調用bash函數
- 25. 確定存儲過程或觸發器內的調用者
- 26. OpenFileDialog的Win32函數?
- 27. WIN32標識進程
- 28. 確定通用函數調用哪個函數
- 29. 從被調用者返回(終止)調用者函數
- 30. PHP - 確定來自鏈式函數調用的最後一個函數調用
如果您已經掛上了例如send(),你必須在send_handler()中安裝一個名爲send_handler()或類似的東西的鉤子處理程序,你可以調用GetModuleFileName()來獲得可執行映像名稱,或GetCurrentProcessId()來獲得主機進程的PID。我懷疑這是否真的是你在這裏問的。 – xwlan 2013-05-14 14:22:13
那麼如果我能夠調用'GetCurrentProcessId()'給我Process ID,那麼我也可以獲得ProcessName。這完全解決了我的問題。但是,請您詳細介紹一下鉤子句柄,即'send_handler()'以及如何使用它。 – Faheem 2013-05-14 14:34:01
我記得有很多樣本的走彎船路,有一個演示如何掛接winsock的示例,您可以在send_handler()中添加GetCurrentProcessId()(繞道程序可能有不同的名稱)。 – xwlan 2013-05-14 14:41:32