フラッシュ ディスクのsudo dd if=/dev/zero of=/dev/sda
場所を確認しました。その後はすべてゼロでした。次に、フラッシュ ディスクに GParted を使用してパーティション テーブルを作成しました。その他の変更は行っていません。次の出力が表示されます。/dev/sda
/dev/sda
sudo dd if=/dev/sda bs=512 count=1|hexdump -C
00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |................| 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..| 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u..........u| 00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b |.........|...t..| 00000040 4c 02 cd 13 ea 00 7c 00 00 eb fe 00 00 00 00 00 |L.....|.........| 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001b0 00 00 00 00 00 00 00 00 fd 5c ba 4c 00 00 00 00 |.........\.L....| 000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 1+0件のレコード 1+0 レコード出力 512 バイト (512 B) をコピー、0.00183447 秒、279 kB/秒 00000200
2 回試しました。なぜこのようなことが起きたのかが疑問です。私の理解では、パーティション テーブルは 446 バイト目以降から始まるため、55 aa
そこに署名が存在する理由はありません。
マルウェアでなければ何なのでしょうか?
答え1
GParted は、厳密に必要でない場合でも、常に 55AA 署名を MBR に書き込みます。(既に述べたように、これは BOOTABLE MBR にのみ必要です。)
その理由は、歴史的な互換性の理由にあります。MBR
処理コードが適切に実装されていないシステムの中には、署名がない MBR を無効と見なすものがあります。
この問題を防ぐために、GParted (および MBR を作成できる他のほとんどのソフトウェア) は、ダミー/安全なブートローダー コードを MBR に配置し、それに「ブート可能なディスク」署名を付与します。