CTTY命令及其妙用

Author: 王德祥 Date: 1997-01-01

#2  一、什么是CTTY
  CTTY中的字母“C”是英文“change(改变)”的字头。TTY表示终端亦即显示器和键盘,CTTY命令用于变换你当前工作的设备。
#2  二、作用范围
  CTTY命令的作用范围仅限于使用MS-DOS系统功能调用进行输入输出的程序。很多命令并不依赖于MS-DOS系统进行数据的输入和输出,它们直接将数据发送到相关的输入输出设备上。CTTY命令对这样的程序不产生影响。
#2  三、基本用法
  CTTY命令的使用格式为:CTTY device
  其中的device为MS-DOS定义的设备名,例如AUX、CON、NUL等。因此,命令CTTY AUX将把所有的命令I/O从当前设备(控制台)重定向到一个辅助设备,例如另外一台终端。而命令CTTY CON将把上述的重定向恢复过来。
#2  四、用CTTY命令来给微机加密
  首先在CMOS中设置启动顺序为C:,A:,并在A盘上建立一个任意内容的密码文件如A:\secret,再在autoexec.bat末尾加如下内容:
  c:\dos\drvready
  if errorlevel ctty nul
  if not exist a:\secret ctty nul
  作为辅助措施,在config.sys中加“switches=/n”命令行,如果其中有“break=on”语句,应将其屏蔽。另外不能在autoexec.bat中使用“break on”命令。这样非法用户便不能用按Ctrl+Break的方法中断autoexec.bat文件的执行。
  机主启动微机前将钥匙盘插入相应的软驱,即可通过上述的if exist命令行的检查,从而越过CTTY NUL命令进入系统提示符状态。他人启动微机时如果不在软驱中插盘或者插入的不是钥匙磁盘,将使CTTY NUL命令被执行,从而将当前使用设备转换为虚拟设备NUL,这样键盘的所有输入将被忽略,当然也就无法使用微机。
  上文中程序drvready.com的作用是检测软驱A是否准备好,内容为:
  C:>DEBUG
  N C:\DOS\DRVREADY.COM
  A100
  MOV AX,2524
  MOV DX,113
  INT 21
  MOV AH,1C
  MOV DL,1
  INT 21
  MOV AX,4C00
  INT 21
  MOV AX,4C01
  INT 21
  RCX
  18
  W
  Q
  将其中第7行的“MOV DL,1”修改为“MOV DL,2”,可用于检查B驱是否准备好。上述内容在DOS 6.22、Cyrix 6x86兼容机上通过。