[分享] 读取MBR的代码(C++)

[复制链接]
  • TA的每日心情
    开心
    2014-4-2 21:30
  • 签到天数: 3 天

    [LV.2]九品芝麻官

    534

    主题

    400

    回帖

    7742

    积分

    Intohard Team

    Rank: 7Rank: 7Rank: 7

    积分
    7742
    发表于 2012-4-20 09:18:12 | 显示全部楼层 |阅读模式

    1. /*code by fozzy*/
    2. #include <iostream>
    3. #include <fstream>
    4. #include <cstdlib>
    5. #include <cstdio>
    6. using namespace std;
    7. int main(void)
    8. {
    9. char buffer[1024];
    10. ifstream in("\\\\.\\PHYSICALDRIVE0",ios::binary|ios::in);
    11. in.read(buffer,sizeof(buffer));
    12. in.close();
    13. ofstream out("mbr.txt",ios::binary|ios::out);
    14. out.write(buffer,sizeof(buffer));
    15. out.close();
    16. system("pause");
    17. return 0;
    复制代码
    代码不邪恶,但是如果某个有恶意的人加上
    1. ofstream writeMBR("\\\\.\\PHYSICALDRIVE0",ios::binary|ios::out);
    2. char buffer[1024];
    3. memset(buffer,0,sizeof(buffer));
    4. writeMBR.write(buffer,sizeof(buffer));
    5. writeMBR.close();
    复制代码
  • TA的每日心情
    奋斗
    2014-5-10 18:39
  • 签到天数: 153 天

    [LV.7]四品道员

    6

    主题

    455

    回帖

    1393

    积分

    [INTOHARD]营长

    Rank: 6Rank: 6

    积分
    1393
    发表于 2012-6-1 16:56:12 | 显示全部楼层
    [s:190]代码简洁,感谢分享。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    14

    回帖

    48

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    48
    发表于 2012-6-28 00:06:32 | 显示全部楼层
    MBR是512个字节而已,怎么读取1024呢?
    把整个硬盘当做一个大文件打开,直接读取,原理就这么简单,但这种情况下,读取的单位是扇区,每个扇区是512个字节,没必要读1024...
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2013-3-14 15:37
  • 签到天数: 2 天

    [LV.1]布衣百姓

    0

    主题

    17

    回帖

    43

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    43
    发表于 2012-6-30 05:41:39 | 显示全部楼层
    请问楼主,怎么是一片空白。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    12

    回帖

    31

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    31
    发表于 2020-12-3 18:25:26 | 显示全部楼层
    代码真的很简洁!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表