[原創](2010.02.07更新)忙裏偷閑中寫的一個係統物理/虛擬內存查看器。
[原創]忙裏偷閑中寫的一個係統物理/虛擬地址內容查看器
都是老技術,沒啥新意。為了方便我在調試中要了解虛擬或物理內存的情況編寫的,懶得裝WinDbg
的情況下比較方便。程序在gccNTDrvFrame(我以前寫的gcc下的NT驅動通用開發包)的基礎上擴展,
並且由於直接使用微軟“特有”的__try,__except功能方便些,故和VC 2008生成的obj一起連接,此外使用了MASM32V10.0寫了關分頁傳送數據部分的代碼。GUI全部用SDK編寫,沒有用任何圖形庫。所以程序體積較小(壓縮後58KB)。
程序可以在 win2k(SP4)、winXP(SP3)、win2k3(SP1)、win7下使用(因為手上沒有vista
和win2k8的係統故無法測試。)但在win7下不要使用關分頁機製讀寫物理內存的功能,否則必藍!
雖然我作了較多內核中的有效性檢查,但是仍不敢保證會在某些情況下造成係統崩潰,所以請盡量不要
在關鍵機器上使用,造成的損失概不負責哦。:)
程序運行要擁有SE_DEBUG特權和安裝驅動權限,在vista或win7下要"以管理員身份運行"。
還是那句老話:本人以人格擔保其加載的驅動程序絕對不含有木馬、病毒之類的無聊玩意,請各位
放心下載使用,如有bug請跟帖反饋,謝謝。
上圖文字看不清楚,再介紹下,我使用了多種方法來讀寫虛擬或物理地址:
VirtualMem :表示操作的是進程虛擬地址。
CR3 Direct : 通過直接設置CR3寄存器讀寫進程虛擬地址。
如果沒有選擇該項表示以 常規的方法KeStackAttachProcess讀寫進程
虛擬地址。 (虛擬地址讀寫前,要選擇一個進程。),
PhysicalMem:表示操作的是物理地址
CP : 以關分頁的方法讀寫物理地址,一次性最大讀取/寫入2048字節。
PM R/W LITE : 直接構造PDE的方法讀寫物理地址,一次性最大讀
取/寫入4096字節。
如果沒有選擇以上2項,則以常規方式讀寫物理地址MmMapIoSpace。
程序暫時做了限製,寫入大小一次隻能4字節,但函數接口上不止這麼多。
NEW :
第3次更新2010.02.07:
增加了對以下OS的兼容性:
windows 2000(SP4) , windows XP(SP3) ,windows 2003(SP1),
windows 7,由於沒有環境故沒有測試windows vista 和
windows 2008。
mmguy v1.2.9.0 下載地址 :https://hopy.bokee.com/inc/mmguy.7z (50KB)
最後更新:2017-04-02 04:01:44