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

📄 sice.txt

📁 关于黑客的论坛的下载资料
💻 TXT
📖 第 1 页 / 共 5 页
字号:
        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) 载入。参阅第七章以取得使用公用符号的完
    整说明。

        Soft-ICE 运算式的运算器接受一些特殊字元和位址的使用。这些字元是:

                $  ---  现在 CS:IP 所指的位址
            @位址  ---  间接双字组
          .number  ---  原始程式码行号

        当你要输入目前指令指标的位址时,可以用 $ 代替 CS:IP 。

        使用 @ 可以让你参考到位址所指处的双字组。你可以使用多层的 @ 。

        如果用 . 来代表位址,它是用来代表原程式码中的行号,而非实际的位址。
    这只有在原始程式码有载入的情形下才能使用。这种情况下,位址是以 10 进位
    表示。

        例如:

            U.1234  ---  从原始程式码第 1234 行开始反组译
            U $-10  ---  从目前指令指标所指处向前 10 byte 开始反组译
          G @SS:SP  ---  假如你目前正在第一个中断程序,下这个指令会在堆叠的
                         返回位址设个暂时中断点并跳过此中断程序。

§3.9 功能键

      功能键可以代替一串 Soft-ICE 中之指令。功能键可以由命令行设定或从
  S-ICE.DAT 中定义。

      Soft-ICE 磁片上原来的 S-ICE.DAT 已经对 12 个功能键有设定。你可以在任
  何时候改变任何一个设定。个键定义如下表所示。这样设计是为了方便微软的
  CodeView 的使用者。

         F1  ---  显示一般辅助画面            ( H; )
         F2  ---  在暂存器窗中切换            ( ^WR; )
         F3  ---  改变目前原始码的模式        ( ^SRC; )
         F4  ---  回复视窗                    ( ^RS; )
         F5  ---  回到原程式                  ( ^X; )
         F6  ---  在命令窗中和程式码窗中切换  ( ^EC; )
         F7  ---  执行到游标所在那行          ( ^HERE; )
         F8  ---  单步执行                    ( ^T; )
         F9  ---  在游标所在那行设中断点      ( ^BPX; )
        F10  ---  单步执行                    ( ^P; )
        F11  ---  执行到返回位址              ( ^G @SS:SP; )
        F12  ---  显示 Soft-ICE 的版别        ( ^VER; )

      指令前的 ^ 会让这个指令不显示出来。指令後的 ; 则代表按下 Enter 。输入
  FKEY 的指令可以显示目前功能键所代表的意义。要使用功能键直接按下功能键即可
  ,不需再键入指令。要自定功能键,参阅 §5.8 FKEY 指令的解说或第六章有关
  在 S-ICE.DAT 设定功能键的部份。

§3.10 辅助

      利用辅助的指令可以得到有关指令的简单解说、语法和使用例子。要得到辅助
  的资讯,键入:

                      ? 或 H  ---  显示所有指令和运算子的简短解说

            ? 指令 或 H 指令  ---  显示关於指令语法和例子更详细的资讯

        ? 运算式 或 H 运算式  ---  把运算式的结果以 16 、10 进位及 ASCII 码
                                   显示出来

§3.11 课程

    (好多喔....偷懒一下,跳过去吧!)



From - Thu Feb 06 21:57:32 1997
Received: from gingko.dlut.edu.cn (gingko [202.118.66.8]) by rose.dlut.edu.cn (8.7.3/8.7.3) with ESMTP id TAA03359 for <ygh@rose.dlut.edu.cn>; Sat, 8 Mar 1997 19:46:36 +0800 (CST)
Received: from synet.edu.cn (saint.synet.edu.cn [202.112.29.85]) by gingko.dlut.edu.cn (8.7.5/3.3W9-dlut) with SMTP id UAA16779 for <ygh@rose.dlut.edu.cn>; Sat, 8 Mar 1997 20:50:06 +0800 (CST)
                 ┌——————————————————┐
                 │  第  一  节     学习使用 Soft-ICE  │
                 └——————————————————┘
                   第   二   章        开始使用 Soft-ICE
§2.1 磁片

      Soft-ICE 是在 5 1/4" 或 3 1/2" 的磁片上。

      当你执行 Soft-ICE 时,萤幕上会显示这份拷贝的所有人的姓名以防止软体的盗
  拷。为了您的方便,Soft-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 的程式,也是符号档的载入器。
      MSYM.EXE     是 Soft-ICE 符号档的制造程式。
      EMMSETUP.EXE 用来设定系统如何使用扩充记忆体。
      UPTIME.EXE   将时间设为真实模式下的时钟。
      README.SI    包括有关 Soft-ICE 但未出现在手册中之资料。
      SAMPLE.EXE   是个在课程中使用到的展示程式。
      SAMPLE.ASM   是展示程式的组合语言程式码。
      SAMPLE.SYM   是展示程式的符号档。

§2.2 载入 Soft-ICE

      使用 Soft-ICE 之前先把磁片上所有档案拷进硬碟中,这些档案必需放在 DOS
  可以存取的目录中。

      Soft-ICE 可以当做驱动程式由 CONFIG.SYS 中载入或直接在命令列下执行。
  Soft-ICE 有许多功能必需由 CONFIG.SYS 中载入才能使用。

  〔注〕如果你没有延伸记忆体,就不能由 CONFIG.SYS 中载入 Soft-ICE 。此时你必
        需在 DOS 提示符号下执行它。

  §2.2.1 没有延伸记忆体的载入法

        没有延伸记忆体时,Soft-ICE 会尽可能的载入较高的记忆体位址。Soft-ICE
    使用的记忆体将会消失,使 DOS 程式无法找到它。既然在载入 Soft-ICE 後 DOS
    下的可见之记忆体变少了,建议您最好在其它常驻或控制程式之前先载入 Soft-
    ICE 。没有延伸记忆体时,你只需要在 DOS 下输入:S-ICE 即可。

  §2.2.2 以延伸记忆体来载入 Soft-ICE

        要以延伸记忆体来载入 Soft-ICE 可以用下列二种方法之一:

        1.由 CONFIG.SYS 中载入:如果你想使用下列功能时,你必需以此方法载
            Soft-ICE 。

            * 和其它使用 ROM BIOS 的程式共用记忆体。(像:VDISK.SYS 、
               RAMDRIVE.SYS 、HIMEM.SYS 、CACHE 程式等。)

            * 使用 Soft-ICE EMM 4.0 的功能。

            * 使用 Soft-ICE 做符号或原始程式码层次的除错。

            * 使用 back trace ranges 。

            * 和其它 Nu-Mega 产品一起使用。像:MagicCV 。

            由 CONFIG.SYS 中载入时,Soft-ICE 会为自己和它的相关部份在延伸记
            忆体中配置一块记忆体,如此才不会发生记忆体冲突。Soft-ICE 必需在
            其它会配置延伸记忆体的程式载入前载入。一般而言,Soft-ICE 最好是
            CONFIG.SYS 中第一个载入的驱动程式。对刚使用 Soft-ICE 的人来说,
            用以下叙述把 Soft-ICE 当成是 CONFIG.SYS 中第一个载入的程式事明
            智的:  DEVICE = drice:\path\S-ICE.EXE /SYM 50

            drive 和 path 代表 Soft-ICE 所在的磁碟和路径。这叙述会在系统开始
            时载入 Soft-ICE 且在课程中也适用。然而这样并没有启动 Soft-ICE
            一些有用的功能,像 EMM 4.0 。你可以在你更有经验後重新设定 Soft-
            ICE 以启用这些功能。如果你已经有使用 Soft-ICE 的经验或想立刻使用
            这些功能,请参阅第六章 --- Soft-ICE 初始状态的选择。

            〔注意〕在你的系统上初次载入任何新的驱动程式时准备一张可以开机
                    的磁片才是明智的。这是用来防止现在的设定和你的系统不相
                    容的不幸事故。

        2.直接在 DOS 的提示符号下输入 S-ICE 来执行 Soft-ICE 。载入前 Soft-
            ICE 会显示载入的讯息和提示符号。如果不想出现这提示符号,在
            S-ICE.DAT 中加入 EXTENDED 。查阅 §6.4 以获得更多有关
            S-ICE.DAT 的资讯。以这个方法载入 Soft-ICE 时,Soft-ICE 会自动载
            入延伸记忆体的最高处,不管是否有东西已经在那儿。如果你确定没有
            其它程式使用延伸记忆体,这种载入法是可接受的。以此方法载入时,
            Soft-ICE 完全不占主记忆体。

            〔注〕由命令列载入 Soft-ICE 时,你无法使用 Soft-ICE 的全部功能
                  。如果你想把 Soft-ICE 当独立的除错器使用,建议您从
                  CONFIG.SYS 中载入 Soft-ICE 。

        如果你必把 Soft-ICE 当驱动程式载入,但不想 Soft-ICE 永远存在,你应
    在载入时加上 /UN 参数。查阅 §6.3.1 以取得更多资讯。


  §2.2.3 把 Soft-ICE 设定成定制载入

        你可以从 CONFIG.SYS 中以参数或用 Soft-ICE 的初状态档 S-ICE.DAT 来定
    制 Soft-ICE 。CONFIG.SYS 中的参数设定让你可以设定 Soft-ICE 如何使用延伸
    记忆体。S-ICE.DAT 让你设定功能键和定义自动启始字串。自动启始字串是用来
    载入一串每次载入 Soft-ICE 要做的命令。参阅第六章以取得更多资讯。

§2.3 解除 Soft-ICE 的常驻

      偶尔你可能会需要解除 Soft-ICE 的常驻。典型的例子是为了要执行 80286 或
  80386 保护模式程式而需要解除 Soft-ICE 。要解除 Soft-ICE ,打入:S-ICE /U

      这个命令会把机器切回真实位址模式。如果 Soft-ICE 是由 CONFIG.SYS 中载
  入的,则解除後记忆体仍不能被其它程式使用。如果 Soft-ICE 从命令列载入的,
  则解除後会释放记忆体。

      〔注意〕如果你的系统有任何 backfilled memory 或扩充记忆体正被使用,解
              除 Soft-ICE 会使系统当掉。

§2.4 重新载入 Soft-ICE

      即使 Soft-ICE 一开始是从 CONFIG.SYS 中载入的,也可以在任何时候重新载
  入。如果 Soft-ICE 是由 CONFIG.SYS 中载入的,那原先载入时的设定依然有效。
  要重新载入 Soft-ICE ,输入:S-ICE 。



                  ┌——————————————————┐
                  │  第  二  节       指        令     │
                  └——————————————————┘

      第二节包括每个指令的语法、解释及范例。所有的数字均以 16 进位表示。使
  用到 + - * / 或暂存器的数字均可视为运算式。所有的指令都不区分大小写。指令
  语法叙述中的斜体字需以真实的值代替而不是打入斜体字。

      以下是本节中所使用的代号:

          [ ]  ---  语法中非必用的部份

          < >  ---  可选用的部份

          X|Y  ---  使用 X 或 Y  ( X Y 择一使用 )

        count  ---  count 指定中断点条件要成立几次才会真正引发中断。如果没
                    有设定,内定值是 1 。每次引发中断而叫出 Soft-ICE 的视窗
                    後,记数器自动回复为原先指定值。

         verb  ---  指定在什麽状况下中断点会做用。R 代表读取;W 代表写入;
                    RW 代表读取及写入;X 代表执行。

      address  ---  位址。由两个 16 位元之字组以冒号分隔而组成。第一个字组
                    代表区段位址,第二个字组代表差距位址。位址可以由符号或
                    暂存器构成,也可以包括 $ 、. 、@ 等特殊符号。参阅
                    §3.8 以取得更多资讯。

      break-number  ---  中断点号码是在你修改中断点(即编辑、删除、重新启动
                         、暂停作用)时使用的。它是用来代表各中断点的代码。
                         中断点号码是由 0 到 F 。

         list  ---  一串由逗号或空白分隔的中断点号码。

         mask  ---  由 1 、0 、X 所构成的位元遮罩。X 代表不处理的位元。

               例如: BPIO 21W EQ M 1XXX XXXX
                      如果 21 埠被写入且造成其高位元被设定则会引发中断。

                    第   四   章       如何使用中断点指令

§4.1 序言

      Soft-ICE 具有以往只有硬体除错器才具有的中断点能力。因为 80386 晶片的
  威力和弹性,使我们不需要额外的硬体设备就能有更强大的中断点能力。

      中断点的触发可以由记忆体某位址的读取、记忆体范围的读取、程式的执行及
  埠的存取来达成。Soft-ICE 赋与每个中断点一个一位的 16 进位号码( 0 - F )
  。这个中断点号码是当你对中断点做删除、中止、启动、编辑等动作时使用。

      Soft-ICE 的所有中断点都是 "sticky" 。这个意思是这些中断点在启动後不会
  自动消失。你必需以 BC 或 BD 指令来消除或关闭它。Soft-ICE 一次可以处理 16
  个中断点。同种形态的中断点最多可以有 10 个。但记忆体位址的中断点 ( BPM )
  因 80386 处理器之暂存器的缘故,最多只能设 4 个。

      中断点可以设个计数参数。计数参数是中断点真正触发作用前被忽略的次数。

§4.2 设置中断点

  指令:

      BPM BPMB BPMW BPMD  ---  在记忆体位址被存取或执行时引发中断

                     BPR  ---  对记忆体范围设置中断点

                    BPIO  ---  对 I/O 埠存取时触发中断

                   BPINT  ---  呼叫插断时触发中断

                     BPX  ---  设置 / 清除 执行中断点

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -