簡體   English   中英

為什么將ReadProcessMemory()與當前進程的句柄一起使用?

[英]Why use ReadProcessMemory() with handle to current process?

使用NtQueryInformationProcess ,可以通過讀取返回的PROCESS_BASIC_INFORMATION類型的結構中的PebBaseAddress字段來獲取當前的進程基址。

我已經看到了使用ReadProcessMemory()相對於當前進程的基址讀取內存的代碼,因為前幾個字節包含一些指針,這些指針揭示了詳細的進程信息。 我還需要獲取一些此類信息, 研究表明如何實現此目的。

但是,對於為什么要從當前進程讀取內存,為什么需要ReadProcessMemory() ,我仍然感到困惑。 不能僅取消引用相對於過程庫的指針,還是會/可能導致分段錯誤? 是否持有關於流程基礎的指針?

ReadProcessMemory將檢查您自己進程中的地址范圍是否有效,並在出現問題而不是崩潰的情況下返回錯誤(ERROR_PARTIAL_COPY)。

除此之外,我沒有理由。 如果確定指針正確,則使用memcpy很好(並且速度更快)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM