Come scrivere un settore di avvio NTFS localizzato?


8

Poco fatto sconosciuto: i settori di avvio NTFS sono disponibili in diverse lingue. Possono dire " BOOTMGR is missing" e " Press Ctrl+Alt+Del to restart", ma possono anche dire la stessa cosa in altre lingue. Ciò dipende dalle impostazioni locali del sistema Windows in uso durante la creazione e la formattazione delle partizioni.

A causa di un malware in giro, ho dovuto riscrivere il settore di avvio NTFS della mia unità di sistema, che nascondeva un rootkit; L'ho fatto usando lo bootsect.exestrumento sul DVD di installazione, lo stesso DVD di installazione in lingua italiana che ho usato per installare Windows originariamente; c'era anche un bel file bootsect.exe.mui in una cartella it-IT lì intorno. Ma lo strumento parlava inglese e il mio settore di avvio NTFS ora parla anche inglese (e, ovviamente, non lo era prima).

So che questa è una cosa puramente estetica, ma vorrei sapere: come creare un settore di avvio NTFS localizzato (senza riformattare la partizione in un sistema localizzato, ovviamente)?


3
Sospetto che fixmbr dalla console di ripristino dell'installazione possa essere localizzato. Probabilmente dovrebbe farlo.
Un nano, il

(+1) Ottima domanda tra l'altro, Massimo. :) Aggiunto al mio elenco di preferiti.
Un nano, il

1
Non c'è "fixmbr" in Windows 7 ... le cose più vicine sono bootsect.exe e bootrec.exe; Ho provato a usarli dal DVD di installazione (che è localizzato), ma ho finito con un settore di avvio inglese. Riproverò dalla Console di ripristino di emergenza.
Massimo,

Testati entrambi, eseguendoli da un ambiente di ripristino di Windows localizzato. Sia bootsect.exe che bootrec.exe creeranno settori di avvio in lingua inglese.
Massimo

Esistono due modi per utilizzare bootsect. È possibile utilizzare una sola lettera di unità e il caricatore di avvio verrà scritto nella partizione oppure è possibile utilizzare l'opzione / mbr che la scrive nell'MBR. Hai provato entrambi? E francamente, la lingua conta davvero? Ci sono solo poche stringhe in quel piccolo codice del boot loader e non le vedi nemmeno la maggior parte delle volte. Presumo che il menu di selezione del sistema operativo sia visualizzato correttamente?
billc.cn

Risposte:


1

Messaggi diversi provengono da luoghi diversi. Ma se sostituisci i file di avvio, come bootmgr, BCD (da un sistema con la stessa identica configurazione di avvio), bootsect.dat, boot.sdi o qualsiasi combinazione di file che hai, penso che troverai i messaggi in la lingua scelta.


Il boot loader parla la lingua corretta; è il settore di avvio che non lo fa.
Massimo

A rigor di termini, il codice nel VBR è anche un boot loader.
JdeBP,

i caricatori di avvio risiedono nei settori di avvio. i settori di avvio non sono codice, sono posizioni.
Jiggunjer,

1

Sul mio Vista, il settore di avvio è in inglese, anche se ho un sistema polacco. Ho installato dai dischi originali Microsoft. Forse il tuo bootsector era un OEM hackerato.


Immagine ISO ufficiale di Microsoft, scaricata da MSDN.
Massimo

Anche il mio è ufficiale.
Kinokijuf,

0

Il settore di avvio è piuttosto piccolo (solo 512 byte), quindi puoi semplicemente smontarlo (usando qualsiasi cosa da NDISASM a IDA), correggere i messaggi e poi rimontarlo (NASM lo farà).

Ciò richiede un po 'di abilità di programmazione, e forse anche la lettura di alcuni libri di testo assemblatore x86, ma sicuramente doabe se ti sforzi abbastanza.


2
non 512, ma 446 byte. altri byte sono riservati per la tabella delle partizioni.
Eir Nym,

L'essenza di questo commento è vera, ma le affermazioni che fa non lo sono. Bootsector non è l'MBR. L'MBR è di 512 byte (446 senza tabella delle partizioni), mentre il settore di avvio è almeno un ordine o due di grandezza più grande e considerevolmente più complicato da decodificare e comprendere. Per quanto ne sappia, per le ultime versioni di Windows non è disponibile alcuno studio retroingegnerizzato del programma di avvio NTFS. (Eppure, ho votato a favore di questa risposta.)
Mahmoud Al-Qudsi,

@ MahmoudAl-Qudsi bootsect.execonsidera il codice nell'MBR e nel VBR come bootloader. Il problema linguistico a cui si riferisce l'OP è in effetti nella parte VBR più grande.
Jiggunjer,

0

1) Collegare l'unità contenente la partizione NTFS in una macchina che esegue Linux, utilizzare un editor disk / hex o il comando dd; oppure 2) Avvia un po 'di Linux su CD / DVD, quindi idem; oppure 3) Fare lo stesso con un sistema Windows, ma il volume NTFS da modificare deve essere smontato in Windows Vista e versioni successive. Sono disponibili 4 stringhe di messaggi, codificate ASCII, con offset iniziali (relativi all'offset 100h nel Volume Boot Record) forniti in byte da 1F8h a 1FBh. L'area da offset 180h a offset 1F7h sembra essere disponibile per questi messaggi. C'è una copia del Volume Boot Record alla fine della partizione.


0

Puoi provare questo, (se l'installazione di Windows è in C: partizione)

bcdboot c:\Windows /l it-it

oppure, con bcdedit

bcdedit /set {bootmgr} locale it-IT
bcdedit /set locale it-IT

oppure, con bcdedit a seconda della configurazione (conoscere la configurazione digitando bcdedit)

bcdedit /set {default} it-IT
bcdedit /set {current} it-IT 

puoi trovare la documentazione sul comando 'bcdboot' qui:

http://technet.microsoft.com/en-us/library/cc731245%28WS.10%29.aspx

e "bcdedit" qui:

http://technet.microsoft.com/fr-fr/library/cc709667%28WS.10%29.aspx

dicci quale funziona per te, se lo fa ..!


Entrambi questi comandi riguardano il boot manager, non il settore di avvio ...
Massimo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.