写在前面
第一部分(.-A)
第二部分(B-B)
第三部分(B-B)
第四部分(C-D)
第五部分(D-F)
第六部分(F-G)
第七部分(H-I)
第八部分(I-L)
第九部分(M-P)
第十部分(P-P)
第11部分(P-S)
第12部分(S-T)
第13部分(T-V)
第14部分(V-W)
第15部分(W-Z)
  SoftICE for WIN95中文命令解说(十)
  Copyright (c) 1999 http://winice.yeah.net
命令: PAGE
作用: 显示页表信息
语法: PAGE [address [L length]]
用法:
		
address : 段:偏移量 或 选择符:偏移量 格式的地址
length  : 要显示页的数量.
PAGE 命令用来列出当前页目录和各个页表的情况.(在
Windows NT 中可以实现列出多个页目录的情况, 这里
就不涉及了) 在x86的体系中, 一个页目录包含1024个
页目录项(每个页目录项占4个字节)每个页目录项又指
向一个页表,每个页表包含1024个页表项 (每个页表项
也占4个字节),每个页表项指向一个4KB大小的页.所以
这样的体系管理着1024*1024*4=4GB大小的空间.

PAGE 加地址参数将显示映射到相应地址处的页表项的
内容,包括以下部分:
.由该页表项映射的页的线性虚拟地址.
.由该页表项映射的页的物理地址.
.该页表项的各种特性,比如是否在内存中,存取权限等.
 这里的特性是CPU架构时确定的.
.该页的类型,这个是页表项中的Windows定义位决定的.

PAGE 加地址,加L参数将显示连在一块的若干个页表项
但要注意的一点是:PAGE命令在显示这样一块连续页表
项区域时,不会跨过页表界线. 也就是说显示出来的页
表项有可能会少,这时再用一个PAGE就可.

PAGE 不加参数将显示当前页目录的内容. 第一行显示
页目录的物理和线性地址.后面的每一行显示一个页目
录项的内容.

输出:
physical address: 物理地址.如果显示的是页目录,(
即PAGE不加参数),这个地址是页目录项的物理地址,即
相应页表的地址. 如果显示的是页表,(即PAGE 加地址
参数), 则这个地址是内存中相应页的物理地址.

linear address  : 线性地址.如果显示的是页目录,(
即PAGE不加参数),这个地址是页目录项的线性地址,即
相应页表的地址. 如果显示的是页表,(即PAGE 加地址
参数), 则这个地址是内存中相应页的线性地址. 如果
加L参数,则此地址是第一个页的线性地址.

attribute       :下面是页目录项或页表项的属性:
        ---------------------
        P      在内存中
        NP     不在内存中
        D      又脏又快的DOS!
        A      存取位
        
        U      用户属性
	S      管理员属性
	R      只读
	---------------------

type             :每个页表项在架构中都留有一个
                  3bit的OS字段,被操作系统利用,
                  Windows就定义如下的类型:
        ---------------------
        System    Private
        Instance  Relock
        VM        Hooked
        ---------------------
        系统      私有
        实例      重锁
        虚拟机    钩子
        ---------------------
点评:
命令: PAUSE
作用: 满屏后是否暂停显示
语法: PAUSE [ON | OFF]
用法:
		
PAUSE 命令将控制是否在SoftICE命令显示输出到达满
屏后暂停.默认PAUSE 为ON,即在满屏时暂停. PAUSE命
令不加参数将显示当前状态.
点评: 也可用SET PAUSE [ON|OFF]
命令: PCI
作用: 显示系统中每个PCI设备的情况.
语法: PCI
用法:
		
PCI 命令显示系统中每个PCI设备的配置寄存器内容.
不要在非PCI的系统上使用这个命令. 大多数输出的内
容都一目了然,少数的没有说明,可以参考PCI详细的说
明书.
点评: 我倒是用它来看显卡的制造商.
命令: PEEK
作用: 从物理内存中读数据
语法: PEEK[size] address
用法:
		
size   : B 字节(默认值);W 字;D 双字;
address: 物理内存地址.

PEEK 命令显示从指定物理内存中来的指定大小的数据
PEEK 命令在读取内存映象的I/O 寄存器的值时很有用.
点评: 参见POKE
命令: PHYS
作用: 显示某个物理地址对应的所有虚拟地址.
语法: PHYS physical-address
用法:
		
physical-address: 物理地址, 是由x86的分页机构转
换来的.这个物理地址是传到计算机的总线上的地址. 
而且在操作内存映象的硬件设备时(如显存 )显得特别
重要.
Windows用x86体系的虚拟寻址方式在虚拟地址(被程序
用到)和物理地址(被硬件设备用到)之间建起一座桥梁.
在很多情况下,一段物理地址可能出现在多个页表项中,
所以就存在一个物理地址对多个虚拟地址.
SoftICE在表达式中不接受物理地址,所以应用PHYS 命
令来进行转换.
点评: 无.
命令: POKE
作用: 向物理内存写数据.
语法: POKE[size] address value
用法:
		
size   : B 字节(缺省值);W 字;D 双字
address: 物理内存地址;
value  : 要输出字节,字,或双字.
POKE 命令将往指定的物理内存地址处写指定大小的数
据.这对在写内存映象的I/O 寄存器的值时很有用.
点评:
命令: Print Screen键
作用: 打印屏幕内容
语法: 按下PrintScreen键
用法:
		
这个功能将SoftICE屏幕上的内容输出到打印机. 默认
的打印机端口是LPT1.可以用PRN命令来改变打印端口.
由于SoftICE对外设的读写是直接往I/O端口的,所以这
个功能只能用于直接联接在COM口或LPT口上的设备,而
不支持网络打印.
也可以用SoftICE Loader将内容记录到文件中去.
点评:
		
打印机我没有试过,可用Loader将内容都记录下来是非
常不错的,有时记录一段小代码不必动用w32dasm了,用
Loader就可以代替,非常好的,我推荐您试一下!!!!
  回到文章的开头