softice是什么东西?简单说说这个调试神器怎么用!

折腾老古董SoftICE:一次充满“回忆杀”的实践

大伙儿晚上今天瞎折腾了一下午,弄了个老掉牙的玩意儿——SoftICE。估计很多新入门的朋友都没听说过这东西了,但在当年,这可是个响当当的“神器”,尤其对于我们这些喜欢捣鼓系统底层、搞点逆向分析的人来说,简直是必备工具。

为啥突然想起来折腾它?

也没啥特别的原因,就是前几天整理旧硬盘,翻到了一些以前的资料,看到了SoftICE的安装包和一些笔记,一下勾起了不少回忆。心想,现在的系统还能跑起来这老古董吗?好奇心一上来,就决定动手试试看。

准备工作:虚拟机是少不了的

第一步,那肯定是找安装包了。我翻出来的那个是当年NuMega公司DriverStudio套件里的一部分,版本号好像是DS3.2。这玩意儿太老了,现在的Windows 10、Windows 11根本就别想直接跑起来,驱动都不兼容。

折腾虚拟机是免不了的了。我电脑上装了VMware Workstation,就用它。寻思着SoftICE当年最风光的时代,大概是Windows 98或者Windows XP?为了稳妥起见,我决定装个Windows XP SP3的虚拟机。找镜像,安装,过程还算顺利,毕竟XP这系统,闭着眼睛都能装

虚拟机装好XP之后,我就把SoftICE的安装文件拷了进去。这个安装过程倒是没啥特别的,一路“下一步”就行。主要是安装完之后的配置,比如加载驱动啥的。因为是在虚拟机里,也不用太担心搞崩系统,胆子也大一些。

启动与初体验:那抹熟悉的“蓝”

安装配置完毕,重启虚拟机。心里还有点小激动,不知道能不能成功调出来。当XP启动到桌面后,我按下了SoftICE的默认热键——Ctrl+D。噔噔噔!屏幕一闪,切换到了一个蓝色的字符界面!

没错!就是那个蓝!不是Windows蓝屏死机的那个蓝,而是SoftICE特有的那种深邃的蓝色背景,上面是白色的字符。看到这个界面,我真是感慨万千,仿佛一下子回到了十几年前熬夜调试代码的日子。

界面还是老样子,全是命令行,得靠键盘输入各种指令。什么bpx(设置断点)、g(运行)、t(单步跟踪)、d(查看内存)等等,这些指令虽然长时间没用,但肌肉记忆还在,稍微回忆一下就想起来了。

我随便找了个系统自带的*(记事本)来练手。先用here命令(或者直接输入程序名,如果它已经加载)定位到记事本的进程空间,然后随便找个函数入口下个断点,比如bpx CreateFileW。接着按g让程序跑起来,当记事本尝试打开或保存文件时,SoftICE“啪”的一下就断下来了。

实践过程:在汇编指令中穿梭

断下来之后,就可以为所欲为了,哈哈。我这回主要是体验和回忆,没打算搞什么大动作。

我主要做了这么几件事:

  • 查看寄存器:用r命令,可以看到CPU所有通用寄存器、段寄存器、标志寄存器的值。这对于理解程序执行状态非常重要。
  • 查看内存:用ddbdwdd等命令,可以按字节、字、双字等不同格式查看指定地址的内存内容。我随便看了看堆栈,还有一些代码段的数据。
  • 单步跟踪:用t命令(trace into,会进入函数调用)和p命令(step over,会越过函数调用)来逐条指令执行。看着汇编代码一行行地过,感受程序执行的脉络,这种感觉很奇妙。
  • 修改内存/寄存器:虽然没怎么实际改,但也试了试用e命令修改内存,用r eax=xxxx这样的方式修改寄存器内容。这可是SoftICE强大的地方,可以直接在ring0层面操作,权限非常高。

我还记得当年有个叫IceExt的插件,能给SoftICE增加不少好用的功能,比如更方便地查看各种系统结构,不过这回我没装,就用的原版。整个下午,我就在这个蓝色的字符界面里敲敲打打,看着汇编指令在眼前跳动,仿佛又回到了那个对计算机充满无限好奇的年代。

SoftICE这种调试器,工作在ring0态,能直接看到操作系统最底层的东西,对于理解驱动程序、系统内核、或者做一些深度的逆向分析,确实是把利器。虽然现在有了WinDbg这些更现代化的内核调试工具,图形界面也友好多了,但SoftICE那种纯粹、直接的感觉,还是挺独特的。

总结与感想

折腾了一下午,虽然没搞出什么惊天动地的成果,但成功在虚拟机里把SoftICE跑起来,并且简单操作了一番,还是挺有成就感的。主要是满足了自己的一点怀旧情怀。

通过这回实践,也再次体会到:

  • 基础很重要:汇编语言、操作系统原理这些基础知识,在用这类工具时,会让你如鱼得水。
  • 工具是死的,人是活的:不管工具怎么变,解决问题的思路和方法是相通的。SoftICE虽然老了,但它所代表的那种底层调试思想,并不过时。
  • 保持好奇心:即使是老旧的技术,重新审视也可能会有新的发现或感悟。

今天的分享就到这里。算是一次比较小众的实践记录,希望能给一些同样对老技术感兴趣的朋友带来一点点乐趣。现在用这玩意儿的人估计是凤毛麟角了,更多的是一种情怀和历史的见证。下次再有啥好玩的实践,继续给大家分享!