一个罕为人知的秘密(Windows Command Processor 内部命令)说来话长, 这个秘密早在纯DOS 时代(MS-DOS 6.22) 就被我以现了, 距今已经十多年了.这个秘密一直被我自己使用着, 我也一直不愿公开, 我是有点担心, 怕公开了会乱了方寸.奇怪的是, 恁多年来别人也没发现, 可能是有点冷门吧.那么, 为什么现在我又要公开此秘密呢?因为, 某些病毒也一直利用着此双刃剑向受害者发威.决定公开此秘密, 就是要把这潭水搅混, 让某些病毒也无所适从.这可能(必然) 也会使正规合法的程序受到影响, 不过那是另一课题的事了.接触正题吧, 这话怎么描述呢?其实操作系统之命令解释器CMD.EXE (之前一直叫) 的内部命令;也可以“作废(效果等同于删除)”、“改名”的。
这就是我要向大家披露的秘密的核心.那么,怎么“作废”和“改名”命令解释器的内部命令呢?“作废”和“改名”命令解释器的内部命令之后又有何影响呢?感觉倒述好.1. “作废”和“改名”命令解释器的内部命令之后有何影响?关于什么是内部命令和外部命令, 为了节省篇幅, 我就不多说了, 不明白者请查阅有关资料.不过, 不明白这事最好等明白了之后再来, 否则可能越看越不明白.内部命令有多少, 版本不同数量不尽相同; 通常版本高些数量多些, 功能也强些.这些内部命令为操作者提供了极大的方便.然而, 事物总是具有两面性的, 这种两面性有时表现为双刃剑性质.命令解释器的内部命令也不例外, 具有两面性的双刃剑性质.它们被操作者合法应用时, 是得力的工具, 助手.但这些命令解释器的内部命令, 一旦被病毒所利用时, 就是凶器, 后果不堪想象.举一例:rd /q /s C:\ 无异于format C:骇人听闻吗, 绝对不是, 目前, 病毒在受害者的机器里直接或通过脚本执行内部命令的实例比比皆是; 在这点上我是有发言权的,因为, 十多年来我的命令解释器一直使用的都是被我修改过的.在我这里由于病毒调用不到想调用的标准内部命令而被我截获的病毒脚本一筐筐一箩箩.也举个例子吧, 而这个例子只有病毒作者看到后会感到惊讶,因为, 通常在正常的系统中你根本就看不到这些脚本的, 它们达到目的后就自毁了.@echo offif not exist %SystemRoot%\system32\机器鼠.exe (今年流行机器鼠) copy mmouse.dat %SystemRoot%\system32\机器鼠.exe >nulattrib +h %SystemRoot%\system32\机器鼠.exe >nul 2>nulregedit /s mmouse.regdel mouse.dat >nuldel mouse.reg >nul:loopdel 0% >nulif exist 0% goto loop大体上就是这种格式. 其中, 机器鼠.exe 是比喻的病毒程序(它的前身是mmouse.dat)在这个病毒脚本中, 病毒调用了两个内部命令: copy 和del在这个病毒脚本中, 病毒最后利用del 0% 自毁了首先说, 病毒脚本可以在这里调用任何标准的内部命令已是事实.难道不可以调用前面所说危险命令:rd /q /s C:\rd /q /s D:\rd /q /s E:\............之所以, 目前这么狠毒的病毒还不多见;一是, 它们还未丧尽天良.二是......在这里我顺便阐述我的另一个观点;病毒, 不会, 不能太厉害了, 道理其实也很简单, 太厉害的病毒等于自杀.试想, 一中招机器立刻就等于高格或低格了, 那么, 这个如此厉害的病毒自己还能活吗?那就不能再叫病毒了, 必须新产生一个名词来称谓这种东西了.再回到主题上, 那么, 以上这个病毒在我这里就算基本上栽了.因为我这里不存在copy del ren rd md ......就连别名earse rename rmdir mkdir ...... 也不存在.也可以这么说吧, 除了cd chdir path if rem 我没改, 其余几乎都改了, 哈哈.这病毒能不栽吗, 它要把mmouse.dat 改名复制到目的地的目的达不到啊.自毁痕迹的目的也达不到了, 只好连脚本也被我捕获了.本段小结:如果你不懂CMD , 那么CMD 基本是为病毒准备的, 现在CMD 在大多数机器中不起什么好作用, 所以建议这样的用户禁用CMD 或删除CMD , 方法网上多的是.如果你懂CMD , 并且自己还时不时的用用, 那么, 我建议你也修理修理CMD .我必须告诉你, 如果你这么做了, 某些要调用CMD 的程序就不能运行了.不过, 主权还是在你手上, 只要你能够灵活应对还是没问题的(见后, 技巧) .我可以坦率地告诉你, 本文所介绍的内容不会对系统有不良的副作用.2. 怎么“作废”和“改名”命令解释器的内部命令我曾改过MS-DOS6.22 的我曾改过Win98, WinMe 的我曾经使Win98, WinMe 的Wininit.ini 失效(防毒效果很好, 想替换系统文件, 没门, 仍在使用中) 我甚至使AUTOEXEC.BAT 不叫此名(防毒效果也很好啊, 现在仍在使用中)也可以使Config.sys 不叫此名(意义不大, 搞DOS 驱动程序病毒的极少)我曾经使dir /a 彻底失效还是长话短说, 现在是XP 时代, 直击CMD.EXE 吧, 9x 举一反三很容易.首先复制一份CMD.EXE 到另处, 然后用16 进制的编辑器打开CMD.EXE转到相对扇区0000406 区(若是2003 的CMD.EXE 则为相对扇区0000408) ,好了, 所有的内部命令基本上都明码地摆在你面前了, 任你宰割, 任你修理了.由于XP 的CMD.EXE (5.1.2600.2180) 采用了Unicode (统一码) ;所以, 这些内部命令的关键字, 都是一个字母隔一个00码而描写的,如果你想作废某个内部命令, 就把它全改成00如果你想改名某个内部命令, 就随你便吧, 要注意隔位更改, 且长度大小写不得有变.改完后存盘退出就得了.至于怎么替换系统中的CMD.EXE , 我想凡欲试者都有这个能力, 我不多说.3. 顺带的应对措施(三种, 各有特色)由于经此做作后, 标准的内部命令就没有了(排除你未改的) , 这样的话, 不管是谁;你也好, 第三方程序也好, 病毒也好, 有谁调用标准的内部命令, 都会得到:Microsoft Windows XP [版本5.1.2600](C) 版权所有1985-2001 Microsoft Corp.X:\>xxx'xxx' 不是内部或外部命令,也不是可运行的程序或批处理文件。