Softice入門

Softice的界面和操作都比較簡單,只要熟悉一些基本的命令之後就可以開始利用它爲我們服務了。有一點要提醒大家:Softice在WINDOWS啓動之前裝入系統中,然後將WINDOWS載入(因爲要控制、攔截
WINDOWS的動作),所以它工作於系統的0級(即特權級)。當在WINDOWS下用熱鍵呼出Softice後,它就控制了整個系統,此時任何其它的程序(包括系統時鐘)都將處於停止狀態。
  本文只是介紹Softice的基本使用方法,有關Softice的詳細使用方法請參閱隨軟件附帶的命令手冊和操作手冊,本站“相關資料”中有Softice的中文使用說明。

★ 如何呼出/退出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. 直接用鼠標點擊需要修改的地方進行修改;2. 用修改指令“R”,例如:R EAX ->修改寄存器EAX,R FL ->修改標誌位(用“Insert”鍵改變標誌位狀態),R FLZ ->改變零標誌位的狀態(在0和1之間切換)。修改完寄存器值後按ESC鍵退回命令行狀態區。

  ★ 關於數據區:修改數據區的值有兩種辦法: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行   

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
源碼級的調試驅動程序

以Check方式編譯驅動程序,
然後用SoftICE的 Symbol Loader 將編譯生成的驅動程序 .sys 文件,
然後 Translate 成 .nms ,然後在Symbol Loader 中的 symbols 中加入,就可以實現源碼級的調試。

具體,
轉換生成Symbols
Symbol Loader -> File -> Open Module -> 選中驅動文件.sys之後 ->
Module -> Translate

加入Symbols
Symbol Loader -> Edit -> SoftICE Initialization Settings... -> Symbols

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章