论坛风格切换切换到宽版
  • 748阅读
  • 6回复

[问题求助]怎么查看硬盘的boot sector里面的内容? [复制链接]

上一主题 下一主题
离线皮子.
 
发帖
2090
C币
-60295
威望
420
贡献值
1
银元
-1
铜钱
4797
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
dd命令导出来的用文本方式打开看不懂,有什么办法可以看到boot sector里面的东西?有点傻的问题http://upload.bbs.csuboy.com/Mon_1004/126_7095_c83c7cca86332e4.gif[/img]电影

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线wdyzl1.
发帖
1973
C币
-60986
威望
347
贡献值
1
银元
-2
铜钱
4370
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
Re:怎么查看硬盘的boot
没人理,这个问题确实太弱了,琢磨了一下自己解决了,写出来给和我一样充满好奇心的菜鸟们!
先用dd把boot sector里面的东西拷出来:
dd if=/dev/hda of=/home/boot.sect bs=512 cbs=512 count=1
写了一段java代码,把/home/boot.sect转化为十六进制表示的文件bootsecthex.txt:
import java.io.*;
public class WatchHex{
    public static void main(String args[]){
        String fileName="";
        String outFileName="bootsecthex.txt";
        byte[] content;
        try{
                fileName=args[0];
        }catch(ArrayIndexOutOfBoundsException e){
                System.out.println("Please run it with a fileName argument!");
                System.exit(0);
        }
        try{
                File infile=new File(fileName);
                File outfile=new File(outFileName);
                int length=(int)infile.length();
                content=new byte[length];
                DataInputStream dis=new DataInputStream(new FileInputStream(infile));
                DataOutputStream dos=new DataOutputStream(new FileOutputStream(outfile));
                int count=dis.read(content);
                dis.close();
                for(int i=0;i<count;i++){
                        short s=(short)content;
                        if(s<0)s+=256;
                        String str=Integer.toHexString(s);
                        if(str.length()==1)str="0"+str;
                        dos.writeChars(str+"        ");
                }
                dos.close();
        }
        catch(Exception e){
                System.out.println("error!");
                System.exit(0);
        }
        
    }
}
呵呵,确实看到了512B的最后两个字节是55AA.

离线initiallong.
发帖
2056
C币
-152475
威望
366
贡献值
1
银元
0
铜钱
4560
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
Re:怎么查看硬盘的boot
小的暂时看不懂。不过还是顶下。

离线long0.
发帖
2156
C币
-198461
威望
384
贡献值
1
银元
0
铜钱
4821
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
Re:怎么查看硬盘的boot
dd出来用hexdump不就可以看嘛
cat boot.sect|hexdump

离线xdlyly.
发帖
2058
C币
-139587
威望
385
贡献值
1
银元
0
铜钱
4510
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
Re:怎么查看硬盘的boot


QUOTE:原帖由 寂寞烈火 于 2005-11-25 00:34 发表
dd出来用hexdump不就可以看嘛
cat boot.sect|hexdump

晕,我还费了老大周折!多谢了

离线iolia1789.
发帖
2112
C币
-235624
威望
397
贡献值
1
银元
-1
铜钱
4728
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
Re:怎么查看硬盘的boot
如果是在 DOS 下,你完全可以通过汇编语言将 MBR 里的东西反汇编来看,当然,直接看 16 进制码也可

离线yappgchen.
发帖
1937
C币
-605217
威望
370
贡献值
5
银元
-1
铜钱
4343
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
Re:怎么查看硬盘的boot


QUOTE:原帖由 platinum 于 2005-11-25 11:05 发表
如果是在 DOS 下,你完全可以通过汇编语言将 MBR 里的东西反汇编来看,当然,直接看 16 进制码也可

试一试
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个