簡體   English   中英

閱讀std :: map <string, string> 使用ReadProcessMemory

[英]Read std::map<string, string> using ReadProcessMemory

我的意圖是從一個進程(間諜)讀取另一個進程(目標)的變量值。

我從目標進程中的大小為2的std :: map開始。

在間諜過程中,請執行以下步驟:

  • 將UAC執行級別設置為“ requireAdministrator(/ level ='requireAdministrator')”
  • 啟用了SE_DEBUG_NAME
  • 打開目標流程
  • 使用的ReadProcessMemory

並成功閱讀地圖。 我確認讀取的地圖大小為2。但是,無法評估地圖的內容。 觀察每個字符串鍵/值對,以評估監視窗口中的錯誤。

為了確認我的步驟是否正確,我嘗試讀取整數變量而不是映射。 整數值可以成功檢索。

有什么建議可以幫助您檢索地圖的全部內容嗎?

映射對象除節點計數外,還包含指向節點的指針。 您還需要在這些指針上使用ReadProcessMemory 而且,如果您將節點內容讀取到進程地址空間中的其他地址,則需要更新節點指針。

如果您同時擁有這兩個應用程序,是否可以使用共享內存(CreateFileMapping / OpenFileMapping和MapViewOfFile)以更簡單的方式執行此操作? 然后,您可以使用特定於會話的互斥鎖來保護它,序列化映射,將其寫入共享內存,然后在更改時發出特定於會話的事件的信號。

暫無
暫無

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

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