Merhaba, C# bu tip işlemleri yapmak için en iyi dil olmayabilir. C# içindeki araçlar doğrudan Win32 dosyalarına erişemez. Dolayısıyla MBR'ın yazılı olduğu "\\.\PhysicalDrive0" üzerindeki ilk 512 byte'a erişmesi mümkün değildir.
Bunu yapabilmek için ileri düzey Interop yapmanız ya da C++ ile MBR'ı okuyup C# ile check etmeniz gerekir.
Interop bu fikir için aşırı zor olacağından size doğrudan 2.metodu öneririrm.
Bunun için C++ projesi oluşturup MBR'ı okuyun (İnternette bir sürü örnek kodu mevcut) ve bir dosyaya kaydedin. C# bu C++ uygulamasını çalıştırsın ve sonuç geldiğinde dosyayı okusun. Düzenli olarak MBR yedeklerini alarak MBR'da bir önceki dosyaya göre değişiklik olmuş mu diye kontrol ederek validasyon yapabilirsiniz. Ancak bu da maalesef "Best Practice" değildir.