Softice使用指南(异域の蜗牛注:经典的调试工具,几乎能调试所有程序.感谢ddcrack让我看了这么好的文章.分享)

  softice是异域の蜗牛了解到的最好的调试工具,对于没有对它进行屏避的软件都能较好的调试.不过本人并没用它成功破解过软件,有兴趣的朋友先看看使用方法,自己钻研钻研,请看下面正题
Softice使用指南
作者 :ddcrack (2001/5/24)    主页:http://ddcrack.yeah.net
安装Softice     |
配置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
预定义功能组合键的作用
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行
 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值