作者yoco315 (眠月)
站內Programming
標題Win32下讀取其他程式的記憶體
時間Wed Nov 22 01:16:21 2006
如果我想要取得某個程式的記憶體內容,要怎麼作?
1. 使用 FindWindow ( 視窗標題 ) 取得 window handle
2. 利用 GetWindowThreadProcessID ( windows handle ) 取得該視窗的 process ID
3. 使用 OpenProcess ( process ID ) 取得其他程式的 process handle
4. 使用 ReadProcessMemory ( process handle ) 讀取其他程式的記憶體
想要寫入的話也可以使用 WriteProcessMemory ()
讀取或寫入完成以後
5. 請用 CloseHandle ( process handle ) 關閉 handle 以避免資源遺漏
函數與參數的細節說明請自行參照 MSDN
--
To iterate is human, to recurse is divine.
遞迴只應天上有, 凡人該當用迴圈. L. Peter Deutsch
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.31.169.164
推 UNARYvvv:不過就算 administrator 也不能直接讀寫 61.228.208.88 11/22 01:19
→ UNARYvvv:某些 process, 還必須先 adjust process 61.228.208.88 11/22 01:21
→ UNARYvvv:token 才行,例如提昇至 debug privilege 61.228.208.88 11/22 01:21
推 yoco315:感謝補充 140.114.78.32 11/22 10:01
推 cole945:問問~ 所以GameMaster或其他類似的程式 220.139.178.30 11/22 15:31
→ cole945:就是用這種方法達成的嗎 .__.? 感謝~ 220.139.178.30 11/22 15:32
推 yoco315:應該是 @"@ 我也不知道還有沒有其他方法 61.31.172.233 11/23 02:05