日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

7 《Undocumented Windows 2000 Secrets》翻譯 --- 第四章

第四章 探索 Windows 2000 的內(nèi)存管理機(jī)制
翻譯: Kendiv( fcczj@263.net)
更新: Sunday, February 17, 2005
聲明:轉(zhuǎn)載請(qǐng)注明出處 , 并保證文章的完整性 , 本人保留譯文的所有權(quán)利 。
內(nèi)存 Dump 工具 ---- 本書示例程序
現(xiàn)在你已經(jīng)學(xué)完了復(fù)雜和讓人困惑的內(nèi)存 Spy 設(shè)備的 IOCTL 函數(shù)的代碼 , 你可能想看這些函數(shù)運(yùn)行起來是什么樣子 。因此 , 我創(chuàng)建了一個(gè)控制臺(tái)模式的工具 , 名為:“ SBS Windows 2000 Memory Spy ” , 該工具會(huì)加載 Spy 驅(qū)動(dòng)程序 , 根據(jù)命令行出入的參數(shù) , 它會(huì)調(diào)用多個(gè) IOCTL 函數(shù) 。該程序的可執(zhí)行文件為: w2k_mem.exe , 其源代碼位于本書光盤的 srcw2k_mem 目錄下 。
命令行格式
你可以從光盤中運(yùn)行內(nèi)存 Spy 工具: d:binw2k_mem.exe , 這里 d: 應(yīng)該由你的 CD-ROM 盤符代替 。如果無參數(shù)啟動(dòng) w2k_mem.exe , 將會(huì)列出冗長(zhǎng)的命令信息 , 如 示列 4-1 所示 。W2k_mem.exe 基本的命令體系是:一個(gè)命令包含一個(gè)或多個(gè)數(shù)據(jù)請(qǐng)求 , 每個(gè)命令都至少提供一個(gè)線性基址 , 內(nèi)存 Dump 將從該地址開始 。如果你愿意還可指定內(nèi)存塊的大小 , 不過這是可選的 , 內(nèi)存塊的默認(rèn)大小是 256。命令中的內(nèi)存大小必須以“ # ”開始 ??赏ㄟ^增加多個(gè)選項(xiàng)來改變命令的默認(rèn)行為 。一個(gè)選項(xiàng)包括一個(gè)單字符的選項(xiàng) ID 和一個(gè)“”或“ - ”前綴 ?!啊被颉?- ”表示允許或禁止該選項(xiàng) 。默認(rèn)情況下 , 所有選項(xiàng)都是允許的 。
// w2k_mem.exe
// SBS Windows 2000 Memory Spy V1.00
// 08-27-2000 Sven B. Schreiber
// sbs@orgon.com
Usage: w2k_mem { { [ option|-option] [/] } [#[[0]x]] [[0]x] }
specifIEs a module to be loaded into memory.
Use thex/-x switch to enable/disable its startup code.
Ifis missing, the default size is 256 bytes.
Display address options (mutually exclusive):
z -z zero-based display on / OFF
r -r physical RAM addresses on / OFF
Display mode options (mutually exclusive):
w -w Word data formatting on / OFF
d -d DWORD data formatting on / OFF
q -q QWORD data formatting on / OFF
Addressing options (mutually exclusive):
t -t TEB-relative addressing on / OFF
f -f FS-relative addressing on / OFF
u -u user-mode FS:[] on / OFF
k -k kernel-mode FS:[] on / OFF
h -h handle/object resolution on / OFF
a -a add bias to last base on / OFF
s -s sub bias from last base on / OFF
p -p pointer from last block on / OFF
System status options (cumulative):
o -o display OS information on / OFF
c -c display CPU information on / OFF
g -g display GDT information on / OFF
i -i display IDT information on / OFF
b -b display contiguous blocks on / OFF
Other options (cumulative):
x -x execute DLL startup code on / OFF
Example: The following command displays the first 64
bytes of the current Process Environment Block (PEB)
in zero-based DWORD format, assuming that a pointer to
the PEB is located at offset 0x30 inside the current
Thread Environment Block (TEB):
w2k_memt #0 0pzd #64 0x30
Note: Specifying #0 aftert causes the TEB to be
addressed without displaying its contents.
示列 4-1. 內(nèi)存 Spy 工具的幫助信息
每個(gè)命令行所執(zhí)行的數(shù)據(jù)請(qǐng)求不等同于選項(xiàng) , 數(shù)據(jù)大小的說明 , 路徑或任何其他的命令修飾成分 。命令中的每個(gè)無格式的數(shù)字都被假定是一個(gè)線性地址 , 并且將從該地址開始 , 按 16 進(jìn)制顯示其內(nèi)容 。數(shù)字默認(rèn)按 10 進(jìn)制格式解釋 , 如果有前綴“ 0x ”或“ x. ”則按照 16 進(jìn)制格式解釋 。
如果提供一些簡(jiǎn)單的示例 , 很容易掌握 w2k_mem.exe 采用的復(fù)雜命令行選項(xiàng) , 下面就給出一些:
l w2k_mem 0x80400000 顯示從線性地址 0x80400000 開始的 256 個(gè)字節(jié) , 產(chǎn)生的內(nèi)容可能會(huì)類似于示列 4-2。順便說一下 , 這是 ntoskrnl.exe 的 Dos stub (注意開始的“ MZ ” ID ) 。

推薦閱讀