?? sice.txt
字號:
前 言
~~~~~~
由於保護越來越強悍, 使得合法買軟體的我們, 還要受到各種千奇百怪的折磨,
弟深深覺得受到侮辱。(您呢 ?) 所以小弟和朋友們不遺馀力的尋找各種好的破解工具,
并將之推薦給諸位。軟體公司應當知道, 將盜版的成本轉嫁給合法的使用者,
那是不對的, 唯有尊重 User, 并加強服務態度, 臺灣軟體業才有起飛的一天。
Soft-ICE 功能之強大, 如以下文件所言, "可以比擬硬體偵錯器", 換言之只要
程式沒有進入保護模式, 都逃不過本程式的中斷, 而且一般軟體刻意當掉
debugger 的陷阱都不用費心。
本文件由 Chi-hao Tseng 和朋友一起翻譯, 如果文件中有不當之處, 歡迎
在 90 Net - Copy Board 區寫信給弟 (Chi-hao Tseng)...
另外本文件非常非常歡迎你 copy 給有需要的人, 不過不要讓小弟看到本文
件中任何一部份的內容被修改或被拿來圖利 (小弟和朋友們會很痛心的),
在最後還是要感謝你肯花時間來看小弟的拙作....
第 一 章
--------
[介紹] 1.1 本程式的功能
1.2 使用手冊
1.3 系統需求
1.1 本程式的功能
----------------
Soft-ICE 是一個軟體除錯工具。可是它擁有相當於硬體偵錯器(hardware-level)
的能力, 使它能凌駕於 DOS 一般的除錯程式之上。
Soft-ICE 使用 386 的虛擬 86 模式(virtual 86 mode) 將 DOS 所有程式擺在
一個虛擬機器 (Virtual Machine) 上, 使得 Soft-ICE 可以完全控制 DOS 的環境。
Soft-ICE 使用 80386 保護模式的特色,
像是 paging、I/O privilege level 和 break point register,
加'硬體偵錯器'中斷指示著你存在的DOS 除錯程式.
我們設計 Soft-ICE 時有三個目標:
1. 利用這 80386 實際上的機器潛在能力 去偵錯未來的東東 那個是不可能的 或以
緩慢 僅軟體的除錯程式 是禁止的.
即時的'硬體偵錯器'中斷點,記憶體保護,中斷跳出程式 , 等等.
2. 和現有偵錯器的使用方式相容。我們想要提供一個工具 -- 它的使用方式和現有
偵錯器的使用方式相同, 可是它卻擁有硬體除錯器的能力。如此使用者就可以省去
不必要學習的時間, 而得到有力的工具。
3. 是一個擁有友善使用者介面 (user-friendly) 的程式。
由於 Soft-ICE 的視窗可以自由移動, 和變換大小, 所以即使一些資訊被檔
在視窗底下, 只要經過移動和變換大小, 也可以被使用者看到, 另外動態
的線上輔助功能, 使得你偶而才用一次 Soft-ICE 也不會感到困擾....
Soft-ICE 的特色:
* 可設定某記憶體在讀/寫時、I/O 埠在讀/寫時、到達某塊記憶體范圍, 或是某插斷
發生時, 立即中斷回到 Soft-ICE。
* 反向追蹤程式。
* 原始程式的偵錯。
* 可以和其它偵錯器同時偵錯程式。
* 完全支援 EMM 4.0 (expand memory manager)。
* 如果是單色螢幕, 則可以自動將 Soft-ICE 放在 640 KB 主記憶體以外的空間。
* 本程式可在任何時刻呼叫出來。
* 即使鍵盤插斷被改, 本程式還是可以呼叫出來。
* 本程式實際是放在另一虛擬機器上, 這麼做是為了怕其它程式刻意的更改
或摧毀 Soft-ICE 的程式碼。所以即使 DOS 當掉了, Soft-ICE 能仍正常
的工作。(注1.)
* 如果你的電腦擁有超過 640 KB 的記憶體, 則 Soft-ICE 將不會
占用低於 640 KB 的傳統記憶體。
* 親合力極強的動態線上幫助。
* 本程式像是一個真正獨立於電腦外的硬體偵錯器。這代表你可以偵錯任何
一個設備驅動程式(.sys), 這是傳統的除錯程式所不及的。
* 甚至可以對 DOS 不相容或可以自我開機的程式除錯。
* 安裝相當簡單。 你根本不用調任何一個 DIP 開關, 而且本程式也不會占用
任何一個 I/O 埠, 更不會跟任何一塊記憶體相沖。
附注:
Soft-ICE 是使用真實的位址(segment:offset) 來定址,
而不是使用 286 和 386 的定址方式來定址。
1.2 使用手冊
------------
[ Soft-ICE 的手冊有四個主要部份 ]
(第一節) 學習如何使用 Soft-ICE
(第二節) 各種命令的說明
(第三節) 所支援的特性
(第四節) 進階的主題
第一節討論使用本程式偵錯時最常遇到的問題。在本節中我們也安插了一個小
實驗。
"學習Soft-ICE" ,和一個小的實驗,
Soft-ICE據有親和力的線上輔助能被使用於參考命令敘述與語法.
這”學習 Soft-ICE”部分包含安裝指示,一個使用者介面的敘述
與教導.這教導被設計把你自身執行的更快速.
”命令”部分敘述所有這 Soft-ICE 命令.
這命令敘述被方程式群團結成組織以一個alphabetic索引備考.
”支援賦與著特點”部分蓋先進的裝載選擇,
象徵的與來源同水準除錯,與 EMM 4.0可能性.
”先進的主題”部分主題,諸如:使用 Soft-ICE 以 DOS loadable 驅動器與使用
Soft-ICE 在非Dos作業系統.
遍及在這手冊,在這些教導和這些命令部分,
當你讀這些指定的資料.像是已給你那些你需要的 Soft-ICE 資料.
4
”ENTER”一個鍵,如下這鍵,你將按下這鍵標示.
當這說明告訴你去”ENTER”一個片語,
諸如:WIN,你將鍵入這指定的字元,然後按ENTER鍵.
1.3系統需求
Soft-ICE 工作在 IBM系列Model 70與80 Compaq 80386與 80386SX 電腦,
AT級相容品 與 80386 微處理器 .
假如他們是AT相容品 Soft-ICE 將只工作在 80386 XT 微處理器 .
Soft-ICE 工作最好在延伸記憶體,但以傳統的記憶系統工作也好.
Soft-ICE ,為它的影像輸出和 keystroke輸入不使用 DOS或 ROMBIOS.
所以影像以下列的模式必定會相容的:
MDA,
Hercules,
CGA,
EGA,
or VGA.
Soft-ICE 同時也有支援 雙螢幕結構,
當除錯videointensive程式可能是有幫助的.
注1.
PS.(這就是 VM86 mode 的優先權多工, 利害之處 )
第 二 章
----------
[介紹]
2.1 磁片內容
2.2 載入 Soft-ICE
2.2.1 無 Extended Memory 時的載入方法
2.2.2 有 Extended Memory 時的載入方法
2.2.3 如何調整 Soft-ICE 使能依您的設定啟動
2.3 脫離 Soft-ICE
2.4 重新載入 Soft-ICE
2.1 磁片內容
Soft-ICE 原本裝在一片5又1/4英□或一片3又1/2英□的磁片中。
當您執行S-ICE時,S-ICE注冊所有人的大名將會被顯示於螢幕上,以制止著作權被
侵害。 S-ICE磁片本身為了您方便起見,并未實際做防拷措施。同樣,為了我們的
便利,我們感激您對我們的許可協約有著高度的尊敬。為免原版磁片損毀而制作一
份備份程式乃非常重要的一件事。
Soft-Ice磁片的目錄中應當含有下列檔案:
S-ICE.EXE
S-ICE.DAT
LDR.EXE
MSYM.EXE
EMMSETUP.EXE
UPTIME.EXE
README.SI
SAMPLE.EXE
SAMPLE.ASM
SAMPLE.SYM
S-ICE.EXE 為 Soft-ICE 主程式。
S-ICE.DAT 為 Soft-ICE 啟始參數設定檔。
LDR.EXE 為 Soft-ICE 主程式及符號檔(symbol file)的載入程式。
MSYM.EXE 為 Soft-ICE 符號檔的產生程式。
EMMSETUP.EXE 為供使用者自定擴展記憶體(expanded memory)使用方式的程式。
UPTIME.EXE 為修正時間調[拯]的程式。
README.SI 為一文字檔,其中包含有Soft-ICE使用手冊未提及的事項。
SAMPLE.EXE 為使用者指南中所使用的一個示范(DEMO)程式。
SAMPLE.ASM 為 SAMPLE.EXE 的組合語言原始程式。
SAMPLE.SYM 為 SAMPLE.EXE 的符號檔。
2.2 載入Soft-ICE
在執行Soft-Ice之前,先將磁片中所有的檔案拷貝至硬碟機中。
這些檔案應當放置於您的檔案路徑所能存取到的目錄中。 S-ICE.EXE 能以DEVICE
DRIVER的形式載入抑或以一般程式於DOS 命令行下執行。
如果想要使用Soft-Ice的特點的話,則SICE.EXE必須在CONFIG.SYS中以DEVICE DRIVER
的方式載入。
注解 :
如果您沒有extended memory的話,則Soft-ICE 無法以device driver的形式載入。
也就是說您必須在DOS prompt下載入它。
2.2.1 無 Extended Memory 的載入方法:
當您沒有extended memory時,Soft-ice將盡量將自己本身載入到記憶體最高位置。
而被Soft-ice所使用的記憶體將會被排除在外(map out)。因此DOS記憶體的可視范圍
將比載入前為少,建議您在其他任何常駐程式前載入 S-ICE。 如果您沒有 extended
memory, 只要鍵入:
S-ICE
2.2.2 使用 Extended Memory 來載入的方法:
以Extended Memory來載入S-ICE可以下列兩種方法達成:
1. 在 CONFIG,SYS, 中將S-ICE.EXE以driver的形式載入:
如果您將使用下列的功能,則必須是此種方法。
* 與經由ROM BIOS CALLS來存取記憶體的程式,共享記憶體。
(如 VDISK,SYS, RAMDRIVE.SYS,HIMEM.SYS,cache programs, 等等).
* 使用Soft-ICE EMM 4,0 相容能力。
* 使用Soft-ICE 作為符號或原始程式階段的除錯。
* 使用back trace ranges.
* 與其它Nu-Mega 的產品如MagicCV,共同使用S-ICE。
當以DRIVER形式載入時,Soft-Ice將配置一部份的Evtended memory以作為
自己本身及其附屬程式使用,因此不會有記憶體沖突發生。S-ICE.EXE必須
在其它會配置Extended memory的程式之前載入。(例如:VDISK.SYS,
RAMDRIVE.SYS)。通常如果Soft-Ice在CONFIG.SYS中第一個載入時,能得到
最好的效果。
對於那些新進使用Soft-Ice的使用者而言,在CONFIG.SYS中以下列敘述來將
Soft-Ice當作第一個載入的程式是很明智的:
device = drive: \path\S-ICE.EXE /SYM 50
Drive 及 path 須指派為S-ICE.EXE 所在的目錄.該項敘述會在系統重置後
將Soft-Ice載入,適合作為入門指引。無論如何,Soft-ICE將不會載入更為
強大的功能(如EMM 4.0)。在您使用有一些心得後,您可以重新調整Soft-Ice
來使用諸如此類的功能。如果您已熟悉Soft-Ice或想要立即調整設定以使用
其功能的話,請參閱第六章(Soft-ICE 初始設定選項)。
第 三 章 30分鐘內學會 DEBUG
§3.1 序言
Soft-ICE 的所有動作都發生在一個可以隨時叫出的視窗中。Soft-ICE 的所有
指令都可以顯示在一個小視窗中,但這個視窗可以擴大到整個螢幕。當你把 Soft-
ICE 當做其它除錯程式的助手使用時,你可能會使用小視窗。當你把 Soft-ICE 當
獨立除錯器用時,你可能會使用大視窗。
如果你使用原來磁片上的設定檔( S-ICE.DAT ),那視窗一開始是占滿整個
螢幕的。
§3.2 叫出視窗
載入 Soft-ICE 後,你可以隨時叫出視窗。一開始你只要按 Ctrl - D 即可叫
出 Soft-ICE 。使用 ALTKEY 的指令可以更改此熱鍵。( 參閱 §5.8 )
§3.3 由視窗中返回
使用 X 這個指令或你叫出 Soft-ICE 的熱鍵均可以回到原先的畫面。你在
Soft-ICE 中設定的所有中斷點此時開始啟動。
§3.4 改變視窗大小
你可以改變 Soft-ICE 視窗的寬度和高度。在獨立模式中顯示程式碼時,改變
視窗大小的功能特別有用。視窗的高度為 8 到 25 行。按
Alt - ↑ 使視窗變高
Alt - ↓ 使視窗變短
使用 WIN 的指令以改變視窗的寬度。( 參閱 §5.9 )直接輸入 WIN 而不
加參數會在下面兩種模式中切換:
WIDE 模式 --- 占滿整個螢幕
NARROW 模式 --- 46 個字元寬
有些指令像 D 、E 、R 、U ,使用 WIDE 模式以顯示更多訊息時較為方便。
§3.5 移動視窗
Soft-ICE 的視窗是可以移動且可以定位在螢幕上的任何地方。這功能在 NARROW
模式下特別有用。在你需要時移動視窗以便觀看螢幕上被視窗擋到的地方。你可以
用下列按鍵控制螢幕的移動:
Ctrl - ↑ 向上移一行
Ctrl - ↓ 向下移一行
Ctrl - → 向右移一列
Ctrl - ← 向左移一列
§3.6 行編輯按鍵
Soft-ICE 容易使用的行編輯器讓你可以叫回并編輯上一個指令。它的功能類似
那些有名的 CED 行編輯器。以下按鍵可以幫助你在命令窗中編輯指令:
→ --- 游標右移
← --- 游標左移
Ins --- 切換插入模式
Del --- 消除現在字元
Home --- 把游標移到一行的開頭
End --- 把游標移到一行的結尾
↑ --- 顯示上一個指令
↓ --- 顯示下一個指令
Shift - ↑ --- 顯示向上卷一行
Shift - ↓ --- 顯示向下卷一行
Page Up --- 顯示向上卷一頁
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -