安裝並配置好Softice後,我們就可以開始進入使用Softice的階段了,如果你沒有做好前面的工作,還是先返回去將Softice準備好,學軟件要一邊看一邊學習效果纔好。Softice的界面和操作都比較簡單,只要熟悉一些基本的命令之後就可以開始利用它爲我們服務了。有一點要提醒大家:Softice在WINDOWS啓動之前裝入系統中,然後將WINDOWS載入(因爲要控制、攔截WINDOWS的動作),所以它工作於系統的0級(即特權級)。當在WINDOWS下用熱鍵呼出Softice後,它就控制了整個系統,此時任何其它的程序(包括系統時鐘)都將處於停止狀態。
本文只是介紹Softice的基本使用方法,有關Softice的詳細使用方法請參閱隨軟件附帶的命令手冊和操作手冊,本站“相關資料”中有Softice的中文使用說明。
◆ 如何呼出/退出Softice?——在WINDOWS下可以隨時用熱鍵CTRL+D組合鍵呼出內存中的Softice,按F5功能鍵退出Softice ◆
FAQ問題解答:
用CTRL+D不能呼出Softice怎麼辦?
——如果確保成功安裝了Softice,對於windows 9x請檢查批處理文件autoexec.bat中是否有winice.exe這一句,對於windows NT請在“開始-〉程序-〉NuMega Softice”下選擇“Start SoftICE”啓動Softice試試。
Softice的屏幕沒有任何顯示?
——在“開始-〉程序-〉NuMega Softice”下選擇“Display Adapter Setup”重新設置顯卡
Softice中鼠標功能出現異常?
——在“開始-〉程序-〉NuMega Softice”下選擇“Mouse Setup”重新設置鼠標
在顯卡設置中選擇了“Universal Video Driver”選項,但是Softice的呼出的仍然是全屏DOS界面?
兩個對策:
——1. 將winice.dat的初始化命令行(即INIT)中的“LINES XX”數改小,例如:LINES 40
——2. 在顯卡設置中將“Manufacturer”強制改爲“StandardVGA”,然後“Test”,成功後退出。
注意:以上的修改都要重新啓動系統後才能生效!!!
◆ Softice的界面圖(由於Softice工作在系統0級,所以沒有辦法截取它的界面,這裏用TRW2000的界面圖來代替,兩者基本上是一樣的)◆
★ 關於數據區:修改數據區的值有兩種辦法:1. 直接用鼠標點擊需要修改的地方(16進制顯示區或者字符形式顯示區)進行修改;2. 用修改指令“E”,例如:E XXXXXXXX ->修改內存地址XXXXXXXX處的數據,用TAB鍵在16進制顯示區和字符形式顯示區之間切換。修改完寄存器值後按ESC鍵退回命令行狀態區。
查看數據區的內容的兩種方法:1. 用ALT+↑和↓上下箭頭移動數據顯示區域;2. 直接用鼠標點擊數據窗口最右邊的↑和↓上下箭頭(圖中沒有顯示出來)來移動顯示區域。
★ 關於程序區:機器代碼的顯示/關閉必須通過指令“CODE ON/OFF”來切換,Softice的默認工作畫面是沒有顯示機器代碼的。注意:程序的領空地域如圖所示,圖中的畫面正在破解WINZIP這個程序,當你看到“WINZIP32!.TEXT”字樣時說明程序已經返回到WINZIP的領空了^_^
查看程序區的內容的兩種方法:1. 用CTRL+↑和↓上下箭頭移動程序代碼顯示區域;2. 直接用鼠標點擊程序窗口最右邊的↑和↓上下箭頭(圖中沒有顯示出來)來移動代碼顯示區域。
★ 關於命令區:是我們輸入各種命令,完成各種操作和控制,進行破解的地方。
★ 關於動作狀態區:輸入命令時顯示命令的用法及格式。
★ 關於堆棧區:只有TRW2000具有這個窗口區域。
◆ Softice預定義功能組合鍵的作用 ◆
F1:
F2: F3: F4: F5: F6: F7: F8: F9: F10: F11: F12: SHIFT+F3: CTRL+F8: CTRL+F9: CTRL+F10: CTRL+F11: CTRL+F12: ALT+F1: ALT+F2: ALT+F3: ALT+F4: ALT+F5: ALT+F8: |
幫助
寄存器顯示/關閉切換 源程序/反彙編代碼切換(程序有源程序時可用) Softice界面/屏幕原始畫面顯示切換 退出Softice窗口 進入/退出代碼窗口 程序運行到光標所在處 單步跟蹤 在光標所在位置設斷點 單步執行(跳過子程序CALL) 程序執行到ES:ESP指向的地方 程序執行到RET指令處,即從子程序CALL中返回 改變數據窗口的顯示格式,按照“字節->字->雙字->短實型->長實型->10字節實型”的方式循環顯示 模擬跟蹤模式中單步跟蹤 退出當前模擬跟蹤模式 模擬跟蹤模式中單步執行 從歷史跟蹤緩衝區的最後一條開始顯示指令 從最初的一條指令開始模擬跟蹤 顯示/關閉寄存器窗口 顯示/關閉數據窗口 顯示/關閉程序窗口 顯示/關閉監視窗口 清除命令窗口中的字符 模擬跟蹤模式中反方向單步跟蹤 |
◆ Softice的常用命令用法介紹 ◆
|
||
命令形式
|
作用
|
說明
|
|
||
.
|
定位當前指令
|
當上下移動瀏覽代碼窗口中的內容時用這個命令能立即回到當前CS:EIP指令處,不用再慢慢的移動代碼窗口返回來。
|
|
||
? 表達式
|
計算表達式的值
|
Softice內置的計算器,16進製爲默認方式,下列均表示16進制數:FF、123、0x123;10進制數須在前加+號(正數)或-號(負數),例如:+42、-123、-FF(對應10進制數-255)、+(20)(對應10進制數+32);字符形式加''號,例如:'A'、'ddcrack'。計算結果分別以16進制、10進制和ASCII字符方式顯示,例如:
? EAX 00000045 00000069 "E" ? 0073173+00066400 00796573 007955827 "yes" |
|
||
A [地址]
|
寫入彙編代碼
|
用過DOS下DEBUG的人對這個命令都不會陌生,用法:
A 從當前CS:EIP處開始彙編 A XXXXXXXX 從程序地址XXXXXXXX處開始彙編 |
|
||
U [地址]
|
反彙編代碼
|
U 從當前屏幕中最後一條指令的下一條指令開始反彙編
U XXXXXXXX 從程序地址XXXXXXXX處開始反彙編 |
|
||
BC list | *
|
清除斷點
|
BC 3 清除斷點3
BC * 清除所有斷點 |
|
||
BD list | *
|
禁止斷點
|
BD 3 禁止斷點3
BD * 禁止所有斷點 |
|
||
BE list | *
|
恢復被禁止的斷點
|
BD 3 恢復斷點3
BD * 恢復所有斷點 |
|
||
BH
|
顯示歷史斷點
|
顯示Softice中曾經設置過的斷點
|
|
||
BL
|
列出當前斷點
|
顯示當前Softice中所有設置的斷點,包括激活的和被禁止的斷點,被禁止的斷點前有“*”號表示。
|
|
||
BPE 斷點號
|
編輯斷點
|
BPE 3 編輯斷點3
|
|
||
BPINT 中斷號
|
對指定中斷設置斷點
|
BPINT 13 在13號中斷上設置斷點
|
|
||
BPIO 端口號
|
對指定I/O端口設置斷點
|
BPIO 378 在對端口378進行操作時中斷
|
|
||
BPM [地址]
|
對指定內存地址設置斷點
|
BPM XXXXXXXX 在對內存地址XXXXXXXX單元中的數據進行操作時中斷
|
|
||
BPR [開始地址] [結束地址]
|
在內存地址範圍設置斷點
|
BPR XXXXXXXX ******** 在對內存地址從XXXXXXXX到********單元中的數據進行操作時中斷
|
|
||
BPX [地址]
|
在指定處設置斷點
|
這是破解中最常用的命令之一了^_^
BPX 在當前光標所在處設置斷點 BPX XXXXXXXX 在XXXXXXXX處的指令上設置斷點 BPX GetDlgItemText 在API函數GetDlgItemText上設置斷點 |
|
||
CODE ON/OFF
|
顯示/關閉指令機器碼
|
默認是不顯示的,在需要的時候再打開它,否則屏幕會顯得混亂。
|
|
||
D [地址]
|
顯示內存地址內容
|
可以具體指定下面的模式:DB 字節; DW 字; DD 雙字; DS 短實型; DL 長實型; DT 10b長實型,默認是DB,即字節方式。
D 將從繼上次命令之後的地址開始顯示 D XXXXXXXX 顯示內存地址XXXXXXXX單元中的內容 |
|
||
E [地址]
|
修改內存單元
|
可以具體指定下面的模式:EB 字節; EW 字; ED 雙字; ES 短實型; EL 長實型; ET 10b長實型,默認是EB,即字節方式。
E 修改從繼上次命令之後的地址單元 E XXXXXXXX 修改內存地址XXXXXXXX單元中的內容 |
|
||
H / HELP [命令]
|
獲取幫助信息
|
H 獲取所有幫助信息
HELP BPX 獲取指令BPX的幫助信息 |
|
||
LINES 行數
|
設置SoftICE界面的行數
|
LINES 45 設置SoftICE的界面顯示行數爲45行
|
|
||
VER
|
查看SoftICE的版本號
|
|
|
||
X
|
退出Softice
|
將控制權交還給被SoftICE中斷的程序,快捷鍵是F5,我們經常用到的。
|
|
||
EXIT
|
強行退出DOS或WINDOWS程序
|
當出現致命錯誤致使Softice彈出後,如果用“X”指令沒有用,可以用它試一下。
|
|
||
WC
WD WR WW |
顯示/關閉程序窗口
顯示/關閉數據窗口 顯示/關閉寄存器窗口 顯示/關閉監視窗口 |
其中WC和WD可以指定窗口顯示的行數,例如:WD 4 表示顯示數據窗口爲4行
|