アセンブリコードを備えたハードドライブファイルにアクセスしますか? [閉まっている
質問
したがって、ユーザーが指定されたドライブにファイルを削除して追加できる小さな起動可能なアセンブリプログラムを作成しようとしています。唯一の問題は、アセンブリでドライブにアクセスする方法がわからないことです。誰かが私がこの情報を見つけることができる方向に私を向けてくれませんか?情報は、Cプログラミング言語の場合もあります。
起動可能なアセンブリコードタイプからデフォルトのWindows 7 Hardriveにアクセスしようとしています。これはNTFSです。
解決
X86 PCのいくつかの起動可能なコードでディスクにアクセスするには、最も簡単で最も自然なことは、 BIOS INT 13H機能. 。これにより、個々のディスクセクターを読み書きできます。
ハードドライブは一般にパーティションに分割され、 マスターブートレコード (MBR
)各パーティションの場所、サイズ、タイプを説明します。 MBRは、HDDの最初のセクターです。
各パーティション内には、ファイルシステムがあります。 NTFSでファイルを読み書きできるようにするには、NTFSドライバーを実装する必要があります。
私の知る限り、 NTFS オープンではありませんが、リバースエンジニアリングベースのNTFSドライバー(Linuxなど)が存在します。 NTFSドライバーは通常、c(++)で記述されます。これは、アセンブリではなく、アセンブリではなく、組み立て、メンテナンス、携帯性の点でより実用的であるため、アセンブリではありません。アセンブリにFSコードを書くことはお勧めしません。
PSオン efi システムのものは多少異なります。あります gpt MBRの代わりに、EFI施設を使用してBIOS INT 13Hの代わりにディスクにアクセスします。
PPS私はあなたがcと少しのアセンブリで望むことをしましたが、NTFSの代わりにFAT1x/32を使用しました。それは実行可能です。 NTFSは難しいです。特に十分な知識とスキルを持っていない場合、一人の人にとっては不可能かもしれません。