中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-16 12:28
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 都在一个程序里,备份恢复 MBR,DBR,FAT,CMOS 查看 13,025 回复 52
楼 主 都在一个程序里,备份恢复 MBR,DBR,FAT,CMOS 发表于 2006-06-26 02:21 ·  中国 北京 联通
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
把自己写的 备份恢复 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 ]
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
xing7749 +8 2007-03-30 22:53
henrya2 +4 2007-03-31 08:59
附件
dosback.rar (24.1 KiB, 下载次数: 554)
2 发表于 2006-06-26 11:58 ·  中国 四川 成都 联通
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
UID 42173
性别 男
状态 离线
收藏一个,顶!

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
3 发表于 2006-07-02 20:43 ·  中国 广东 广州 电信
中级用户
★★
积分 201
发帖 72
注册 2005-11-20 20:57
UID 45624
状态 离线
GOTOmsdos 我试用了破解 CMOS密码的功能,显示密码是:00001223
这是什么意思呢?实际上我的密码是小写字母k
4 发表于 2006-07-02 22:06 ·  中国 北京 联通
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
解出的密码能进入吗?
这个破解功能不是解出原先的密码,是解出一个同样可以进入的密码。
因为,实际上CMOS存放密码的空间只有两个字节,不可能把输入的8个字节都装进去!
只是按照预定的编码规则进行编码的。

[ Last edited by GOTOmsdos on 2006-7-2 at 22:17 ]
5 发表于 2006-07-02 23:51 ·  中国 广东 广州 电信
中级用户
★★
积分 201
发帖 72
注册 2005-11-20 20:57
UID 45624
状态 离线
解出的密码:00001223 当然不能进,所以才会发帖问了。
6 发表于 2006-07-03 00:30 ·  中国 北京 联通
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
哦,不能进?
在我的机子上解出的密码,虽然不是原先密码,但是可以进的。。
可能我采用的解密程序有局限吧?

不过,你试一试 1223 看怎么样?
7 发表于 2006-07-06 02:43 ·  中国 北京 联通
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
刚刚加入了 FAT 功能。
8 发表于 2006-07-09 17:27 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
代码更新了
9 发表于 2006-07-12 15:46 ·  中国 安徽 铜陵 移动
中级用户
★★
积分 230
发帖 104
注册 2006-04-21 12:22
UID 54192
性别 男
状态 离线
谢谢楼主更新代码!
━━━━━━━
漏漏®的e
━━━━━━━
10 发表于 2006-07-16 19:38 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
已更新为 支持大硬盘和老硬盘。。。
11 发表于 2006-07-16 22:44 ·  中国 云南 红河哈尼族彝族自治州 电信
初级用户
积分 43
发帖 26
注册 2005-10-07 11:08
UID 43188
状态 离线
谢谢,下载试试
12 发表于 2006-07-18 00:32 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
刚刚把注释掉的代码全清理掉了,并整理了代码,补充了注释,用VC 的对齐功能对齐了,看起来清爽了。
更新了。
13 发表于 2006-07-20 18:09 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
发现这个程序在获取老硬盘参数时的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 发表于 2006-07-24 10:49 ·  中国 浙江 丽水 电信
新手上路
积分 2
发帖 1
注册 2006-07-24 08:41
UID 59108
性别 男
状态 离线
谢谢,下载试试
15 发表于 2006-07-24 19:39 ·  中国 江苏 连云港 电信
新手上路
积分 6
发帖 3
注册 2006-05-30 11:32
UID 56253
状态 离线
楼主厉害
论坛跳转: