softice是异域の蜗牛了解到的最好的调试工具,对于没有对它进行屏避的软件都能较好的调试.不过本人并没用它成功破解过软件,有兴趣的朋友先看看使用方法,自己钻研钻研,请看下面正题
安装并配置好 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 的界面图来代替,两者基本上是一样的) ◆
◆ Softice 的常用命令用法介绍 ◆
Softice使用指南
安装并配置好 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.
直接用鼠标点击需要修改的地方进行修改;
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 预定义功能组合键的作用 ◆
★ 关于数据区:修改数据区的值有两种办法: 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行
|