中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
作者:
标题: 求QBWIN开发的一键还原源码 上一主题 | 下一主题
xuehaiwuya
初级用户




积分 165
发帖 79
注册 2007-10-27
状态 离线
『楼 主』:  求QBWIN开发的一键还原源码 [已使用 LLM 解释]

要全源码(不用IBM现有的工具)
最好全BAT加QBWIN
LLM 解释

关于“QBWIN开发的一键还原源码”的技术解释与背景补充

核心需求的技术可行性边界

  1. 纯BAT脚本的局限性
    DOS下的批处理(BAT)无法直接访问磁盘扇区、修改MBR或处理文件系统元数据(如FAT表、目录项),这些操作需要汇编/机器码级别的硬件访问能力。因此,纯BAT无法实现“一键还原”的核心功能(扇区备份/恢复),必须依赖外部工具(如debug.comfdisk.exe或自定义编译的二进制程序)。当年论坛中“BAT实现还原”的说法,实际是通过BAT调用底层工具(如debug执行汇编指令),而非BAT本身完成核心逻辑。

  2. QBWIN的角色与限制
    QBWIN(QuickBASIC for Windows)是16位Windows下的BASIC开发环境,其编译的程序依赖Windows API,无法直接运行于纯DOS环境。若用户实际指QuickBASIC(DOS版,如QB 4.5),则可以通过调用DOS中断(如INT 13h磁盘访问、INT 21h文件操作)实现扇区读写,但仍需:

    • 直接操作硬件中断(需关闭DOS的文件系统缓存,否则可能导致数据不一致);
    • 处理不同BIOS对INT 13h的兼容性差异(如早期克隆机对大硬盘的支持问题);
    • 手动实现文件系统(如FAT16)的元数据解析(备份/恢复分区表、引导扇区等)。

当年“一键还原”的典型实现逻辑(以DOS环境为例)

真实的“一键还原”工具(如早期的Ghost雏形、国产还原软件)核心逻辑为:

  1. 备份阶段:通过INT 13h直接读取硬盘扇区(跳过DOS文件系统),将系统分区(如C盘)的扇区数据写入备份文件(通常存放在非系统分区的隐藏目录);
  2. 恢复阶段:通过引导程序(如修改MBR或引导扇区)绕过DOS,直接从备份文件读取扇区数据并写回硬盘;
  3. 引导触发:通过修改MBR或在DOS启动时检测热键(如F11),触发恢复流程。

其中,批处理仅作为流程调度工具(如调用备份/恢复程序、修改配置文件),而非核心功能的实现者。

历史误解的成因

当年论坛中“纯BAT+QB实现还原”的说法,源于:

  • 对“工具链”的混淆:将“BAT调用QuickBASIC编译的二进制程序”简化为“BAT+QB实现”;
  • 对DOS中断的认知不足:部分用户误将QuickBASIC的CALL INTERRUPT视为“高级语言原生支持”,忽略了其本质是对汇编指令的封装;
  • 商业软件的黑箱效应:早期还原软件未公开源码,导致用户对其实现方式产生“纯脚本即可完成”的误解。

合法替代方案与技术参考

若需实现类似功能,合法且可验证的途径包括:

  1. 使用开源工具:FreeDOS下的diskcopy.com(扇区复制)、partcopy(分区备份)等,可通过批处理调用;
  2. QuickBASIC实现示例:通过INT 13h读取MBR的代码片段(需QB 4.5及以上版本,且关闭DOS文件缓存):
    ' 读取MBR到缓冲区(示例代码,仅适用于DOS环境)
    DEF SEG = &H8000 ' 缓冲区段地址
    CALL INTERRUPT(&H13, _
        [0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0], _ ' AH=02h(读扇区), AL=1(扇区数), CH=0, CL=1, DH=0, DL=80h(第一硬盘)
        result)
    DEF SEG
    
    (注:该代码仅读取MBR,未包含错误处理、大硬盘支持及备份文件存储逻辑)。

对帖子中“不用IBM现有的工具”的补充

IBM的工具(如fdisk.exeformat.com)本质是DOS系统自带的磁盘管理程序,其功能有限(如fdisk仅能修改分区表,无法备份扇区)。真实的还原工具均需自定义底层逻辑,与IBM工具无直接依赖,但需依赖DOS的中断服务(如INT 21h文件操作)。

后续跟帖的价值补充

Post #5提到的RomOS+BAT是当年另一种思路:通过将小型操作系统(RomOS)写入引导扇区,实现不依赖DOS的扇区恢复,但RomOS本身仍需汇编实现,BAT仅作为引导触发的辅助脚本。



2007-10-28 02:54
查看资料  发短消息  网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

这里你能找到吗?呵呵。
该去与作者联系。




Windows 一键还原
http://www.yjhy.com
2007-10-28 08:16
查看资料  发短消息  网志   编辑帖子  回复  引用回复
xuehaiwuya
初级用户




积分 165
发帖 79
注册 2007-10-27
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

这里怎么不能找到
这里那么多高手
反汇编的人那么多在这里啊


2007-10-28 09:17
查看资料  发短消息  网志   编辑帖子  回复  引用回复
jszforms
初级用户





积分 27
发帖 13
注册 2006-9-10
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

太难找了,别人的技术传内来传外的


2007-10-28 13:07
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

RomOS+BAT
http://rayer.ic.cz/romos/romose.htm




第一高手 第二高手

2007-10-28 13:46
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

Originally posted by xuehaiwuya at 2007-10-28 09:17:
这里怎么不能找到
这里那么多高手
反汇编的人那么多在这里啊

高手多,不见得高手愿意为你去折腾他看不上眼的东西。呵呵。




Windows 一键还原
http://www.yjhy.com
2007-10-28 19:33
查看资料  发短消息  网志   编辑帖子  回复  引用回复
xuehaiwuya
初级用户




积分 165
发帖 79
注册 2007-10-27
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

感谢五楼


2007-10-28 21:31
查看资料  发短消息  网志   编辑帖子  回复  引用回复
xuehaiwuya
初级用户




积分 165
发帖 79
注册 2007-10-27
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

Originally posted by lianjiang2004 at 2007-10-28 07:33 PM:

高手多,不见得高手愿意为你去折腾他看不上眼的东西。呵呵。


我不明白什么是不上眼的
但也许你是狂人那你说这句话不奇怪
知识哪怕是简单的点点
有机会学都要学
回过头看一十一=二其实并不会不上眼而且是数学难题


2007-10-28 21:44
查看资料  发短消息  网志   编辑帖子  回复  引用回复
sgzhou6688
中级用户





积分 231
发帖 110
注册 2008-3-24
来自 中国大陆
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

查找中》》》》》》》》》》》》》


2010-5-19 15:18
查看资料  发送邮件  发短消息  网志  OICQ (405418144)  编辑帖子  回复  引用回复
sgzhou6688
中级用户





积分 231
发帖 110
注册 2008-3-24
来自 中国大陆
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

网址都打不开呀,这是为什么呀》》》》》》》》》》》


2010-5-30 17:38
查看资料  发送邮件  发短消息  网志  OICQ (405418144)  编辑帖子  回复  引用回复

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


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



论坛跳转: