来源:互联网转载 | 更新日期:2023-09-14 13:06:23
近日使用Softice的一些心得,主要是一些网上看到的相关资料,遇到的问题,自己探索的解决方法。
我使用softice的环境:操作系统XP( SP2 ),Softice是Driverstudio3.2自带的版本。查找字符串,这么多的代码,怎么能找到自己想要的变量或者字符串呢。敲命令吧 ss ~~(~~为想要搜索的字符串,通常是某例程的名字什么的),找到第一个匹配的,不是?那就继续同样的找法,按上箭头就可以显示出刚运行过的命令了,不用每次都敲。
安装并配置好Softice后,我们就可以开始进入使用Softice的阶段了,如果你没有做好前面的工作,还是先返回去将Softice准备好,学软件要一边看一边学习效果才好。Softice的界面和操作都比较简单,只要熟悉一些基本的命令之后就可以开始利用它为我们服务了。有一点要提醒大家:Softice在WINDOWS启动之前装入系统中,然后将WINDOWS载入(因为要控制、拦截WINDOWS的动作),所以它工作于系统的0级(即特权级)。当在WINDOWS下用热键呼出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”,成功后退出。
注意:以上的修改都要重新启动系统后才能生效!!!
★ 关于寄存器区:修改寄存器的值有两种办法: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字节实型”的方式循环显示 模拟跟踪模式中单步跟踪 退出当前模拟跟踪模式 模拟跟踪模式中单步执行 从历史跟踪缓冲区的最后一条开始显示指令 从最初的一条指令开始模拟跟踪 显示/关闭寄存器窗口 显示/关闭数据窗口 显示/关闭程序窗口 显示/关闭监视窗口 清除命令窗口中的字符 模拟跟踪模式中反方向单步跟踪 |
| ||
命令形式 | 作 用 | 说 明 |
| ||
. | 定位当前指令 | 当上下移动浏览代码窗口中的内容时用这个命令能立即回到当前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行 |
Softice是一款经典的老牌动态调试工具,同时也是个非常成熟、完善的软件产品,从早期的DOS平台到现在的WINDOWS平台, Softice都有全线的产品支持,其正式推出的软件产品基于如下的平台:Dos、Windows 3.1、Windwos 9x和Windows NT,虽然如此,我们仍然可以在Dos、Windows 3.1、Windows 95/98、Windows Me、Windows NT直至最新的Windows 2000上运行。由于纯粹的Dos和Windows 3.1基本上已经没有人使用,所以下面主要讲一下在其它几个平台上安装时的注意事项。
★ 安装Softice for Windows 9x
关键点:显卡设置
鼠标设置
系统设置
1. Softice目前的最新版本是4.05,分为Win 9x和Win NT两个平台,建议使用新版本,这样稳定性较好。下载软件后直接运行Softice的自解压文件开始进入安装程序,或者是将Softice解压后运行setup.exe开始进行安装
2. 点击“Next”后在接下来的许可协议中选择“Yes”,然后出现用户信息输入框:
3. 在“Name”中输入用户名,“Company”中输入公司名,“Serial”中输入Softice的序列号,选择“Next”:
4. 用“Browse”更换Softice的默认安装目录,接着连续两次选择“Next”,来到显卡设置页面:
5. 这里可以根据你的显卡的具体配置在“Manufacturer”和“Model”选定项目,不过对于大多数的显卡通常在“Manufacturer”中选择“StandardVGA”比较好(因为假如你的显卡质量不太好,又具体选定了型号,那么就算是安装成功,也可能在实际使用Softice时显示出现不正常的情况);然后将“Universal Video Driver”也选上,这样Softice弹出后是个窗口画面,推荐使用这样的工作方式,否则,如果不选择这项,Softice弹出的是全屏的DOS界面,操作不太方便,兼容性也不太好。显卡设置好后点击“Test”,让Softice自己测试一下是否能工作:
6. 上面出现的画面告诉显卡测试正常(如果失败则要重新返回上一步设置显卡),选择“确定”,之后在Softice的显卡设置界面中选择“Next”,进入鼠标设置:
7. 如果你使用较早的串行鼠标(方口的),应根据具体的串口选择“Serial”项(串口1:Connected to COM1,串口2:Connected to COM2),如果你不知道到底是哪个串口,只能先随便选一个,然后在Softice的弹出的弹出窗口中测试一下鼠标是否能用,不行的话就重新改去另外一个串口;如果你的鼠标是现在常见的PS2鼠标(圆口的),选择“PS/2 Compatible”;如果的电脑没有配备鼠标,则选择“None”。注意:假如你按上面的方法正确设置了鼠标,但鼠标功能还是不正常,则可以将“Microsoft IntelliMouse”也选上,这样应该能解决问题。设置鼠标好后选择“Next”,进入Softice的系统配置画面:
8. Softice既不能直接运行在WINDOWS下,又不能工作在WINDOWS的DOS窗口下。如果想要安装完Softice后立即使用它,则选上“Let setup modify AUTOEXEC.BAT”,这样Softice会在批处理文件中加上“winice.exe”,让它自己先于WINDWOS调入系统中。如果并不急于使用Softice,则可选“Do not make any changes”,等需要的时候再去批处理中加载“winice.exe”。接下来连续选择“Next”,开始安装Softice,结束后出现如下的画面:
9. 上面的画面是Softice要求进行电子注册,其中有四个选项可供选择:
“Register using internet (requires Web browser)”——通过浏览器进行互联网在线注册
“Register using E-Mail”——通过E-MAIL电子邮件进行注册
“Print registration for faxing or mailing”——将打印出的注册表通过传真或者邮寄进行注册
“Register later”——以后注册
上面的注册选项并不影响Softice的使用,这里直接选择“Register later”,然后按“Next”:
10. 如果你想立即应用Softice,选择“Yes,I want to restart my computer now”,让系统重新启动,加载Softice;否则就选择“No,I will restart my computer later”,直到下次重起电脑后才可以使用Softice,点击“Finish”,完成安装。
★ 安装Softice for Windows Me
Windows Me中取消了对DOS的支持,所以不能直接在Windows Me下安装Softice,需要 winice loader 这个工具的帮助,具体安装步骤如下:
1. 正常安装Softice for Windows 9x”;
2. 将winice.exe, winice.dat 和 siwvid.386复制到WINDOWS ME目录下,如:c:\WinMe;
3. 将winice loader内的loader.exe解压到WINDOWS ME的SYSTEM\VMM32\目录下,如:c:\WinMe\system\vmm32;
4. 重新启动系统。
★ 安装Softice for Windows NT
安装Softice NT版和Win 9x版基本相同,区别主要是在上面Win 9x版安装的第7步以后出现的系统配置画面不一样,其画面如下所示:
有四个选项可供选择:
“Boot”——在Windows NT之前加载Softice,适合调试设备驱动程序;
“System”——Windows NT和Softice同时加载,适合应用程序调试;
“Automatic”——Windows NT和Softice同时加载,但是不能调试核心设备驱动程序;
“Manual”——需要在Windows NT环境下通过执行“Start SoftICE”手动启动Softice
通常选择“Manual”方式会比较方便,这样只是在需要的时候才加载Softice,Start SoftICE的路径如下:开始->程序->Numega SoftICE->Start SoftICE 。
★ 安装Softice for Windows 2000
安装Windows 2000版和Win NT版的步骤相同,但如果将Softice作为WINDOWS 2000的系统启动驱动程序时,需要注意一些问题:
由于Windows 2000的初始状态发生了改变,就有可能使得Softice不能正常加载必须的文件。Numega公司为WINDOWS 2000下的Softice设计了一个驱动程序:SoftICE Symbol Driver (SIWSYM),当Softice启动时为其提供文件影象表地址,Softice根据这个表寻找所需的启动文件,从而能其正常正常加载到系统中。驱动程序SIWSYM被放置在ICEPACK.EXE文件中,运行这个程序就可以自动完成必要的配置工作。切记:每次改变Softice的配置(直接编辑WINICE.DAT或通过LOADER32改变配置)后都要重新运行ICEPACK.EXE,这样才能保证新的修改产生作用。
Copyright © 网站出售-网站交易平台 版权信息
网站备案号:黔ICP备2023004141号