您的位置:首页精文荟萃破解文章 → SoftICE for WIN95中文命令解说(八)

SoftICE for WIN95中文命令解说(八)

时间:2004/10/15 0:51:00来源:本站整理作者:蓝点我要评论(0)

 
 


























































































































命令: I1HERE
作用: 遇到内嵌的INT 1指令时激活SoftICE
语法: I1HERE [on | off]
用法:
		
I1HERE 命令使SoftICE在遇到程序中内嵌的INT 1指令
时弹出.I1HERE在调试程序时需在某处暂停时特别有用
.在SoftICE弹出之前, SoftICE会检查当前是否有一条
INT 1指令在程序中.如果没有的话,SoftICE将不弹出.
在程序要暂停的指令之前加一句INT 1 就能做到这一
点.SoftICE弹出时,EIP 会停在INT 1的下一条指令后.
I1HERE 不带参数将显示当前I1HERE的状态.缺省为OFF
I1HERE 在与如BoundsChecker 之类的调试工具分工协
作时很有用,因为BoundsChecker用到 INT 3,为了防止
冲突应使用INT 1. 另外,VMM,Windows内存管理的VxD,
在Windows出现某些严重错误时会在严重错误返回前执
行一个INT 1指令.如果此时I1HERE 为ON时, 你就能跟
踪这类错误. 如由VMM因换页错误而产生INT 1 时寄存
器的值如下:
.EAX = 错误地址.
.ESI  指向一个ASCII字符串(信息).
.EBP  指向一个CRS(在DDK的VMM.INC中定义的客户寄
    存器结构)
点评:
		
基础信息: INT 1 实际上是单步中断的处理例程. CPU
在检测到 TP 标志为1时(TP是由DEBUGGER设的), 就自
动进行这一例程. DEBUGGER 们挂接这个中断例程进行
一些诸如显示当前寄存器值等操作,并等待用户进一步
的指令. 在程序中直接用 INT 1指令也能达到效果.
SoftICE不象DOS下的DEBUG.EXE,一碰到 INT 1 就中断,
缺省是不中断的,只有当I1HERE 为 ON 时才中断.
命令: I3HERE
作用: 在遇到INT 3 指令时激活SoftICE
语法: I3HERE [on | off]
用法:
		
I3HERE ON 将使SoftICE每碰到一个 INT 3 时都弹出,
这在调试程序时需要在某处暂停特别有用.在你需要暂
停的指令之前加一个INT 3 就行.如果你是编 WINDOWS
程序,加个函数 DebugBreak(). 这个函数也执行一个
INT 3.
I3HERE 不带参数将显示当前状态.请参见I1HERE.
点评:
		
基础信息: INT 3 是断点中断处理例程.也被DEBUGGER
们挂接,显示寄存器值,给出一些信息,并等待用户下一
步操作. DEBUGGER在下断点时,将断点处的指令替换成
INT 3,把替换下的指令保存,在执行完例程后再恢复原
先保存的指令,修改堆栈中的断点地址, 使程序得以继
续. DOS下的老DEBUG.EXE当遇到程序中的INT 3 指令时
会进行同样的操作,也修改堆栈中的断点地址,所以IP又
停在那条INT 3 上, 如果你打入 G ,程序将一直停在此
处,这时改一下IP就可以了.
命令: IDT
作用: 显示中断描述符表
语法: IDT [interrupt-number]
用法:
		
interrupt-number: 所要显示的中断号

IDT 命令读取中断描述符表寄存器的值, 获得表基址,
然后显示中断描述符表的内容.IDT 命令不带参数将显
示所有中断的情况,如果带中断号, 则只显示相应的入
口. 输出参数如下:
interrupt number: 0-05fh的中断号.
interrupt type : 中断类型如下:

    ---------------------
    CallG32: 32位调用门.
    CallG16: 16位调用门.
    TaskG:  任务门.
    TrapG16: 16位陷肼门.
    TrapG32: 32位陷肼门.
    IntG32: 32位中断门.
    IntG16: 16位中断门.
    ---------------------

address     : (选择符:偏移量)形式的地址.
selector's DPL : 选择符的描述符特权级,0,1,2,3
present bit   : P 或 NP, 表示该描述符是否在内
         存中.
Owner+Offset  : 符号名或拥有者名,和在它们中的
         偏移.
点评: 参见GDT,LDT.
命令: LDT
作用: 显示局部描述符表
语法: LDT [selector]
用法:
		
selector: 指定LDT 选择符
LDT 命令将显示局部描述符表的内容. SoftICE先读取
局部描述符表寄存器的值,再定位描述符表. 如果局部
描述符表不存在,会显示一个错误信息. 如果指定选择
符,则只显示该选择符所指向的描述符. 如果指定的选
择符是一个全局选择符, 则SoftICE将自动显示该全局
选择符所指的描述符.

输出:LDT 的线性基址和长度将显示在输出数据的顶行
输出数据的每一行内容的说明:
value: 最低两位即描述符特权级
type : 描述符类型,如下:
    ---------------------------
    Code16 : 16位代码描述符
    Data16 : 16位数据描述符
    Code32 : 32位代码描述符
    Data32 : 32位数据描述符
    CallG32: 32位调用门描述符
    CallG16: 16位调用门描述符
    TaskG32: 32位任务门描述符
    TaskG16: 16位任务门描述符
    TrapG32: 32位陷肼门描述符
    TrapG16: 16位陷肼门描述符
    IntG32 : 32位中断门描述符
    IntG16 : 16位中断门描述符
    Reserved: 保留的描述符
    ---------------------------
    
base    : 描述符中的段基址
limit   : 描述符中的段界限
DPL    : 描述符特权级,0,1,2,3
present bit: P 或 NP 表示该段是否在内存中
segment attributes: 段特性:
    ---------------------------
    RW: 数据段可读写
    RO: 数据段只读
    RE: 代码段可读可执行
    EO: 代码段只可执行
    B : TSS(任务状态段)忙置位
---------------------------
点评:
		
这段翻译并不完全用PDF手册上的.如"selector" 原指
选择符(器),用来指向描述符表中的描述符,而PDF手册
中type 的说明全用到 selector. 说的意思虽是一样,
但和别的文献矛盾,故认为不妥,将其翻译成descriptor
即描述符. 实际上可以看出,一个选择符指向一个描述
符,两者是一致的. 描述符类型实际上也就是指向它的
选择符类型.
命令: LHEAP
作用: 显示Windows 局部堆
语法: LHEAP [selector | module-name]
用法:
		
selector  : 局部描述符表数据选择符.
module-name: 16位 模块名.
LHEAP 显示Windows程序在全局堆中申请的数据信息.
如果不跟选择符参数,当前的DS 寄存器的内容(数据选
择符)被做为缺省值. 用前次说过的 HEAP 命令找标有
LH 的选择符来做为LHEAP的参数.如果用module-name
做参数,则SoftICE用此模块的缺省数据段进行堆遍历.
输出:
offset: 16位的偏移量(相对于相应的选择符基址)
size : 堆入口(每个组成部分)的字节大小.
type : 类型如下:
    
    ---------------------
    FIX : 固定的.
    MOV : 可移动的.
    FREE: 空闲的.
    ---------------------

handle: 相应的句柄.对固定的堆组成部分来说, 此值
    和offset 相等,且是由 LocalAlloc()返回的.
    对于可移动的组成部分来说,此值将会被做为
    LocalLock()的参数.
点评: 无.(天气好热!翻译得好累!)
命令: LINES
作用: 改变SoftICE窗口的显示行数
语法: LINES [25 | 43 | 50 | 60]
用法:
		
LINES 命令用来改变SoftICE窗口的显示行数. 默认为
25行.可以有:
25 行;43 行;50 行;60 行;43,50,60行只适用于VGA卡.
LINES 不带参数将显示当前行数.如果用 ALTSCR 命令
切换显示器输出到单显,SoftICE自动转为25行,再转回
VGA卡时要手工用 LINES 命令来恢复原值.
点评:
		
实际上, 我的3.20用的是SoftICE自带的通用视频驱动
程序,行范围可以从25一直到128 !!(除非为SoftICE开
的显存不够)
命令: LOCALS
作用: 从当前栈中列出局部变量
语法: LOCALS
用法:
		
输出:
Stack Offset  : 栈偏移.
Type definition: 类型定义.
Value,Data,or structure symbol({...})
        : 值,数据,或结构符号.
SoftICE根据局部变量的类型来用不同的形式显示它们,
如果是指针,则显示所指向的数据.如果是结构,则显示
结构符号.如果既不是指针,又不是结构,则显示本身值.
点评: 无.

    
    
     
    
    
     

相关阅读 Mac访问Windows共享文件夹Windows 7正版系统验证方法windows 8.1系统版本号查看方法Windows 8.1系统电话激活时无法输入微软返回代码解决方法Windows 8如何调整屏幕分辨率windows8.1磁盘占用100%解决方法Mac双系统如何删除Boot Camp安装的Windows分区Apple教你如何在Mac 上运行 Windows

文章评论
发表评论

热门文章 去除winrar注册框方法

最新文章 比特币病毒怎么破解 比去除winrar注册框方法 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据

人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程