|
谢谢西北虎提供
第一步,准备一张Dos的系统盘,里面拷贝debug、fdisk等命令; 第二步,在一台正常的机器上,使用你比较熟悉的二进制编辑工具(比如windows下的UltraEdit)修改软盘上的IO.sys文件(修改前请去掉该文件的只读属性); 第三步,在文件中搜索第一个"55aa"字符串,找到以后修改为任何其他数值即可; 第四步,用这张修改后的系统软盘你就可以顺利的引导带锁的硬盘启动了。但由于其分区表已经被修改,无法使用fdisk来删除和修改分区,而且仍然无法用正常的启动盘启动系统,这个时候就要debug出马了。:) 第五步,根据下面步骤操作 A:/>debug -a -xxxx:100 mov ax,0201(读一个扇区的内容) -xxxx:103 mov bx,500(设置一个缓存地址) -xxxx:106 mov cx,0001(设置第1个硬盘的指针) -xxxx:109 mov dx,0080(读零磁头) -xxxx:10c int 13(硬盘中断) -xxxx:10e int 20 -xxxx:0110(退出程序返回到指示苻) -g(运行) -d500(查看运行后500地址的内容) 这个时候会发现地址6be开始的内容是硬盘分区的信息。此硬盘的扩展分区指向自己,这就导致了在系统启动时查找硬盘逻辑盘的过程中导致死循环。在debug指示苻下用E命令修改内存数据,具体如下: E6BE xx.0 xx.0 xx.0................. ...................................... .............................55 AA 55 AA表示硬盘有效,不要修改,xx0表示把以前的数据"xx"改成0。 第六步,再用硬盘中断13把修改好的数据写入硬盘就可以了。 A:/>debug a 100(表示修改100地址的汇编指令) -xxxx:100 mov ax,0301(写硬盘一个扇区) -xxxx:(这里直接回车) -g(运行) -q(退出) 第七步,运行fdisk/mbr(重置硬盘引导扇区),再重启系统就可以了。
|