无忧启动论坛

标题: 如何编写DOS程序 读取和修改MBR [打印本页]

作者: javictory    时间: 2017-9-13 16:57
标题: 如何编写DOS程序 读取和修改MBR
目前想要实现这样一个功能,想要编写一个DOS程序,然后放在DOS环境下,做成镜像在网络预启动或者U盘启动时加载img镜像文件,DOS启动后默认执行我编写的DOS程序,目前已经实现这一步。但现在我的目标是做一个类似***的程序,比如说读取和修改MBR要怎么实现?有没有大神指点下。
我试过了使用打卡“\\\\.\\PhysicalDrive0”,但好像不行,借助Windows API也是行不通的。目前我DOS的开发环境使DJGPP,小白一枚,求指点迷津。
作者: javictory    时间: 2017-9-13 17:20
奇怪D I S K G E N I U S 怎么会被和谐掉?
作者: 不知    时间: 2017-9-13 17:36
javictory 发表于 2017-9-13 17:20
奇怪D I S K G E N I U S 怎么会被和谐掉?

防DG盗版,dos下试下fdisk(通过批处理调用)
作者: 不知    时间: 2017-9-13 17:40
DOS下应该没有win api,应该是调用中断吧。
作者: flyingdancex    时间: 2017-9-13 18:45
“\\\\.\\PhysicalDrive0”这个是cmd就不是DOS,目前我DOS的开发环境使DJGPP,小白一枚,用djgpp就不是小白吧。DOS程序读取和修改MBR用INT 13H功能吧。
作者: exky    时间: 2017-9-13 19:06
汇编,或者debug指令。
作者: 2305753123    时间: 2017-9-14 08:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: lras    时间: 2017-9-17 08:31
我试过了使用打卡“\\\\.\\PhysicalDrive0”,但好像不行,借助Windows API也是行不通的。目前我DOS的开发环境使DJGPP,

从这两句看来,楼主是初学者,先放弃吧,好好学习下再做
作者: javictory    时间: 2017-9-18 09:26
多谢大家指点,这边也分享下,如果有什么更好的办法希望大家也可以不吝赐教。
目前使用的是debug.exe ,直接通过写批处理文件来获取MBR。
(1)首先在写下,AUTOEXEC.BAT中写下,最后一行加入debug < script.bin ;
(2)命名一个文件script.bin,然后写入 如下指令:
  1. A100
  2. mov ax,0201
  3. mov bx,1000
  4. mov cx,1
  5. mov dx,80
  6. int 13
  7. int 20

  8. g=100
  9. D1000
  10. D
  11. D
  12. D
  13. quit

复制代码

就可以看到完整的MBR的显示了。
作者: 喜欢你    时间: 2017-9-21 11:35
谢谢楼主的分享
作者: Vansiper    时间: 2025-7-20 00:11
高深呀
作者: 提款机    时间: 2025-7-20 15:37
不知道AI能写汇编语言的程序不
作者: chsh02    时间: 2025-7-23 17:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: 俪尚皇    时间: 2025-7-24 13:50
进来学习




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3