![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-06 06:23 |
共 47,812 主题排行 / 349,914 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS启动盘 & LOGO技术 (启动盘室) » DOS启动后用隐藏分区数据的程序,源码公开了! |
| 可打印版本 14,574 / 32 |
| 第16楼 pfox | 发表于 2005-08-26 17:03 |
| 银牌会员 发帖 446 积分 1,451 | |
|
原来用老版本处理过的img可以直接再用新版本进行处理吗?还是要没有处理过的img才能处理?
|
|
| 第17楼 TurboY | 发表于 2005-08-26 18:01 |
| 中级用户 发帖 99 积分 322 来自 湖北 | |
|
得用没有处理过的img重做才行,或者你用标准的启动扇区替换已经做过的后再做。只是做程序了,忘了考虑卸载程序,以后一定加上。
我在无忧已经发了个新的,不过也没有卸载程序。 |
|
| 第18楼 pfox | 发表于 2005-08-26 21:25 |
| 银牌会员 发帖 446 积分 1,451 | |
Originally posted by TurboY at 2005-8-26 06:01 PM: 无忧的版本你你这里的版本不同吗? |
|
| 第19楼 TurboY | 发表于 2005-08-26 21:38 |
| 中级用户 发帖 99 积分 322 来自 湖北 | |
|
谢谢!
两者实际是一样的,这里原来那个只是没改MAKEIMG而已. |
|
| 第20楼 TurboY | 发表于 2005-08-29 00:36 |
| 中级用户 发帖 99 积分 322 来自 湖北 | |
|
8月28日的进展
我和无忧的hnlyzhd版主交流时他提出个建议:能否启动安装在隐藏分区内的操作系统。 现在实现了,新程序在启动时出现的8秒等待中如果按了F7键(我用BOCHS调试的,它不准我用F11、F12),则会从第一个隐藏主分区启动,此盘分配为C:。 目前我只测试了DOS7.1,不知道能不能启动WIN98。但WIN2K和XP或LINUX不用试肯定不行,它们都不依赖BIOS读盘。 新的命令行如下: MAKEIMG 源镜像文件名 源镜像文件名 用来制作显隐藏分区功能的软盘镜像文件 目的镜像文件名 将要生成的带显隐藏分区功能的软盘镜像文件,可省略,默认值为YISIR.IMG 可选参数: /f 生成的程序在计算机启动时直接从软盘启动。(f为小写字母) /b 生成的程序在计算机启动时直接激活隐藏分区并启动。(b为小写字母,注意隐藏分区中必须已安装了DOS操作系统,此功能也未写MBR) 无 /f 和 /b 参数时将出现提示并等待8秒,这期间按任意键从软盘启动,否则从硬盘启动且不加载显隐藏分区功能。 /u 卸载本程序,将由本程序生成的镜像文件还原。(u为小写字母) 真心希望各位下载试过了的朋友能回复讨论一下这个新加功能的稳定性! |
|
| 第23楼 crshen | 发表于 2005-08-29 18:19 |
| 中级用户 发帖 126 积分 447 | |
|
建议版主以后直接发带注释的源程序,以便大家完善,看汇编代码本来就很费神,我都没这么好的耐心,相信别人也不轻松。
另外 0208 jmp 0000:0000 //01CD处修改后成为INT 13 020D-021A 11 01 14 04 16 06 17 07 1B 0B 1C 0C 1E 0E //分区类型表 021B cmp ah, 02 //老的读扇区功能 021E jne 0231 0220 cmp dx, 0080 0224 jne 0231 0226 cmp cx, 0001 022A je 024F //读硬盘BOOT扇区 022C cmp ah, 42 //扩展读功能,×××这里似乎不可能到达××× 022F je 0234 0231 jmp 0208 请楼主看一下,从021B处判断ah是否为02号功能,不是则执行int 13,是则往下执行,但ah不可能变成42h吧,那022C处岂不有问题? ---------------------------------- 020D-021A 11 01 14 04 16 06 17 07 1B 0B 1C 0C 1E 0E 为分区类型表 026F mov cx, 0004 //4个主分区 0272 mov si, 010D //分区类型表地址020D-021A 0275 cld 0276 lodsw //ds:si到ax,ds=cs代码段址 0277 cmp si, 011B 027B jnb 0288 //直到类型表比较完成 027D cmp es:, al //比较是否为隐藏分区 0280 jne 0275 0282 mov es:, ah //将隐藏分区改为非隐藏 0285 jmp 0275 0288 add bx, 0010 //第个分区表0x10字节 028C loop 0272 //4个分区表逐一检查 从026F起检查分区表类型,个人认为只要检测最后一个分区即可,很少有人将中间的分区隐藏的。 从分区表类型看,隐藏与非隐藏差别为bit4,所有类型可合并为一种,即: if (al and 0xF0)=0x10 then 分区类型=(al and 0x0F) [ Last edited by crshen on 2005-8-31 at 08:23 ] |
|
| 第24楼 TurboY | 发表于 2005-09-02 02:47 |
| 中级用户 发帖 99 积分 322 来自 湖北 | |
|
【9月1日最新更新】
谢谢crshen指出BUG,看来DOS启动时基本上没用扩展INT13功能来读MBR,所以那些死代码基本上就没有运行到,从运行表面上看好像没问题了,但BUG还是存在。现在已经全部修正了。 8月28日无法从后面的隐藏分区启动的问题解决了,现在已经可以正常启动隐藏主分区中的操作系统。其实是程序本身的问题,程序虽然在启动后把隐藏分区向其他程序报告为正常分区,但在自己完工后把控制权交还MBR时却忘了改。结果MBR还是装入了原来的激活分区引导程序,但在那个操作系统启动时读到的激活分区却是那个已经显示出来的隐藏分区了。所以当两个系统都是DOS或Win98时由于启动文件一样时是正常的,两个系统不同时就有异常了。 新程序在启动时出现的8秒等待中如果按了F7键(或自定义的键),则会从第一个隐藏主分区启动,此盘分配为C:。目前我只测试了DOS7.1(Win98启动盘),我想应该也能启动WIN98。WinXP启动后会将隐藏分区变成非隐藏,用硬盘重启后仍是可显示的,肯定时WinXP在什么时候更新过MBR。LINUX没有试。 新加入一个功能键ESC:可以不加载本程序,正常从硬盘盘启动,。 新加入一个功能键F5:可以不加载本程序,正常从软盘盘启动,用于需要正确查看实际分区时。 MAKEIMG.EXE的命令行选项可以忽略大小写了。 尽管程序改动了不少,裁掉了很多提示信息,可是程序已经快写满512字节了,只剩1个字节的空间了。如果再要加别的功能,只能再开一个扇区了。 新的命令行如下: MAKEIMG 源镜像文件名 源镜像文件名 用来制作显隐藏分区功能的软盘镜像文件 目的镜像文件名 将要生成的带显隐藏分区功能的软盘镜像文件,可省略,默认值为YISIR.IMG 可选参数: /f 生成的程序在计算机启动时直接从软盘启动。 /b 生成的程序在计算机启动时直接激活隐藏分区并启动。(注意隐藏分区中必须已安装了操作系统,此功能也未写MBR) 无 /f 和 /b 参数时将出现提示并等待8秒,这期间按任意键从软盘启动,否则从硬盘启动且不加载显隐藏分区功能。 /k:n n=1-4,6-12。设置直接激活隐藏分区并启动时用的按键,可以是F1-F4、F6-F12 /u 卸载本程序,将由本程序生成的镜像文件还原,结果保存成一个镜像文件。 附件 build050901.zip (43.59 KiB) |
|
| 第25楼 TurboY | 发表于 2005-09-06 15:03 |
| 中级用户 发帖 99 积分 322 来自 湖北 | |
|
感谢各位朋友的关注,为方便感兴趣的朋友改进,源程序开放。先公开引导区模块(HFBOOT.ASM)的源程序。
在写这个程序之前,我看到了很多“一键恢复”的介绍,这些工具里面以IBM技术为基础的为多。网上搜索到关于IBM“F11”键恢复的文章很多,可是多数是讲如何修复IBM的,觉得程序写在MBR里面是不妥的,很容易被破坏。另外IBM虽然没有追究大家的盗版使用责任,可是这也不是长久的。我于是决定写一个与之功能相似的程序,让大家测试和使用。我在写程序时思考了IBM“F11”键恢复的原理,可是我并没有反汇编和阅读IBM的代码,因此完全是自己写的,没有那些多麻烦。但是正因为只是自己一个人写的,所以不一定象IBM一样有过充分的测试,尽管我在程序中没有任何写硬盘的代码(可参看源代码),但使用此程序的风险还是存在的。希望朋友们在充分测试(虚拟机、空闲硬盘……)后再正式使用它! 还是那句老话,本人保留对原始程序的所有权。你可以自由阅读和修改你认为可以改进的地方,但是请在重新发布时保留原作者的信息,并且我希望你能将源文件公开并告诉我(turboy@163.com),保持这个工具的一贯作风。 这里是本人网站上语法加亮的源程序:http://yisir.softhome.cn/yiarticle/act.php?obj=article&id=136 下面是引导区模块(HFBOOT.ASM)的源程序: |
|
| 第26楼 TurboY | 发表于 2005-09-06 15:04 |
| 中级用户 发帖 99 积分 322 来自 湖北 | |
|
【目前最新版本】
HFBOOT.ASM还是9月1日的,MAKEIMG.EXE在9月5日新增选项后编译 MAKEIMG.EXE可以处理非1.44M软盘镜像了。 新的命令行如下: MAKEIMG 源镜像文件名 源镜像文件名 用来制作显隐藏分区功能的软盘镜像文件 目的镜像文件名 将要生成的带显隐藏分区功能的软盘镜像文件,可省略,默认值为YISIR.IMG 可选参数: /f 生成的程序在计算机启动时直接从软盘启动。 /b 生成的程序在计算机启动时直接激活隐藏分区并启动。(注意隐藏分区中必须已安装了操作系统,此功能也未写MBR) 无 /f 和 /b 参数时将出现提示并等待8秒,这期间按任意键从软盘启动,否则从硬盘启动且不加载显隐藏分区功能。 /k:n n=1-4,6-12。设置直接激活隐藏分区并启动时用的按键,可以是F1-F4、F6-F12 /p:nn=0 - 255 ,自定义构成进度条的字符,默认是62即“>”,象219(实心方块)、220、223也挺好看 /r:nn=1 - 24 ,自定义提示信息的在屏幕中的开始行,默认是21行,即在21行显示提示,22行显示进度条。 /u 卸载本程序,将由本程序生成的镜像文件还原,结果保存成一个镜像文件。 希望下载和使用了这个软件的朋友跟帖或到我的小站留言谈一下看法。 [ Last edited by TurboY on 2005-9-6 at 20:15 ] 附件 build050905.zip (44.33 KiB) |
|
| 第27楼 crshen | 发表于 2005-09-06 21:34 |
| 中级用户 发帖 126 积分 447 | |
|
图形界面版升级至1.1版,可用于非1.44M映像。
[ Last edited by crshen on 2005-9-10 at 20:17 ] 附件 安装.jpg (33.97 KiB) 启动提示.jpg (6.75 KiB) unhide.rar (171.66 KiB) |
|
| 第28楼 hnlyzhd | 发表于 2005-09-08 23:49 |
| 高级用户 发帖 164 积分 544 | |
|
再来看一下,准备睡觉!
暂没有意见,正在找问题和发现新的需要的功能! 哈哈!~ |
|
| 第29楼 fdsiuha | 发表于 2005-09-10 00:06 |
| 高级用户 发帖 302 积分 587 | |
|
crshen贴出的像MBR,但是是哪个操作系统的呢?
我记得我看过的几个MBR开始初始化寄存器之后都是将7C00的引导代码立刻读到内存中的其他地方,把堆栈放在7C00开始。 我不太清楚是为什么要这样做,而且crshen贴出的ASM没有这些步骤。 哪位大侠解说一下? [ Last edited by fdsiuha on 2005-9-10 at 00:12 ] |
|
| 第30楼 hiboy | 发表于 2005-09-11 10:55 |
| 新手上路 发帖 1 积分 10 | |
|
我看了,弱问一个为什么代码里有eax?是8086?我用了16位的汇编,自己研究的时候会被卡巴认为是病毒。IBM的F11好像用了int 13h重写MBR,而不是驻留。因为确实很多病毒做法是驻留,而改写int 13h的那一段代码是特征码,大概用eax才没有被报告是病毒
|
|
| 上一页 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |