⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 盗版 (2001年4月4日).txt

📁 自己对DELPHI学习的一点体会
💻 TXT
📖 第 1 页 / 共 5 页
字号:
盗版 (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 资料. 


”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 + -