好的,我正在編寫一個旨在枚舉給定進程中的線程的應用程序,就像Process Explorer一樣。我很清楚,這可能會打破不同的Windows版本,因爲它依賴於「非官方」的API,如NtQuerySystemInformation
,我完全沒有問題。如何在Process Explorer中獲取進程開始地址的「名稱」?
我已經有了獲得給定線程的基地址的代碼。現在我想把它變成類似於進程管理器所做的事情,即「ntdll.dll!EtwDeliverDataBlock + 0x453」。我實際上並不需要函數名稱或偏移量,只是模塊名稱。
我該怎麼做?
嗯..這可能工作。有沒有辦法做到這一點,我不必實際打開目標進程的句柄? (例如,不能那樣做到系統進程) – 2010-12-13 20:36:56
@比利:我不確定。我相信Process Explorer實際上使用內核模式驅動程序來實現它的某些功能,所以也許這是其中的一種。 – 2010-12-13 22:07:06
通過調用類SystemModuleInformation的NtQuerySystemInformation來解決它 - 我會盡我所能與您聯繫。 – 2010-12-15 02:18:23