欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SoftICE for WIN95中文命令解說(shuō)(八)

互聯(lián)網(wǎng)   發(fā)布時(shí)間:2008-10-08 22:12:52   作者:佚名   我要評(píng)論
SoftICE for WIN95中文命令解說(shuō)(八) Copyright (c) 1999 http://coobe.cs.hn.cninfo.net/~tianwei 命令: I1HERE 作用: 遇到內(nèi)嵌的INT 1指令時(shí)激活SoftICE 語(yǔ)法: I1HERE [on | off] 用法: I1HERE 命令使SoftICE在遇到程序中內(nèi)嵌的INT 1指令時(shí)彈出.I1HERE在調(diào)試
SoftICE for WIN95中文命令解說(shuō)(八) Copyright (c) 1999 http://coobe.cs.hn.cninfo.net/~tianwei 命令: I1HERE 作用: 遇到內(nèi)嵌的INT 1指令時(shí)激活SoftICE 語(yǔ)法: I1HERE [on | off] 用法: I1HERE 命令使SoftICE在遇到程序中內(nèi)嵌的INT 1指令時(shí)彈出.I1HERE在調(diào)試程序時(shí)需在某處暫停時(shí)特別有用.在SoftICE彈出之前, SoftICE會(huì)檢查當(dāng)前是否有一條INT 1指令在程序中.如果沒有的話,SoftICE將不彈出.在程序要暫停的指令之前加一句INT 1 就能做到這一點(diǎn).SoftICE彈出時(shí),EIP 會(huì)停在INT 1的下一條指令后.I1HERE 不帶參數(shù)將顯示當(dāng)前I1HERE的狀態(tài).缺省為OFFI1HERE 在與如BoundsChecker 之類的調(diào)試工具分工協(xié)作時(shí)很有用,因?yàn)锽oundsChecker用到 INT 3,為了防止沖突應(yīng)使用INT 1. 另外,VMM,Windows內(nèi)存管理的VxD,在Windows出現(xiàn)某些嚴(yán)重錯(cuò)誤時(shí)會(huì)在嚴(yán)重錯(cuò)誤返回前執(zhí)行一個(gè)INT 1指令.如果此時(shí)I1HERE 為ON時(shí), 你就能跟蹤這類錯(cuò)誤. 如由VMM因換頁(yè)錯(cuò)誤而產(chǎn)生INT 1 時(shí)寄存器的值如下:.EAX = 錯(cuò)誤地址..ESI 指向一個(gè)ASCII字符串(信息)..EBP 指向一個(gè)CRS(在DDK的VMM.INC中定義的客戶寄 存器結(jié)構(gòu)) 點(diǎn)評(píng): 基礎(chǔ)信息: INT 1 實(shí)際上是單步中斷的處理例程. CPU在檢測(cè)到 TP 標(biāo)志為1時(shí)(TP是由DEBUGGER設(shè)的), 就自動(dòng)進(jìn)行這一例程. DEBUGGER 們掛接這個(gè)中斷例程進(jìn)行一些諸如顯示當(dāng)前寄存器值等操作,并等待用戶進(jìn)一步的指令. 在程序中直接用 INT 1指令也能達(dá)到效果.SoftICE不象DOS下的DEBUG.EXE,一碰到 INT 1 就中斷,缺省是不中斷的,只有當(dāng)I1HERE 為 ON 時(shí)才中斷. 命令: I3HERE 作用: 在遇到INT 3 指令時(shí)激活SoftICE 語(yǔ)法: I3HERE [on | off] 用法: I3HERE ON 將使SoftICE每碰到一個(gè) INT 3 時(shí)都彈出,這在調(diào)試程序時(shí)需要在某處暫停特別有用.在你需要暫停的指令之前加一個(gè)INT 3 就行.如果你是編 WINDOWS程序,加個(gè)函數(shù) DebugBreak(). 這個(gè)函數(shù)也執(zhí)行一個(gè)INT 3.I3HERE 不帶參數(shù)將顯示當(dāng)前狀態(tài).請(qǐng)參見I1HERE. 點(diǎn)評(píng): 基礎(chǔ)信息: INT 3 是斷點(diǎn)中斷處理例程.也被DEBUGGER們掛接,顯示寄存器值,給出一些信息,并等待用戶下一步操作. DEBUGGER在下斷點(diǎn)時(shí),將斷點(diǎn)處的指令替換成INT 3,把替換下的指令保存,在執(zhí)行完例程后再恢復(fù)原先保存的指令,修改堆棧中的斷點(diǎn)地址, 使程序得以繼續(xù). DOS下的老DEBUG.EXE當(dāng)遇到程序中的INT 3 指令時(shí)會(huì)進(jìn)行同樣的操作,也修改堆棧中的斷點(diǎn)地址,所以IP又停在那條INT 3 上, 如果你打入 G ,程序?qū)⒁恢蓖T诖颂?這時(shí)改一下IP就可以了. 命令: IDT 作用: 顯示中斷描述符表 語(yǔ)法: IDT [interrupt-number] 用法: interrupt-number: 所要顯示的中斷號(hào)IDT 命令讀取中斷描述符表寄存器的值, 獲得表基址,然后顯示中斷描述符表的內(nèi)容.IDT 命令不帶參數(shù)將顯示所有中斷的情況,如果帶中斷號(hào), 則只顯示相應(yīng)的入口. 輸出參數(shù)如下:interrupt number: 0-05fh的中斷號(hào).interrupt type : 中斷類型如下: --------------------- CallG32: 32位調(diào)用門. CallG16: 16位調(diào)用門. TaskG: 任務(wù)門. TrapG16: 16位陷肼門. TrapG32: 32位陷肼門. IntG32: 32位中斷門. IntG16: 16位中斷門. ---------------------address : (選擇符:偏移量)形式的地址.selector's DPL : 選擇符的描述符特權(quán)級(jí),0,1,2,3present bit : P 或 NP, 表示該描述符是否在內(nèi) 存中.Owner Offset : 符號(hào)名或擁有者名,和在它們中的 偏移. 點(diǎn)評(píng): 參見GDT,LDT. 命令: LDT 作用: 顯示局部描述符表 語(yǔ)法: LDT [selector] 用法: selector: 指定LDT 選擇符LDT 命令將顯示局部描述符表的內(nèi)容. SoftICE先讀取局部描述符表寄存器的值,再定位描述符表. 如果局部描述符表不存在,會(huì)顯示一個(gè)錯(cuò)誤信息. 如果指定選擇符,則只顯示該選擇符所指向的描述符. 如果指定的選擇符是一個(gè)全局選擇符, 則SoftICE將自動(dòng)顯示該全局選擇符所指的描述符.輸出:LDT 的線性基址和長(zhǎng)度將顯示在輸出數(shù)據(jù)的頂行輸出數(shù)據(jù)的每一行內(nèi)容的說(shuō)明:value: 最低兩位即描述符特權(quán)級(jí)type : 描述符類型,如下: --------------------------- Code16 : 16位代碼描述符 Data16 : 16位數(shù)據(jù)描述符 Code32 : 32位代碼描述符 Data32 : 32位數(shù)據(jù)描述符 CallG32: 32位調(diào)用門描述符 CallG16: 16位調(diào)用門描述符 TaskG32: 32位任務(wù)門描述符 TaskG16: 16位任務(wù)門描述符 TrapG32: 32位陷肼門描述符 TrapG16: 16位陷肼門描述符 IntG32 : 32位中斷門描述符 IntG16 : 16位中斷門描述符 Reserved: 保留的描述符 --------------------------- base : 描述符中的段基址limit : 描述符中的段界限D(zhuǎn)PL : 描述符特權(quán)級(jí),0,1,2,3present bit: P 或 NP 表示該段是否在內(nèi)存中segment attributes: 段特性: --------------------------- RW: 數(shù)據(jù)段可讀寫 RO: 數(shù)據(jù)段只讀 RE: 代碼段可讀可執(zhí)行 EO: 代碼段只可執(zhí)行 B : TSS(任務(wù)狀態(tài)段)忙置位 --------------------------- 點(diǎn)評(píng): 這段翻譯并不完全用PDF手冊(cè)上的.如"selector" 原指選擇符(器),用來(lái)指向描述符表中的描述符,而PDF手冊(cè)中type 的說(shuō)明全用到 selector. 說(shuō)的意思雖是一樣,但和別的文獻(xiàn)矛盾,故認(rèn)為不妥,將其翻譯成descriptor即描述符. 實(shí)際上可以看出,一個(gè)選擇符指向一個(gè)描述符,兩者是一致的. 描述符類型實(shí)際上也就是指向它的選擇符類型. 命令: LHEAP 作用: 顯示W(wǎng)indows 局部堆 語(yǔ)法: LHEAP [selector | module-name] 用法: selector : 局部描述符表數(shù)據(jù)選擇符.module-name: 16位 模塊名.LHEAP 顯示W(wǎng)indows程序在全局堆中申請(qǐng)的數(shù)據(jù)信息.如果不跟選擇符參數(shù),當(dāng)前的DS 寄存器的內(nèi)容(數(shù)據(jù)選擇符)被做為缺省值. 用前次說(shuō)過的 HEAP 命令找標(biāo)有LH 的選擇符來(lái)做為L(zhǎng)HEAP的參數(shù).如果用module-name 做參數(shù),則SoftICE用此模塊的缺省數(shù)據(jù)段進(jìn)行堆遍歷.輸出:offset: 16位的偏移量(相對(duì)于相應(yīng)的選擇符基址)size : 堆入口(每個(gè)組成部分)的字節(jié)大小.type : 類型如下: --------------------- FIX : 固定的. MOV : 可移動(dòng)的. FREE: 空閑的. ---------------------handle: 相應(yīng)的句柄.對(duì)固定的堆組成部分來(lái)說(shuō), 此值 和offset 相等,且是由 LocalAlloc()返回的. 對(duì)于可移動(dòng)的組成部分來(lái)說(shuō),此值將會(huì)被做為 LocalLock()的參數(shù). 點(diǎn)評(píng): 無(wú).(天氣好熱!翻譯得好累!) 命令: LINES 作用: 改變SoftICE窗口的顯示行數(shù) 語(yǔ)法: LINES [25 | 43 | 50 | 60] 用法: LINES 命令用來(lái)改變SoftICE窗口的顯示行數(shù). 默認(rèn)為25行.可以有:25 行;43 行;50 行;60 行;43,50,60行只適用于VGA卡.LINES 不帶參數(shù)將顯示當(dāng)前行數(shù).如果用 ALTSCR 命令切換顯示器輸出到單顯,SoftICE自動(dòng)轉(zhuǎn)為25行,再轉(zhuǎn)回VGA卡時(shí)要手工用 LINES 命令來(lái)恢復(fù)原值. 點(diǎn)評(píng): 實(shí)際上, 我的3.20用的是SoftICE自帶的通用視頻驅(qū)動(dòng)程序,行范圍可以從25一直到128 !!(除非為SoftICE開的顯存不夠) 命令: LOCALS 作用: 從當(dāng)前棧中列出局部變量 語(yǔ)法: LOCALS 用法: 輸出:Stack Offset : 棧偏移.Type definition: 類型定義.Value,Data,or structure symbol({...}) : 值,數(shù)據(jù),或結(jié)構(gòu)符號(hào).SoftICE根據(jù)局部變量的類型來(lái)用不同的形式顯示它們,如果是指針,則顯示所指向的數(shù)據(jù).如果是結(jié)構(gòu),則顯示結(jié)構(gòu)符號(hào).如果既不是指針,又不是結(jié)構(gòu),則顯示本身值. 點(diǎn)評(píng): 無(wú).

相關(guān)文章

最新評(píng)論