中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-01 22:12
48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行
DOS开发编程 & 发展交流 (开发室) » 都在一个程序里,备份恢复 MBR,DBR,FAT,CMOS
可打印版本  13,689 / 52
第1楼 GOTOmsdos 发表于 2006-06-26 02:21
铂金会员 发帖 1,827 积分 5,154
都在一个程序里,备份恢复 MBR,DBR,FAT,CMOS
把自己写的 备份恢复 MBR,DBR,FAT,CMOS 的程序合并成了一个程序(DOS),大家玩玩吧(有源码)。。。
还有 破解 CMOS密码的功能(不是毁了CMOS,而是生成一个有效的密码。。)
全部在自己的机子上经过测试,目前没有问题。

已更新为 支持大硬盘和老硬盘。。。

*********
最新补充
*********
此程序的局限性位: 比如,只能处理主分区表和第一分区的引导信息
但可喜的是:已全面升级为 miniTO, 可使用其精简版,突破了这些限制,还支持备份整个分区表链,和原硬盘信息比较等等功能

详情,请参看:
http://www.cn-dos.net/forum/viewthread.php?tid=29715&fpage=1

[ Last edited by GOTOmsdos on 2008-8-3 at 06:17 PM ]

附件
dosback.rar (24.1 KiB)
第2楼 electronixtar 发表于 2006-06-26 11:58
铂金会员 发帖 2,672 积分 7,493
收藏一个,顶!
第3楼 cain 发表于 2006-07-02 20:43
中级用户 发帖 72 积分 201
GOTOmsdos 我试用了破解 CMOS密码的功能,显示密码是:00001223
这是什么意思呢?实际上我的密码是小写字母k
第4楼 GOTOmsdos 发表于 2006-07-02 22:06
铂金会员 发帖 1,827 积分 5,154
解出的密码能进入吗?
这个破解功能不是解出原先的密码,是解出一个同样可以进入的密码。
因为,实际上CMOS存放密码的空间只有两个字节,不可能把输入的8个字节都装进去!
只是按照预定的编码规则进行编码的。

[ Last edited by GOTOmsdos on 2006-7-2 at 22:17 ]
第5楼 cain 发表于 2006-07-02 23:51
中级用户 发帖 72 积分 201
解出的密码:00001223 当然不能进,所以才会发帖问了。
第6楼 GOTOmsdos 发表于 2006-07-03 00:30
铂金会员 发帖 1,827 积分 5,154
哦,不能进?
在我的机子上解出的密码,虽然不是原先密码,但是可以进的。。
可能我采用的解密程序有局限吧?

不过,你试一试 1223 看怎么样?
第7楼 GOTOmsdos 发表于 2006-07-06 02:43
铂金会员 发帖 1,827 积分 5,154
刚刚加入了 FAT 功能。
第8楼 GOTOmsdos 发表于 2006-07-09 17:27
铂金会员 发帖 1,827 积分 5,154
代码更新了
第9楼 zhouhb 发表于 2006-07-12 15:46
中级用户 发帖 104 积分 230
谢谢楼主更新代码!
第10楼 GOTOmsdos 发表于 2006-07-16 19:38
铂金会员 发帖 1,827 积分 5,154
已更新为 支持大硬盘和老硬盘。。。
第11楼 jpzsj 发表于 2006-07-16 22:44
初级用户 发帖 26 积分 43
谢谢,下载试试
第12楼 GOTOmsdos 发表于 2006-07-18 00:32
铂金会员 发帖 1,827 积分 5,154
刚刚把注释掉的代码全清理掉了,并整理了代码,补充了注释,用VC 的对齐功能对齐了,看起来清爽了。
更新了。
第13楼 GOTOmsdos 发表于 2006-07-20 18:09
铂金会员 发帖 1,827 积分 5,154
发现这个程序在获取老硬盘参数时的BUG,这个BUG导致读写老硬盘FAT失败
已更正。

原BUG如下:
cylinder=regs.h.ch+1; /* 寄存器的 CH +1 为柱面数 应该是CL的高2位为高2位,CH的8位为低8位 */
sector=regs.h.cl; /* 寄存器的 CL 为每道扇区数 应该是 CL 的低6位 */

改为:
cylinder=((((unsigned int)regs.h.cl)>>6<<8) | regs.h.ch) + 1;
sector=regs.h.cl & 0x3F;

在取值时,没有用指针甚至一般运算,用高效而好玩的位运算。。

现在读写老硬盘FAT就可以了。。
如果有老硬盘的,可以试玩试玩,我自己还没有呢。。

[ Last edited by GOTOmsdos on 2006-7-20 at 20:53 ]
第14楼 liangkai 发表于 2006-07-24 10:49
新手上路 发帖 1 积分 2
谢谢,下载试试
第15楼 myh159357 发表于 2006-07-24 19:39
新手上路 发帖 3 积分 6
楼主厉害
1 2 3 4  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023