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

来源:互联网 发布:上海大学网络 编辑:程序博客网 时间:2024/04/30 17:50
  softice是异域の蜗牛了解到的最好的调试工具,对于没有对它进行屏避的软件都能较好的调试.不过本人并没用它成功破解过软件,有兴趣的朋友先看看使用方法,自己钻研钻研,请看下面正题
Softice使用指南
作者 :ddcrack (2001/5/24)    主页:http://ddcrack.yeah.net
安装Softice   |
配置Softice   |
使用Softice

  安装并配置好Softice后,我们就可以开始进入使用Softice的阶段了,如果你没有做好前面的工作,还是先返回去将Softice准备好,学软件要一边看一边学习效果才好。Softice的界面和操作都比较简单,只要熟悉一些基本的命令之后就可以开始利用它为我们服务了。有一点要提醒大家:SofticeWINDOWS启动之前装入系统中,然后将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 ->修改寄存器EAXR FL ->修改标志位(用“Insert”键改变标志位状态),R FLZ ->改变零标志位的状态(在01之间切换)。修改完寄存器值后按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进制数:FF1230x12310进制数须在前加+号(正数)或-号(负数),例如:+42-123-FF(对应10进制数-255)、+(20)(对应10进制数+32);字符形式加''号,例如:'A''ddcrack'。计算结果分别以16进制、10进制和ASCII字符方式显示,例如:
? EAX
00000045 00000069 "E"
? 0073173+00066400
00796573 007955827 "yes"

A [地址]
写入汇编代码
用过DOSDEBUG的人对这个命令都不会陌生,用法:
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
强行退出DOSWINDOWS程序
当出现致命错误致使Softice弹出后,如果用“X”指令没有用,可以用它试一下。

WC
WD
WR
WW
显示/关闭程序窗口
显示/关闭数据窗口
显示/关闭寄存器窗口
显示/关闭监视窗口
其中WCWD可以指定窗口显示的行数,例如:WD 4 表示显示数据窗口为4行
 
原创粉丝点击