Domanda

Quindi sto cercando di realizzare un piccolo programma di assemblaggio in grado di avvio che consenta all'utente di eliminare e aggiungere file a un'unità specificata. L'unico problema è che non sono sicuro di come accedere all'unità con l'assemblaggio. Qualcuno potrebbe indicarmi nella direzione in cui posso trovare queste informazioni per favore? Le informazioni possono essere anche per il linguaggio di programmazione C.

Avrei cercato di accedere al windows 7 Hardrive predefinito da un tipo di codice di assemblaggio avviabile. Che è NTFS.

È stato utile?

Soluzione

Per accedere al disco in un codice avviabile su un pc x86, il più semplice e naturale è usare il BIOS INT 13H Funzioni. Ciò ti permetterà di leggere e scrivere singoli settori disco.

I dischi rigidi sono comunemente divisi in partizioni e c'è anche il Record di avvio principale (MBR) che descrive la posizione, la dimensione e il tipo di ogni partizione. L'MBR è il primo settore di un HDD.

All'interno di ogni partizione c'è un file system. Dovrai implementare un driver NTFS per poter leggere e scrivere file in NTFS.

PER QUANTO NE SO, Ntfs non è aperto ma esistono driver NTFS basati su ingegneria inversa (ad esempio in Linux). I driver NTFS sono in genere scritti in C (++), non assembly perché NTFS è grande e complesso e C è più pratico in termini di sviluppo, manutenzione e portabilità rispetto all'assemblaggio. Non consiglierei di scrivere codice FS in assemblaggio.

Ps on Efi Le cose dei sistemi sono in qualche modo diverse. C'è GPT Invece di MBR e utilizzare le strutture EFI per accedere ai dischi invece di BIOS Int 13H.

PPS Ho fatto quello che vuoi in C e un po 'di montaggio ma con FAT1x/32 anziché NTFS. È fattibile. NTFS è più difficile. Può essere impossibile per una sola persona, specialmente se non hanno conoscenze e abilità sufficienti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top