《SoftICE命令中文解说.docx》由会员分享,可在线阅读,更多相关《SoftICE命令中文解说.docx(74页珍藏版)》请在优知文库上搜索。
1、写在前面O-第一部分第二部分龈第四部分第五部分第六部分第七部分第八部分第九部分部分第11懿M12部分第13部分M14部分第15部分返回主页SoftICE命令中文解说之前笃Copyright(c)1999SoftICEforWin95是由NUMEGA公司出品的程序调试工具,它出色的性能深得用户的喜爱.但由于SoftICE的中文命令解释很少能够见得完全,所以我早有此想法,将其翻译成中文.把它纯粹当做一个好的DEBUGGER来看待,而不是一种秘密武器.最早是在武汉的JlNG1.EBBS上准备写一些有关SoftICE的文章,一个命令算做一封信,以换取YY,好买级别.很天真的想法!现在看起来,很好笑,最
2、后多亏CRACK区的蔡杰给了我很多很多YY,才让我那个极其幼稚的想法没有得到实现:)后来建立了个人网页,为了充实网页内容,旧话重提,一篇一篇写下来,到现在也算基本完成了.所有的命令均翻译自NUMEGA出品的SoftICECommandReferenceforSICE3.20,(PDF格式,NUMEGA网站有下载)少数地方增删.(不包括新版的SoftICE所添加的命令.)(共计,intoiceintoicef,16个文件,bg.gif,tri.gif,tr2.gif,3个图片)开头觉得好玩,写到一半的时侯变成一件苦差事了,好在有我亲爱的网友们给我的巨大的鼓励,让我没有放弃,在此一并感谢:蔡杰,文
3、岭,大兵,DingBoy,番外地,RuFeng吴朝相,SAC,梦晖,DBstar,dREAMtHEATER还有更多这里没有提到名字的朋友们!其实我这个网页也是说明一个道理,这个时代,没有什么不是自由的!(你要说是共享的也可以!)信息化的变革敲打着每家每户的门窗.人们的观念将随之产生翻天覆地的变化,那种小家气的作风,那种技术保守的时代,那种将教科书上的文章抄抄改头换面以换取稿费的日子将一去不复返.我们需要一个更明亮的未来,如果前辈没有给我们,那么就让我们自己来创造吧!末了,向所有的作者一样要加几句:由于本人水平有限,错误之处难免,恳请来信指正!我的邮箱:SPringwTiANWEi1999,9,
4、l安徽省淮南市mlookingforaJOB!1三前面第一部分-第二部分一部分第四部分第五部分第六部分第七部分第八部分第九部分第十部分MH部分M12部分第13部分M14部分M15部分返回主页SoftICEforWIN95中文命令解说(一)Copyright(c)1999E命令:田作在代码窗口中定位当前指令用:语法:用当代码窗口可见时,.命令(点命令)使得当前的CS:EIP法:所指向的指令可见,并且高亮显示.另外,此命令也把SoftICE从其他内存区域中切回原先弹出的内存区域.详见后面的ADDR命令.点当你在代码窗口中上下浏览时,有可能走得很远,那么评:这时一个.命令会让你在下一瞬间回到SOFT
5、lCE当前所在的CSiEIP处,再也用不着按PGUP,PGDOWN很多次了!O人命、令:田作计算一个表达式的值用:M.语?表达式用法:计算一个表达式的值.并以十六进制,十进制,带符号的十进制(0时有)和ASCII值多种形式显示计算结果.评.点一个非常高级的计算器,诸如46578*1999+ESI之类的计算不会再让你烦恼,另外由于可以显示ASCII,所以可以很方便地在各种数制之间察看.写入汇编代码语法:At用SICE内置的汇编器在内存中写入汇编代码.汇编器支持标准的80x86指令集.包括386,486,Pentium,Pentium-Pro,MMX,协处理器,新版的SICE还支持AMD的3DNo
6、w!,用PU,PIII的特有指令集.汇编将在A后的地址处开始.如法:果在A后没有加地址,那么汇编将在你上次汇编结束处开始.如果你是第一次键入A命令,且没有追加地址那么汇编将在当前CS:EIP处开始.另外,键入A命令后,在单独一行指令栏中键入USE16或USE32,将告诉汇编器是采用16位还是32位指令,默认是和当前的CS寄存器的模式一致.点评:O命令作用:语法:这是和DOS下DEBUG.EXE的用法一样的命令.一般改程序时,用A命令写入,再用CODEON(见稍后)命令看代码,记录原来的代码和改过的代码后再用工具软件如PCTOO1.SHACKVIEW之类查找修改.ADDR在SoftICE中显示或
7、是切换内存区域ADDR内存区域句柄I过程名用来察看某一个任务的私有内存区域,或是加参数内存区域句柄I过程名在SOftICE中切换某一任务的私有内存区域为当前可寻址的内存区域.一些参数的显示:.HAND1.E内存区域控制块的地址.PGTPTR每个任务私有页表的起址.TAB1.ES每个私有页表中的表项数目.MINADDR每个任务的线性地址的起址.MXDDR每个任务的线性地址的终址.MUTEXVMM用于页表管理的句柄.OWNER使用这块内存区域的实例的名字如果有多个相同名字的实例运行,ADDR带OWNER名字切换的话,切到表中的第一个有此NAME的实例所占的内存区域.所以带HAND1.E切换的话比较
8、精确.当用ADDR加参数后,可以用上面提到过的.命令来回到SoftICE弹出时所属的任务内存区域.这个牵涉到CPU的保护模式寻址方式和WINDOWS的内存管理,由分段机构产生的32位线性地址要经过分页机构评再转化为物理地址,这要牵涉到两个表的寻址.WINDOWS每次切换都将每个任务的私有页表拷贝到CR3寄存器所指的当前页表中.而ADDR所作的和WINDOWS所作的一样.所以当你在一个任务中弹出时,可以通过ADDR可以来看别的任务的私有内存区域.O命入PA1.TKEY令:作m改变用来呼叫SoftICE的热键用:语注A1.TKEYA1.T字母CTR1.字母SoftICE默认的热键为CTR1.+D,
9、用此命令可以将热键改法.用变,如果每次启动机器都要改,则可以把这条命令放入WINICE.DAT中.命令:作用:语法:这条命令是为了防止某些程序和SoftICE的热键相冲突而设的.如:A1.TKEYCTR1.S将热键改为CTR1.+SA1.TSCR切换SoftlCE的视屏输出.A1.TSCRONOF11如果你有双显示器,则这条命令将使SoftICE的窗口显用示在另一台单显上.注意,是老式的单显,不是VGA单显.法:实际上在启动WINICE时可用参数加强迫SoftICE用单显来显示.也可在WINICE.DAT中加入初始化串.在WIN95中用SoftICE自带的VIDEOSETUP可以很方便地设定.
10、例:A1.TSCRON将使输出改变到单显上.点这条命令将使SOftICE同一些老显卡兼容,也使调试变评:得方便,试想一台显示器显示正常的图像,另一台来显示跟踪屏幕,免去了按F4看原画面的步骤,在某些场合还是用得上的.以前的WDEB386调试器就非要双监视器才能工作.而SoftICE只要一台显示器就行了,这是个很大的进步,但为了和老传统兼容,它也提供了这个命令方便用户.O令:作用:语法:ANSWER自动监控通讯端口及将输出转移到MODEMANSWERoncom-portbaud-ratei=initoff此命令可以使SOftICE监控通讯端口,并将输出改变到一台远程的PC机上,此远程PC机必须运
11、行SERIA1.EXE(或SERIA1.32.EXE).当SoftlCE检测到远程PC上SERIA1.EXE发来的特定信息,就弹出,告诉你现在将连上远程用PC,然后再退出窗口,联接完成.一些参数:.COM-PORT串行通讯口,默认为COMl.BAUD-RATE1200,2400,4800,9600,19200,23040,28800,38400,57000,115000其中38400为默认波特率.I=INITMODEM的初始化字符串.占无,没有用过不知道:-(回到文章的开头1前面部分SoftICEforWIN95中文命令解说(二)Copyright(c)1999第二部分1部分第四部分命令:作用
12、:语法:BC清除一个或多个断点BClist*部分第六部分第七部分第八部分第九部分清除断点后,用B1.命令就看不到断点列表,且被清除的用断点不再起作用.法:参数:list:可以是将要清除的一系列断点,中间用空格或逗号隔开.* :清除所有的断点.亚,BC=BreakpointClearing第十部分MU部分M12部分第13部分M14部分第15邈返回主页命令:BD作用:使一个或多个断点失效语法:BDlist*使某个断点失效不同与BC命令的清除,暂时失效的断用点可以用BE命令来恢复.而BC命令是彻底清除.法:参数:list:可以是单个,也可以是一系列断点,中间用空格或逗号隔开.* :禁止所有的断点.点
13、、亚BD=BreakpointDisablling使一个或多个断点恢复有效BElistI*用来恢复前次用BD命令使之失效的断点.(每当新定用义断点或编辑断点时,系统自动将其置为有效)法:参数:list:可以是单个,也可以是一系列断点,中间用空格或逗号隔开.* :恢复所有的断点.点、正BE=Breakpointenablling在SoftICE历史数据库中显示或是选择曾经设过的断点用BH命令后,SoftICE将显示一个表,每一行是一个断点用,都是以前使用者曾经下过的断点,这时可以用上下光法:标键来定位,用INSERT键选择,再用ENTER键来确定.用ESC键取消.SoftICE只记录最近的32个
14、断点.而且只在WIN95正常退出后记录(记录到WINlCE.BRK中),这样就有一个问题.如果你在MSDOS.SYS配置中是BootGUI=I的话(即最正常的启动方式),当你SHUTDOWN机器时,控制并不回到SoftICE手中,就无法记录刚才的断点.这时只有改为BootGUI=O.注意:SoftlCE只在SHUTDOWN时记录,如果你用重新启动并切换.那是不行的.至少在我的V3.20是不行的.而且,如果你重新启动并切换.,再用EXlT命令想退回到WIN95,很容易出现VxD联接错.因为这样WINICE占并没有完全退出内存,用MEM.EXE可以看到这点.所以,SOftlCE的使用者最好在MSDOS.SYS中将上面所说的Boo-tGUI置为0.如果怕这样用多重配置的话还要每次开机敲一个WIN,可以在AUTOEXEC.BAT中改动,加入WIN.COM.(可不要在WINICE.EXE后再加WIN.CoM!画蛇添足!)若用SoftICE次数不多的话,可以每次启动WINDOWS后,再重新启动并切换到MS-DOS方式,再打WINICE.EXE,这样也可以的.BH的好处是,可以省