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.