javictory 发表于 2017-9-13 16:57:22

如何编写DOS程序 读取和修改MBR

目前想要实现这样一个功能,想要编写一个DOS程序,然后放在DOS环境下,做成镜像在网络预启动或者U盘启动时加载img镜像文件,DOS启动后默认执行我编写的DOS程序,目前已经实现这一步。但现在我的目标是做一个类似***的程序,比如说读取和修改MBR要怎么实现?有没有大神指点下。
我试过了使用打卡“\\\\.\\PhysicalDrive0”,但好像不行,借助Windows API也是行不通的。目前我DOS的开发环境使DJGPP,小白一枚,求指点迷津。

lras 发表于 2017-9-17 08:31:43

我试过了使用打卡“\\\\.\\PhysicalDrive0”,但好像不行,借助Windows API也是行不通的。目前我DOS的开发环境使DJGPP,

从这两句看来,楼主是初学者,先放弃吧,好好学习下再做

javictory 发表于 2017-9-13 17:20:07

奇怪D I S K G E N I U S 怎么会被和谐掉?

不知 发表于 2017-9-13 17:36:22

javictory 发表于 2017-9-13 17:20
奇怪D I S K G E N I U S 怎么会被和谐掉?

防DG盗版,dos下试下fdisk(通过批处理调用)

不知 发表于 2017-9-13 17:40:16

DOS下应该没有win api,应该是调用中断吧。

flyingdancex 发表于 2017-9-13 18:45:49

“\\\\.\\PhysicalDrive0”这个是cmd就不是DOS,目前我DOS的开发环境使DJGPP,小白一枚,用djgpp就不是小白吧。DOS程序读取和修改MBR用INT 13H功能吧。

exky 发表于 2017-9-13 19:06:18

汇编,或者debug指令。

2305753123 发表于 2017-9-14 08:38:58

javictory 发表于 2017-9-18 09:26:09

多谢大家指点,这边也分享下,如果有什么更好的办法希望大家也可以不吝赐教。
目前使用的是debug.exe ,直接通过写批处理文件来获取MBR。
(1)首先在写下,AUTOEXEC.BAT中写下,最后一行加入debug < script.bin ;
(2)命名一个文件script.bin,然后写入 如下指令:
A100
mov ax,0201
mov bx,1000
mov cx,1
mov dx,80
int 13
int 20

g=100
D1000
D
D
D
quit


就可以看到完整的MBR的显示了。

喜欢你 发表于 2017-9-21 11:35:34

谢谢楼主的分享
页: [1]
查看完整版本: 如何编写DOS程序 读取和修改MBR