📄 盗版 (2001年4月4日).txt
字号:
盗版 (2001年4月4日)
网友更新 分类:杂类 作者:abcool 推荐:abcool 阅读次数:586
(http://www.codesky.net)
--------------------------------------------------------------------------------
前 言
~~~~~~
由於保护越来越强悍, 使得合法买软体的我们, 还要受到各种千奇百怪的折磨,
弟深深觉得受到侮辱。(您呢 ?) 所以小弟和朋友们不遗馀力的寻找各种好的破解工具,
并将之推荐给诸位。软体公司应当知道, 将盗版的成本转嫁给合法的使用者,
那是不对的, 唯有尊重 User, 并加强服务态度, 台湾软体业才有起飞的一天。
Soft-ICE 功能之强大, 如以下文件所言, "可以比拟硬体侦错器", 换言之只要
程式没有进入保护模式, 都逃不过本程式的中断, 而且一般软体刻意当掉
debugger 的陷阱都不用费心。
本文件由 Chi-hao Tseng 和朋友一起翻译, 如果文件中有不当之处, 欢迎
在 90 Net - Copy Board 区写信给弟 (Chi-hao Tseng)...
另外本文件非常非常欢迎你 copy 给有需要的人, 不过不要让小弟看到本文
件中任何一部份的内容被修改或被拿来图利 (小弟和朋友们会很痛心的),
在最後还是要感谢你肯花时间来看小弟的拙作....
第 一 章
--------
[介绍] 1.1 本程式的功能
1.2 使用手册
1.3 系统需求
1.1 本程式的功能
----------------
Soft-ICE 是一个软体除错工具。可是它拥有相当於硬体侦错器(hardware-level)
的能力, 使它能凌驾於 DOS 一般的除错程式之上。
Soft-ICE 使用 386 的虚拟 86 模式(virtual 86 mode) 将 DOS 所有程式摆在
一个虚拟机器 (Virtual Machine) 上, 使得 Soft-ICE 可以完全控制 DOS 的环境。
Soft-ICE 使用 80386 保护模式的特色,
像是 paging、I/O privilege level 和 break point register,
加'硬体侦错器'中断指示著你存在的DOS 除错程式.
我们设计 Soft-ICE 时有三个目标:
1. 利用这 80386 实际上的机器潜在能力 去侦错未来的东东 那个是不可能的 或以
缓慢 仅软体的除错程式 是禁止的.
即时的'硬体侦错器'中断点,记忆体保护,中断跳出程式 , 等等.
2. 和现有侦错器的使用方式相容。我们想要提供一个工具 -- 它的使用方式和现有
侦错器的使用方式相同, 可是它却拥有硬体除错器的能力。如此使用者就可以省去
不必要学习的时间, 而得到有力的工具。
3. 是一个拥有友善使用者介面 (user-friendly) 的程式。
由於 Soft-ICE 的视窗可以自由移动, 和变换大小, 所以即使一些资讯被档
在视窗底下, 只要经过移动和变换大小, 也可以被使用者看到, 另外动态
的线上辅助功能, 使得你偶而才用一次 Soft-ICE 也不会感到困扰....
Soft-ICE 的特色:
* 可设定某记忆体在读/写时、I/O 埠在读/写时、到达某块记忆体范围, 或是某插断
发生时, 立即中断回到 Soft-ICE。
* 反向追踪程式。
* 原始程式的侦错。
* 可以和其它侦错器同时侦错程式。
* 完全支援 EMM 4.0 (expand memory manager)。
* 如果是单色萤幕, 则可以自动将 Soft-ICE 放在 640 KB 主记忆体以外的空间。
* 本程式可在任何时刻呼叫出来。
* 即使键盘插断被改, 本程式还是可以呼叫出来。
* 本程式实际是放在另一虚拟机器上, 这麽做是为了怕其它程式刻意的更改
或摧毁 Soft-ICE 的程式码。所以即使 DOS 当掉了, Soft-ICE 能仍正常
的工作。(注1.)
* 如果你的电脑拥有超过 640 KB 的记忆体, 则 Soft-ICE 将不会
占用低於 640 KB 的传统记忆体。
* 亲合力极强的动态线上帮助。
* 本程式像是一个真正独立於电脑外的硬体侦错器。这代表你可以侦错任何
一个设备驱动程式(.sys), 这是传统的除错程式所不及的。
* 甚至可以对 DOS 不相容或可以自我开机的程式除错。
* 安装相当简单。 你根本不用调任何一个 DIP 开关, 而且本程式也不会占用
任何一个 I/O 埠, 更不会跟任何一块记忆体相冲。
附注:
Soft-ICE 是使用真实的位址(segment:offset) 来定址,
而不是使用 286 和 386 的定址方式来定址。
1.2 使用手册
------------
[ Soft-ICE 的手册有四个主要部份 ]
(第一节) 学习如何使用 Soft-ICE
(第二节) 各种命令的说明
(第三节) 所支援的特性
(第四节) 进阶的主题
第一节讨论使用本程式侦错时最常遇到的问题。在本节中我们也安插了一个小
实验。
"学习Soft-ICE" ,和一个小的实验,
Soft-ICE据有亲和力的线上辅助能被使用於参考命令叙述与语法.
这”学习 Soft-ICE”部分包含安装指示,一个使用者介面的叙述
与教导.这教导被设计把你自身执行的更快速.
”命令”部分叙述所有这 Soft-ICE 命令.
这命令叙述被方程式群团结成组织以一个alphabetic索引备考.
”支援赋与著特点”部分盖先进的装载选择,
象徵的与来源同水准除错,与 EMM 4.0可能性.
”先进的主题”部分主题,诸如:使用 Soft-ICE 以 DOS loadable 驱动器与使用
Soft-ICE 在非Dos作业系统.
遍及在这手册,在这些教导和这些命令部分,
当你读这些指定的资料.像是已给你那些你需要的 Soft-ICE 资料.
4
”ENTER”一个键,如下这键,你将按下这键标示.
当这说明告诉你去”ENTER”一个片语,
诸如:WIN,你将键入这指定的字元,然後按ENTER键.
1.3系统需求
Soft-ICE 工作在 IBM系列Model 70与80 Compaq 80386与 80386SX 电脑,
AT级相容品 与 80386 微处理器 .
假如他们是AT相容品 Soft-ICE 将只工作在 80386 XT 微处理器 .
Soft-ICE 工作最好在延伸记忆体,但以传统的记忆系统工作也好.
Soft-ICE ,为它的影像输出和 keystroke输入不使用 DOS或 ROMBIOS.
所以影像以下列的模式必定会相容的:
MDA,
Hercules,
CGA,
EGA,
or VGA.
Soft-ICE 同时也有支援 双萤幕结构,
当除错videointensive程式可能是有帮助的.
注1.
PS.(这就是 VM86 mode 的优先权多工, 利害之处 )
第 二 章
----------
[介绍]
2.1 磁片内容
2.2 载入 Soft-ICE
2.2.1 无 Extended Memory 时的载入方法
2.2.2 有 Extended Memory 时的载入方法
2.2.3 如何调整 Soft-ICE 使能依您的设定启动
2.3 脱离 Soft-ICE
2.4 重新载入 Soft-ICE
2.1 磁片内容
Soft-ICE 原本装在一片5又1/4英□或一片3又1/2英□的磁片中。
当您执行S-ICE时,S-ICE注册所有人的大名将会被显示於萤幕上,以制止著作权被
侵害。 S-ICE磁片本身为了您方便起见,并未实际做防拷措施。同样,为了我们的
便利,我们感激您对我们的许可协约有著高度的尊敬。为免原版磁片损毁而制作一
份备份程式乃非常重要的一件事。
Soft-Ice磁片的目录中应当含有下列档案:
S-ICE.EXE
S-ICE.DAT
LDR.EXE
MSYM.EXE
EMMSETUP.EXE
UPTIME.EXE
README.SI
SAMPLE.EXE
SAMPLE.ASM
SAMPLE.SYM
S-ICE.EXE 为 Soft-ICE 主程式。
S-ICE.DAT 为 Soft-ICE 启始参数设定档。
LDR.EXE 为 Soft-ICE 主程式及符号档(symbol file)的载入程式。
MSYM.EXE 为 Soft-ICE 符号档的产生程式。
EMMSETUP.EXE 为供使用者自定扩展记忆体(expanded memory)使用方式的程式。
UPTIME.EXE 为修正时间调[拯]的程式。
README.SI 为一文字档,其中包含有Soft-ICE使用手册未提及的事项。
SAMPLE.EXE 为使用者指南中所使用的一个示范(DEMO)程式。
SAMPLE.ASM 为 SAMPLE.EXE 的组合语言原始程式。
SAMPLE.SYM 为 SAMPLE.EXE 的符号档。
2.2 载入Soft-ICE
在执行Soft-Ice之前,先将磁片中所有的档案拷贝至硬碟机中。
这些档案应当放置於您的档案路径所能存取到的目录中。 S-ICE.EXE 能以DEVICE
DRIVER的形式载入抑或以一般程式於DOS 命令行下执行。
如果想要使用Soft-Ice的特点的话,则SICE.EXE必须在CONFIG.SYS中以DEVICE DRIVER
的方式载入。
注解 :
如果您没有extended memory的话,则Soft-ICE 无法以device driver的形式载入。
也就是说您必须在DOS prompt下载入它。
2.2.1 无 Extended Memory 的载入方法:
当您没有extended memory时,Soft-ice将尽量将自己本身载入到记忆体最高位置。
而被Soft-ice所使用的记忆体将会被排除在外(map out)。因此DOS记忆体的可视范围
将比载入前为少,建议您在其他任何常驻程式前载入 S-ICE。 如果您没有 extended
memory, 只要键入:
S-ICE
2.2.2 使用 Extended Memory 来载入的方法:
以Extended Memory来载入S-ICE可以下列两种方法达成:
1. 在 CONFIG,SYS, 中将S-ICE.EXE以driver的形式载入:
如果您将使用下列的功能,则必须是此种方法。
* 与经由ROM BIOS CALLS来存取记忆体的程式,共享记忆体。
(如 VDISK,SYS, RAMDRIVE.SYS,HIMEM.SYS,cache programs, 等等).
* 使用Soft-ICE EMM 4,0 相容能力。
* 使用Soft-ICE 作为符号或原始程式阶段的除错。
* 使用back trace ranges.
* 与其它Nu-Mega 的产品如MagicCV,共同使用S-ICE。
当以DRIVER形式载入时,Soft-Ice将配置一部份的Evtended memory以作为
自己本身及其附属程式使用,因此不会有记忆体冲突发生。S-ICE.EXE必须
在其它会配置Extended memory的程式之前载入。(例如:VDISK.SYS,
RAMDRIVE.SYS)。通常如果Soft-Ice在CONFIG.SYS中第一个载入时,能得到
最好的效果。
对於那些新进使用Soft-Ice的使用者而言,在CONFIG.SYS中以下列叙述来将
Soft-Ice当作第一个载入的程式是很明智的:
device = drive: \path\S-ICE.EXE /SYM 50
Drive 及 path 须指派为S-ICE.EXE 所在的目录.该项叙述会在系统重置後
将Soft-Ice载入,适合作为入门指引。无论如何,Soft-ICE将不会载入更为
强大的功能(如EMM 4.0)。在您使用有一些心得後,您可以重新调整Soft-Ice
来使用诸如此类的功能。如果您已熟悉Soft-Ice或想要立即调整设定以使用
其功能的话,请参阅第六章(Soft-ICE 初始设定选项)。
第 三 章 30分钟内学会 DEBUG
§3.1 序言
Soft-ICE 的所有动作都发生在一个可以随时叫出的视窗中。Soft-ICE 的所有
指令都可以显示在一个小视窗中,但这个视窗可以扩大到整个萤幕。当你把 Soft-
ICE 当做其它除错程式的助手使用时,你可能会使用小视窗。当你把 Soft-ICE 当
独立除错器用时,你可能会使用大视窗。
如果你使用原来磁片上的设定档( S-ICE.DAT ),那视窗一开始是占满整个
萤幕的。
§3.2 叫出视窗
载入 Soft-ICE 後,你可以随时叫出视窗。一开始你只要按 Ctrl - D 即可叫
出 Soft-ICE 。使用 ALTKEY 的指令可以更改此热键。( 参阅 §5.8 )
§3.3 由视窗中返回
使用 X 这个指令或你叫出 Soft-ICE 的热键均可以回到原先的画面。你在
Soft-ICE 中设定的所有中断点此时开始启动。
§3.4 改变视窗大小
你可以改变 Soft-ICE 视窗的宽度和高度。在独立模式中显示程式码时,改变
视窗大小的功能特别有用。视窗的高度为 8 到 25 行。按
Alt - ↑ 使视窗变高
Alt - ↓ 使视窗变短
使用 WIN 的指令以改变视窗的宽度。( 参阅 §5.9 )直接输入 WIN 而不
加参数会在下面两种模式中切换:
WIDE 模式 --- 占满整个萤幕
NARROW 模式 --- 46 个字元宽
有些指令像 D 、E 、R 、U ,使用 WIDE 模式以显示更多讯息时较为方便。
§3.5 移动视窗
Soft-ICE 的视窗是可以移动且可以定位在萤幕上的任何地方。这功能在 NARROW
模式下特别有用。在你需要时移动视窗以便观看萤幕上被视窗挡到的地方。你可以
用下列按键控制萤幕的移动:
Ctrl - ↑ 向上移一行
Ctrl - ↓ 向下移一行
Ctrl - → 向右移一列
Ctrl - ← 向左移一列
§3.6 行编辑按键
Soft-ICE 容易使用的行编辑器让你可以叫回并编辑上一个指令。它的功能类似
那些有名的 CED 行编辑器。以下按键可以帮助你在命令窗中编辑指令:
→ --- 游标右移
← --- 游标左移
Ins --- 切换插入模式
Del --- 消除现在字元
Home --- 把游标移到一行的开头
End --- 把游标移到一行的结尾
↑ --- 显示上一个指令
↓ --- 显示下一个指令
Shift - ↑ --- 显示向上卷一行
Shift - ↓ --- 显示向下卷一行
Page Up --- 显示向上卷一页
Page Down --- 显示向下卷一页
BackSpace --- 消除前一个字元
Esc --- 取消目前命令
当游标在资料窗或程式码窗时,另有特殊的按键,这在後面将会讨论到。
§3.7 动作状态行
在萤幕底部的状态行提供指令语法的辅助。
§3.8 指令语法
Soft-ICE 是个由指令操控的除错工具。要令 Soft-ICE 有动作,你要下指令给
它。指令可以因不同参数而有改变。
所有的指令都是 1 到 6 个字元的字串且不分大小写。所有的参数都是字串或
运算式。
运算式是典型的数字,也可以是数字和运算子的结合。所有的数字均以 16 进
位表示。一个位元组 (byte) 参数有 2 位,字组 (word) 参数有 4 位。双字组
(double word) 是两个由 : 分隔的字组参数。以下是一些参数的例子:
12 --- 位元组参数
10FF --- 字组参数
E000:0100 --- 双字组参数
暂存器在运算式中可以拿来当位元组或字组参数用。例如: U CS:IP -10 的指
令会从现在指令指标所指位址向前 10 byte 开始反组译。以下的暂存器名称可以用
在运算式中:
AL 、AH 、AX 、BL 、BH 、BX 、CL 、CH 、CX 、DL 、DH 、DX 、DI 、
SI 、BP 、SP 、IP 、CS 、DS 、ES 、SS 、FL
§3.8.1 指定记忆体位址
许多 Soft-ICE 的指令要求以记忆体位址当参数。一个记忆体位址是由两个
16 位元的字组中间以分号 (:) 分隔而组成的。第一个字组表示节段位址 (segment
address) 而第二个字组表示差距位址 (offset segment) 。
公用符号可以在所有 Soft-ICE 指令中用来取代位址。公用符号必需先由
Soft-ICE 的程式载入器 (LDR.EXE) 载入。参阅第七章以取得使用公用符号的完
整说明。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -