SoftIce for Win95/98 設定與用法簡介
[斷點] [記憶體] [熱鍵]
我們常常用 SoftIce 來破解軟體,所以設定是很重要的。

1. 執行 SoftIce 的 Symbol Loader

2. Edit -- SoftIce Initialization Settings... -- 將 Initializatino String 改成 WR;WL;WD;CODE ON;X;

3. 在 softice 目錄中開啟 winice.dat

4. 到檔案的最後,把所有的 dll 模組前的分號刪除。像下面一樣

; ***** Examples of export symbols that can be included for cwin95 95 *****
; Change the path to the appropriate drive and directory
EXP=c:\cwin95\system\kernel32.dll
EXP=c:\cwin95\system\user32.dll
EXP=c:\cwin95\system\gdi32.dll
EXP=c:\cwin95\system\comdlg32.dll
EXP=c:\cwin95\system\shell32.dll
EXP=c:\cwin95\system\advapi32.dll
EXP=c:\cwin95\system\shell232.dll
EXP=c:\cwin95\system\comctl32.dll
EXP=c:\cwin95\system\crtdll.dll
EXP=c:\cwin95\system\version.dll
EXP=c:\cwin95\system\netlib32.dll
EXP=c:\cwin95\system\msshrui.dll
EXP=c:\cwin95\system\msnet32.dll
EXP=c:\cwin95\system\mspwl32.dll
EXP=c:\cwin95\system\mpr.dll

5. 進入 softice 看看﹕

當你按 CTRL-D 進入 softice 之後,視窗太概分為四個部份﹕
Registers 和 Flags 用 R 去修改 R 是一個指令,你可以用它修改 register 的內容
Data Window 用 E 去修改, D 來看 d (dump) 是看記憶體.
e (edit) 修改記憶體內容.
Code Window 用 A 去修改, U 來看 A (assemble) 組譯 (修改)
例﹕A 00401234 -- 修改在 00401234 的組合語言碼

U (unassemble) 反組譯 (看)
例﹕U 00401234 -- 看 00401234 及之後的一部份組合語言碼

Command Window 像 DOS 一般 例如 d eax -- 看 eax 的記憶體內容
例如 ? eax -- 看 eax 的內容


BreakPoint (斷點)的使用:

BPM, BPMB, BPMW, BPMD  - Breakpoint on memory access
BPR    - Breakpoint on memory range
BPIO   - Breakpoint on I/O port access
BPINT  - Breakpoint on interrupt
BPX    - Breakpoint on execution
BMSG   - Breakpoint on Windows message
BSTAT  - Breakpoint Statistics
CSIP   - Set CS:EIP range qualifier

BPE    - Edit breakpoint
BPT    - Use breakpoint as a template
BL     - List current breakpoints
BC     - Clear breakpoint
BD     - Disable breakpoint
BE     - Enable breakpoint
BH     - Breakpoint history

常用的用綠色表示

通常註冊碼都是輸入在 Windows 的對話框中。用 C 語言寫的程式也是用以下的函數 如果以下的函數不能用,那程式可能是用 Visual Basic 寫的.

用法﹕Bpx 函數
例如﹕Bpx GetDlgItemTextA
16-bit 程式 32-bit 程式
GetWindowText GetWindowTextA, GetWindowTextW
GetDlgItemText GetDlgItemTextA, GetDlgItemTextW


記憶體顯示 / 改變

R  - Display/change register contents
U  - Un-assembles instructions
D, DB, DW, DD, DS, DL, DT  - Display memory
E, EB, EW, ED, ES, EL, ET - Edit memory


常用 HOTKEY

F1 - Help
F5 - RUN
F8 - Trace (into call)
F10 - Trace (not into call)
F11 - RET

小恐龍工作坊 提供