命令soft-ice命令详解f-o命令f作用填充某一块内存区域语法f

内存的作用  时间:2021-01-12  阅读:()

SOFT-ICE命令详解⑵

F-0

命令:F

作用填充某一块内存区域

语法 Faddress I lengthdata-l ist

用法length:字节长度data-l ist:所要填的数据.可以是用单引号或双引号括起來的字符串执行F命令将向所指定的内存区域填充length长度的数据如果数据不够长度将重复数据直到达到长度为止.

点评:无

命令:FA U LTS

作用打开或关闭错误跟踪功能

语法:FA U LTS[o n | off]

用法

FAULTS命令将打开或关闭SoftICE的错误跟踪功能.不加参数将显示当前的开关状态.

点评

由于SoftICE做为一个DEBUGGERS ULTS默认为ON,所以一旦CPU有非法指令,SoftlCE就会不停地弹出让你知道错在哪里实际在工作中这样的情况如果太频繁地发生,最好将其置为OFF.我一般将其置为ON,当发生非法指令时再手工置为OFF.你也可以在WINICE.DAT中一开始就置其为OFF.初学者一般不知道有这个命令一旦发生非法指令,除了按R键只有傻站着. ・ 

命令:FILE

作用显示或切换当前源文件

#语法:FILE [fi le-name]

用法

FILE命令常用来辅助在源文件川没有符号表的地方下断点.用FILE命令将所需的源文件显示在代码窗口中用SS命令查找一下再用BPX或F9来下断点.如果加文件名参数则所选的文件变成当前文件并被显示在代码窗口中.如果没有文件名参数,则显示当前的源文件如果当前有的话

•如果加* 则列岀当前符号表中所有源文件.在WIN95中用FILE加文件名同时也切换内存地址内容.

点评

- •般用于高级编程工具的辅助调试如C语言等.不过这些编程工具已经内置DEBUGGER,所以就看个人习惯了.

命令:FKEY

作用显示或修改当前快捷键定义

语法 FKE Y[function-keystring]

用法function-k ey:快捷键

F1-F12:

SF1-SF12:Shift键加Fl -F12

CF l-CF12:Ctrl键加Fl -Fl 2

AF1-AF12:Alt键加F1-F12string:一个或多个SoftICE的命令.

命令前加八表示在按快捷键时不显示相应的命令内容.命令后加;代表冋车.FKEY后只跟function-key不跟string,将取消该快捷定义.除了用F KEY命令可以定义快捷键外用SoftICE的L OADER也能做到这一点默认快捷键清单

Fl=h; F2=Awr;

F3=Asrc; F4=Ars;

F5=Ax; F6=Aec;

F7=Ahere;F8=At;

F9=Ab px; F10=Ap;

F 11=AG@SS:ES P; F12=Ap re t;

SF3=Aforma t;CF8=AXT;

C F9=TRACE OFF;CF10=AXP;

CF11=SHOWB;CF12=TRACEB;

AFl=Awr;AF 2=Awd;

AF3=Aw c;AF4=Aww;

A F5=CLS;AF8=AXT R;

AFl l=Adddataaddr->0;

AF12=Adddataaddr->4;

CFl=altscroff; l ines 60;wc32;wd 8;

CF2=Awr;Aw d;Awc;

点评:无

命令:F LA S H

作用:在P和T命令执行过程中刷新Windows屏幕

语法:FLASH[on | off]

用法

如果将FLASH置为ON则在执行T或P命令吋,SoftICE将刷新一下Windows屏幕这在调试一个直接对显存操作的程序时特别有用.在一般情况下当用P命令跨过一个CALL时而此CALL 又调用显示驱动程序时,So f-tICE才重新刷新屏幕.FLASH命令不带参数将显示当前状态.默认FLASH OFF.

点评:无

命令:FORMAT

作用改变数据窗口的显示格式

语法:FORM AT

用法

FORMAT命令用來改变数据窗口的显示格式.SoftICE冇快捷键Shift-F3來代替FORMAT.显示格式将按字节字双字短实型,长实型,10字节实型循环.

点评参见D,DATA命令.

命令:G

作用执行到某一地址

语法G[=start-addre ss] [break-a ddress]

用法

=s tart-address :开始地址break-address :中断地址

G命令不带参数将从Soft ICE屮返回.如果带参数break-ad dress,则Softl CE将在所指定的地址处下一个一次性断点如果带=start-addre ss,SoftlCE将从指定的地址处开始执行否则从当前CS:EIP 处执行.程序中其他的断点非G命令下的断点照样起作用.无论是谁先弹115,都将清除G命令所下的一次性断点.

G命令不带参数类似于X命令.G命令在Windows95中使用除错寄存器如果除错寄存器用完则用I NT 3.

点评由于G命令缺省用DRx,所以有吋可以对付一些在INT 3上作手脚的程序.

命令:GDT

作用显示全局描述符表

语法:GDT[selector]

用法selector:指定GDT选择器

GDT命令将显示全局描述符表的内容.如果加选择符参数则只显示此选择符所指的描述符.输出:GDT的线性基址和长度将显示在输出数据的顶行.

输出数据的每一行内容的说明value:最低两位即描述符特权级type:描述符类型如下

Codel6:16位代码描述符

Datal6:16位数据描述符

Code32:32位代码描述符

Data32:32位数据描述符

LDT:局部描述符表描述符

TSS32:32位任务状态段描述符

TSS16: 16位任务状态段描述符

Cal lG32:32位调用门描述符

Cal lG16: 16位调用门描述符

TaskG 32:32位任务门描述符

TaskG16:16位任务门描述符

TrapG 32:32位陷腓门描述符

TrapG16: 16位陷月井门描述符lntG32:32位中断门描述符lntG16: 16位中断门描述符

Reserved:保留的描述符base:描述符中的段基址l imit:描述符中的段界限

DPL:描述符特权级0123present bit:P或NP表示该段是否在内存中segme ntattributes:段特性

RW:数据段可读

R0:数据段只读

RE:代码段可读可执行

E0:代码段只可执行

B:TSS 任务状态段忙置位

ED:数据扩展方式

参见LDT.

点评

这段翻译并不完全用PD F手册上的.如“selector11原指选择符器 用来指向描述符表屮的描述符而PDF-Ptype的说明全用到selector说的意思虽是一样但和别的文献矛盾故认为不妥将其翻译成descriptor即描述符.实际上可以看出,一个选择符指向一个描述符两者是一致的•描述符类型实际上也就是指向它的选择

符类型.

命令:GENINT

作用强行产生一个中断

语法GENI NT[nmi I intl | int3 | interrupt-number]

用法inte rrupt-number:对Windows95来说,0・5fh

GENINT强行产生一个中断用于SoftICE和别的DEBUGGER协作的时侯如:GENINTnmi将使SoftICE将控制返还给CodeView ForDos. 对其他DEBUGGER,请尝试O,1,2,3GE NINT还用于测试中断例程.但SoftICE不检测一个中断是否有效它只是摹拟中断的产生,所以当用此命令时要注意相应的中断例程是否存在.

点评:无

命令:H

作用显示帮助信息

语法:H[command]

用法

键入H命令不带任何参数将显示所有命令的帮助.要获得详细的帮助在H后加命令名就可.详细的帮助将包括命令的描述命令的语法和例子.

点评

H命令可以很方便地帮助使用者查询SoftICE的命令.实际上在命令窗口的底部有一个状态条,它提供的实吋帮助也是很有用的.

命令:HBOOT

作用:系统重新启动

语法:H BOOT

用法

HBOOT将重新启动计算机.等同于按Ctrl+Alt+Del组合键.HBOOT—般都能成功只有特殊情况下某些插卡需要重加电才用机器上的RES ET或POWER键.

点评

HBOOT让我想到两件事

1,以前学微机时老师老是盯着我们唯恐我们乱启动机器•想起来真是不寒而栗好象是我们的过错一样.可机器明明死了嘛不重新启动怎么行

2 有大部分品牌机上没有R ESET键死机就按POWER键按得老板倒抽凉气. : 

命令:HEAP

作用显示Win dows全局堆

语法 H EAP-L[free |module-na me | selecto r]

用法

-L :只显示含局部堆的全局堆入口module-name:模块名.selector: LDT选择符

HEAPFREE将显示空闲的全局堆.

HEAP跟模块名将只显示由指定的模块拥有的全局堆入口. HEAP跟LDT选择符将只显示与此选择符相应的全局堆入口. HEAP不带参数将显示整个全局堆的情况.

输出selectororhandle:选择符符或句柄.a ddress :32位虚拟地址size :堆的大小字节modulename :模块名type :全局堆的类型code:不可丢弃的代码段code D:可丢弃的代码段

Data :数据段

ModuleDB :模块数据基础段

TaskDB :任务数据基础段

BurgerM: ”三明治”僦是堆本身Al loc:被动态分配的内存

Resource:Windows资源

额外信息

如果某全局堆的入口是代码段或数据段则会显示该段在.EXE中的段号.如果某全局堆的入口是Wind ows资源则会附加显示如下资源类型

UserDef 用八自定义 ;lcon 图标 String字符串 ;Accel 快捷键  lconGrp 图标组 ;Cursor 光标 Menu 菜单 ;FontGrp 字体组  ErrTable 错误表 ;NameTabl 名字表 ; Bitmap

位图 ;Dialog 对话框 

Font 字体 ;CursGrp 光标组

点评

PDF手册中称堆本身为Burger->"三明治” 碎肉夹饼很贴切堆本来就是乱七八遭.命令:HEAP32

作用显示Windows全局堆

语法:HEAP32[hheap32 | task-name]

用法hheap32:由HeapCreate  返回的堆句柄.task-name:32位任务的名字.

HEAP32不带参数显示32位进程的堆的情况

.KERNEL32缺省系统堆.

.进程用H eapCreate   ^请的私有堆.

.两个由VM M产生的Ring-0级的堆.第一个是换页锁定的堆,第二个是可换页的堆. •一个属于所有虚拟机的Ri ng-0堆.

如果加上进程名,SoftlCE将显示所有该进程的缺省堆且地址内容也切换到该进程中.如果加上堆的基地址而不是进程名,SoftlCE将显示该进程的非缺省堆.

W IN DOWS95的调试版还提供了额外的调试信息想要用SoftICE看到这些信息必须.对于KERNEL32Ring-0堆必须安装有SDK除错版.

.对于VMM Ring-0堆必须安装VMM的DDK除错版.

输出信息HEAP32 :

HeapBase:堆的基址

MaxSize :堆可增长的最大范围在此范围内堆无需再创建一个新段.

Committe d:以下字节为单位当前存在于物理内存中的被保证的内存大小

Segments :堆中段的数量.当堆增长超出段所能容纳的范圉就建立一个新段

Ty pe :堆的类型

Privat e:由应用程序建立的R ing-3堆System:KERNEL32建立的Ring-3堆

RingO:VMM建立的Ring-0堆

VMM##: Ft]VMM建立的为特定虚拟机存储数据的堆.

输出信息H EAP32带参数 

A ddress:堆元素的地址.

Size:以字节为单位堆元素的长度.

F ree :如果堆元素是空闲的块则会显示“FR EE舄否则不显示.

点评:在SoftlCEv3.20实际操作上和手册说的屮有些许不同.

命令:HERE

作用:运行到当前光标所在行

语法:HERE

用法

HERE命令让程序一直走到光标所在行再停下来.注意

只有当光标在代码窗口中吋才有效.如果代码窗口不可见或光标不在代码窗口中则请用G命令代替•也可用EC命令将光标移到代码窗口中去再用HERE •

HERE命令有个快捷键F7.将光标定位到你想让程序暂停的指令处按下F7 程序将在此处设一个一次性断点.程序屮其他非一次性的断点照样起作用.无论是谁先弹出都将清除HERE所下的一次性断点.和G命令一样,HERE命令尽量釆用除错寄存器DRx,只有用完时才用INT3

点评:无.

命令:HWND

作用显示窗口句柄的信息

语法:HWND[-x] [hwnd | [[level] [pro cess-name]]

用法level :窗口等级号码.0是最高级.1其次等等.窗口等级代表了父窗口和子窗口的关系.-x :显示窗口的兀余信息.hwnd :窗口句柄.process -name:任何当前进程名

如果指定了窗口句柄就无需指定等级进程名等其他参数,SoftIC E将显示所指定窗口句柄的信息.

输出

ClassName:此窗口所屈类的名称或类的原子.

Wi ndow Procedu re:窗口函数.

点评:窗口句柄很有用的• 废话! 

命令: I

作用从输入/输出I/O端口读入数据

语法 I [size]port

用法size:B字节默认 ;W字;D双字p o rt:端口地址.

I命令在大多数情况下是作一个I/O输入指令获取真实的硬件端口的数据.在虚拟端口的情况下,取得真实值和应用程序所见到的虚拟值可能不同.对于21h和Alh端口,SoftlCE是例外,它不进行读取而是返冋So-ftICE弹出时的值.

点评:参见0命令.

命令 I1HERE

作用遇到内嵌的INT1指令时激活Softl CE

语法 I1HERE [on | off]

用法

I1HERE命令使SoftICE在遇到程序中内嵌的INT 1指令时弹出. I1HERE在调试程序时需在某处暂停吋特别有用.在SoftICE弹出之前,SoftICE会检查当前是否有一条IN T1指令在程序中.如果没有的话,SoftICE将不弹出.在程序要暂停的指令之前加一句INT 1就能做到这一点.Sof tICE弹出时,EIP 会停在INT1的下一条指令后.

I1HERE不带参数将显示当前I1HE RE的状态.缺省为OFF I1HERE在与如Bo undsChecker之类的调试工具分工协作时很有用因为Bounds Checker用到INT 3,为了防止冲突应使用INT 1.另外,V MM,Windows内存管理的VxD,在Wind ows出现某些严重错误时会在严重错误返回前执行一个INT 1指令•如果此时I1HERE为ON时你就能跟踪这类错误•如由VMM因换页错误而产生INT1时寄存

器的值如下

.EAX二错误地址.

• ESI指向一个ASCI I字符串信息 .

.EBP指向一个CRS 在DDK的VMM. INC中定义的客户寄存器结构

点评

基础信息: INT1实际上是单步屮断的处理例程.CPU在检测到TP标志为1时TP是由DEBUGGER 设的 就自动进行这一例程.DEBUGGER们挂接这个中断例程进行一些诸如显示当前寄存器值等操作并等待用户进一步的指令.在程序中直接用INT1指令也能达到效果.SoftICE不象DOS下的DEBUG.EXE,一碰到INT1就中断缺省是不屮断的,只有当I1HERE为ON时才屮断.命令 I3HERE

作用在遇到INT3指令时激活SoftICE

语法: I3HERE [on | off]

用法

I 3HERE0N将使SoftICE每碰到一个INT3时都弹出这在调试程序时需要在某处暂停特别有用.在你需要暂停的指令之前加一个INT3就行.如果你是编W IND0WS程序加个函数DebugBreak .这个函数也执行一个I NT3.

I3HERE不带参数将显示当前•状态.请参见I1HERE.

点评

基础信息 INT3是断点中断处理例程.也被DEBUGGER们挂接显示寄存器值给出一些信息,并等待用户下一步操作.DEBUGGER在下断点时将断点处的指令替换成INT3,把替换下的指令保存在执行完例程后再恢复原先保存的指令修改堆栈屮的断点地址使程序得以继续. DOS下的老DEBUG.EXE当遇到程序屮的INT3指令时会进行同样的操作也修改堆栈中的断点地址所以IP 又停在那条INT3上,如果你打入G,程序将一直停在此处这吋改一下IP就可以了.

命令: IDT

作用显示中断描述符表

语法: IDT[i nterrupt-num ber]

用法inter rupt-number:所要显示的中断号IDT命令读取中断描述符表寄存器的值获得表基址然后显示屮断描述符表的内容. IDT命令不带参数将显示所有屮断的情况如果带屮断号,则只显示相应

的入口.输出参数如下interrupt n umber:0-05f h的中断号.interr upt type:中断类型如下:

Cal lG32:32位调用门.

Cal lG 16:16位调用门. TaskG:任务门.

TrapG16:16位陷月井门.

TrapG32:32位陷腓门. lntG32:32位中断门. lntG16:16位中断门.add ress : 选择符:偏移量形式的地址.selector's DPL :选择符的描述符特权级,04,2,3present bit:P或NP,表示该描述符是否在内存屮.

Owne r+Offset:符号名或拥有者名,和在它们中的偏移.

点评:参见G DTZLDT.

命令:L DT

作用显示局部描述符表

语法:LDT[selector]

用法selector:指定LDT选择符LDT命令将显示局部描述符表的内容.SoftICE先读取局部描述符表寄存器的值再定位描述符表.如果局部描述符表不存在会显示一个错误信息•如果指定选择符则只显示该选择符所指向的描述符.如果指定的选择符是一个全局选择符则SoftIC E将自动显示该全局选择符所指的描述符.

输出:LDT的线性基址和长度将显示在输出数据的顶行输出数据的每一行内容的说明value:最低两位即描述符特权级type :描述符类型如下

Codel6: 16位代码描述符

Datal6:16位数据描述符

Co de32:32位代码描述符

Data32:32位数据描述符

Cal lG32:32位调用门描述符

Cal lG16: 16位调用门描述符

TaskG32:32位任务门描述符

TaskG16:16位任务门描述符

Trap G32:32位陷月井门描述符

TrapG16: 16位陷月井门描述符

IntG 32:32位中断门描述符lntG16: 16位中断门描述符

Rese rved:保留的描述符base:描述符中的段基址l imit:描述符中的段界限

DPL:描述符特权级,0,1,2,3

spinservers:圣何塞10Gbps带宽服务器月付$109起,可升级1Gbps无限流量

spinservers是Majestic Hosting Solutions LLC旗下站点,主营国外服务器租用和Hybrid Dedicated等,数据中心在美国达拉斯和圣何塞机房。目前,商家针对圣何塞部分独立服务器进行促销优惠,使用优惠码后Dual Intel Xeon E5-2650L V3(24核48线程)+64GB内存服务器每月仅109美元起,提供10Gbps端口带宽,可以升级至1Gbp...

Megalayer(48元)新增 美国CN2优化线路特价服务器和VPS方案

Megalayer 商家算是新晋的服务商,商家才开始的时候主要是以香港、美国独立服务器。后来有新增菲律宾机房,包括有VPS云服务器、独立服务器、站群服务器等产品。线路上有CN2优化带宽、全向带宽和国际带宽,这里有看到商家的特价方案有增加至9个,之前是四个的。在这篇文章中,我来整理看看。第一、香港服务器系列这里香港服务器会根据带宽的不同区别。我这里将香港机房的都整理到一个系列里。核心内存硬盘IP带宽...

HostYun 新上美国CN2 GIA VPS 月15元

HostYun 商家以前是玩具主机商,这两年好像发展还挺迅速的,有点在要做点事情的味道。在前面也有多次介绍到HostYun商家新增的多款机房方案,价格相对还是比较便宜的。到目前为止,我们可以看到商家提供的VPS主机包括KVM和XEN架构,数据中心可选日本、韩国、香港和美国的多个地区机房,电信双程CN2 GIA线路,香港和日本机房,均为国内直连线路。近期,HostYun上线低价版美国CN2 GIA ...

内存的作用为你推荐
美国服务器托管美国网站服务器去哪里租?海外域名怎样注册国外域名?域名申请申请域名需要什么条件?具体点!急!急!!!apache虚拟主机Apache跟虚拟主机有什么关系?域名停靠怎么域名停靠?域名邮箱域名邮箱帐号,密码是那些?域名劫持域名劫持到底有多严重,该如何量化域名服务器在网上买个域名和买个服务器有什么区别吗?org域名org域名做网站好不好新网域名新网域名是不是又挂了?
免费网站域名申请 河北服务器租用 双线主机租用 域名解析文件 virpus 韩国空间 优key 搜狗抢票助手 北京主机 java空间 e蜗牛 警告本网站美国保护 空间论坛 cdn加速原理 西安服务器托管 linode支付宝 永久免费空间 实惠 免费php空间 七牛云存储 更多