4
A
回答
6
如果您知道存儲環境的虛擬地址,則可以使用OpenProcess
和ReadProcessMemory
來讀取其他進程以外的環境。但是,要查找虛擬地址,您需要在其中一個進程的線程的Thread Information Block四處尋找。
爲了達到這個目的,您需要致電SuspendThread()
後致電GetThreadContext()
。但爲了調用這些線程,您需要一個線程句柄,您可以通過調用CreateToolhelp32Snapshot
和TH32CS_SNAPTHREAD
標誌來創建進程的快照,Thread32First
以獲取進程中第一個線程的線程ID,並獲得OpenThread
線程的句柄。
1
使用工具:
您可以使用Process Explorer。
右鍵單擊該進程,去屬性...並且有一個環境選項卡,其中列出了該進程的環境變量。
隨着代碼:
似乎沒有成爲一個Win32 API調用直接做到這一點,但顯然你擺弄的GetProcessStrings
結果以訪問這些信息。 This CodeProject article有一些代碼讓你開始。
+0
謝謝,但應該澄清尋找一種方法來做到這一點從代碼... – jalex 2009-07-29 20:11:20
相關問題
- 1. 檢查環境變量
- 2. Linux系統:設置環境變量與變量另一個環境的部分
- 3. 以編程方式獲取另一個進程的環境變量?
- 4. 有沒有一種方法可以檢查活動進程的環境變量?
- 5. 重構檢查環境變量
- 6. 基於另一個變量回應環境變量
- 7. 使用批處理文件中的另一個環境變量的一部分設置環境變量
- 8. 創建一個進程而不繼承父進程的環境變量
- 9. 過程的環境變量
- 10. 在Windows上查看進程的環境變量
- 11. 一個子進程能夠通過環境變量設置回父進程
- 12. 將相同的環境變量傳遞給一行中的兩個進程
- 13. 在if語句中將DOS環境變量設置爲另一個環境變量
- 14. 環境變量
- 15. 環境變量
- 16. 環境變量
- 17. 環境變量
- 18. 檢索QProcess的環境變量
- 19. 檢索在PHP的環境變量
- 20. 訪問紅寶石中另一臺機器的環境變量
- 21. 在Cygwin中查看Windows環境變量
- 22. Docker中的環境變量
- 23. TypeScript中的環境變量
- 24. Tomcat中的環境變量
- 25. 做一個環境變量生存ENDLOCAL
- 26. OSX導出的環境變量未在子進程中繼承
- 27. 讀取c中子進程設置的環境變量#
- 28. 從C#中的進程讀取環境變量
- 29. 在函數中創建一個變量 - 多線程環境
- 30. Powershell檢查什麼環境變量已經改變
+1偉大的答案。你仍然需要仔細研究一下以找到線程上下文結構的定義。新臺幣DDK和葡萄酒是這種事情的好地方。看起來也許這是從結構開始的第8個指針? – 2009-07-30 00:30:46