中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS汉化世界 & 中文系统 (中文化室) » UCDOS的KNL.COM如何删除启动版权提示信息(各版本适用!)
作者:
标题: UCDOS的KNL.COM如何删除启动版权提示信息(各版本适用!) 上一主题 | 下一主题
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『楼 主』:  UCDOS的KNL.COM如何删除启动版权提示信息(各版本适用!)

UCDOS的KNL.COM如何删除启动版权提示信息(各版本适用!)
UCDOS在启动时会在屏幕上显示版权提示信息, 如果用户希望此时屏幕清爽,可以修改相关程序及清除显示数据。此程序段通常如下(地址随版本有异):

1. 如果KNL.COM被加密或至少压缩,请用CUP386来解密解压(要在实机或虚拟机的纯DOS下操作)。
    CUP KNL.COM KN1.COM /7
    CUP KN1.COM KN2.COM /7
    CUP KN2.COM KN3.COM /7
另外,可能还要删除文件首、尾的EXE文件头、TR解密残留的“XXXXXX”等信息。处理完毕可得到不加密不压缩的干净KN.COM。

2. 在16进制(下面的值都是此进制)浏览器中作如下操作:
(1)查找到最后一个“希望汉字系统”,看可阅读提示信息在什么地方变得无法阅读,如:

UCDOS 5.0中:
005A70  72 0D 0A 24 CF A3 CD FB BA BA D7 D6 CF B5 CD B3  r  $希望汉字系统
005A80  20 A9 A4 20 55 43 44 4F 53 20 35 2E 30 2C 20 31   ─ UCDOS 5.0, 1
005A90  39 39 35 C4 EA 35 D4 C2 0D 0A 24 43 6F 70 79 72  995年5月  $Copyr
005AA0  69 67 68 74 20 28 63 29 20 31 39 39 35 2E 35 2C  ight (c) 1995.5,
005AB0  20 42 65 69 6A 69 6E 67 20 48 6F 70 65 20 48 69   Beijing Hope Hi
005AC0  67 68 2D 54 65 63 68 20 47 72 6F 75 70 2C 20 42  gh-Tech Group, B
005AD0  61 6F 59 75 65 51 69 61 6F 00 00 00 7F 77 7E 7A  aoYueQiao   w~z
005AE0  7E E1 2E 5E 2A 64 26 68 22 6C 3E 70 3A 74 36 78  ~?^*d&h"l>p:t6x
005AF0  32 7C 0E 40 0A 44 06 48 02 4C 1E 50 1A 54 16 58  2|@ DHLPTX
005B00  12 5C 6E 20 6A 24 66 28 62 2C 7E 30 7A 34 76 38  \n j$f(b,~0z4v8
005B10  72 3C 4E 00 4A 04 46 08 42 0C 5E 10 5A 14 56 18  r<N JFB ^ZV

UCDOS 98、7.0中:
006180  20 44 72 69 76 65 72 0D 0A 24 CF A3 CD FB BA BA   Driver  $希望汉
006190  D7 D6 CF B5 CD B3 20 A9 A4 20 55 43 44 4F 53 20  字系统 ─ UCDOS
0061A0  37 2E 30 2C 20 31 39 39 38 C4 EA 30 39 D4 C2 0D  7.0, 1998年09月
0061B0  0A 24 00 00 00 00 F0 FF 00 00 00 00 00 00 7F 77   $    ?      w
0061C0  7E 7A 7E E1 2E 5E 2A 64 26 68 22 6C 3E 70 3A 74  ~z~?^*d&h"l>p:t
0061D0  36 78 32 7C 0E 40 0A 44 06 48 02 4C 1E 50 1A 54  6x2|@ DHLPT
0061E0  16 58 12 5C 6E 20 6A 24 66 28 62 2C 7E 30 7A 34  X\n j$f(b,~0z4
0061F0  76 38 72 3C 4E 00 4A 04 46 08 42 0C 5E 10 5A 14  v8r<N JFB ^Z
006200  56 18 52 1C AE DC 05 00 09 08 93 A0 F0 32 34 14  VR         摖?4

(2)然后找到可阅读信息末尾的“00 00 00 7F”,记下“7F”后面一个字节的偏移位置
(假设是WXYZ),如:UCDOS 5.0的5ADD,UCDOS 98/7.0的61BF。

(3)请作16进制查找到“YZ WX”(注意:要前2位与后2位颠倒位置)。

(4)查找“AC”,改为“C3”,
(5)从“WXYZ”前一字节处开始删除,直到文件末尾,
(6)换名为KRNL.COM另存。


(注意:上面的偏移位置是绝对偏移,DEBUG下的位置要加100h。)


UCDOS 5.0版的相关程序段供参考:

sub_58A9:
  cmp byte ptr ds:_045A,0Eh
  push cs
  pop ds
  ja _58BA
  mov dx,offset _5B74 ;对应于(1)
  mov ah,9
  int 21h  ; DOS;  display char string at ds:dx
  ret

_58BA:
  mov si,5BDDh ;加密过的提示信息,对应于(2)

_58BD:
  lodsb ;对应于(4)

  call sub_5902  ; 解密1个字节
  or al,al  
  jz _5901
  cmp al,1
  jne _58DD
  lodsb   
  call sub_5902  ; 解密1个字节
  mov ah,al
  lodsb   
  call sub_5902  ; 解密1个字节
  xchg ah,al
  mov dx,ax
  mov ah,2
  int 10h  ; 置光标于DX处
  jmp short _58BD
_58DD:
  cmp al,2
  jne _58EA
  lodsb   
  call sub_5902  ; 解密1个字节
  mov ds:_5BDC,al
  jmp short _58BD
_58EA:
  mov ah,9
  mov bl,ds:_5BDC  ; 初始值为(7fh xor 76h)+2=0Bh亮青色
  mov cx,1
  int 10h  ; 显示1个字符
  mov ah,3
  int 10h  ; 取光标位置到DX
  inc dl
  mov ah,2
  int 10h  ; 置光标于DX处
  jmp short _58BD

_5901:
  ret


sub_5902:  ; 解密1个字节
  xor al,byte ptr _590C ; ('vUCDOS 5.0 ')
  add byte ptr _590C,2 ; ('vUCDOS 5.0 ')
  ret

_590C db 76h  ; 'vUCDOS 5.0 '字符色解密密钥



my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2008-11-4 10:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: