2010-08-17 15 views
2

我想通過另一個進程掃描當前運行的本機應用程序的整個堆。例如,我想知道在這個進程內存中的所有ASCII序列「測試」的實例後面是什麼(在這種情況下,我將掃描「測試」並繼續閱讀)。如何掃描另一個進程內存以查找特定字符串後面的內容?

我試圖谷歌的更多信息,但沒有找到太多:我發現ReadProcessMemory看起來很有趣,但我怎麼知道一個進程分配的內存地址?

回答

6

嘗試VirtualQueryEx

如果您發現在其他進程中訪問大量內存,請考慮使用CreateRemoveThreadsample code)。這將允許您將自己的DLL注入其他進程並直接在那裏運行代碼。一旦在另一個進程中運行代碼,就可以正常訪問內存,而無需使用ReadProcessMemory。 (您仍然需要VirtualQuery來確定進程的內存佈局。)

+0

是的,獲勝者。爲「測試」找到多個匹配的機率很好。 – 2010-08-17 17:33:35

相關問題