Como escrever um setor de inicialização NTFS localizado?


8

Pouco fato desconhecido: os setores de inicialização NTFS vêm em diferentes idiomas. Eles podem dizer " BOOTMGR is missing" e " Press Ctrl+Alt+Del to restart", mas também podem dizer a mesma coisa em outros idiomas. Isso depende da localidade do sistema Windows que você está usando quando cria e formata as partições.

Devido a um malware, eu tive que reescrever o setor de inicialização NTFS da minha unidade do sistema, que estava ocultando um rootkit; Fiz isso usando a bootsect.exeferramenta no DVD de instalação, o mesmo DVD de instalação em italiano que usei para instalar o Windows originalmente; havia também um bom arquivo bootsect.exe.mui em uma pasta it-IT por lá. Mas a ferramenta falava inglês, e meu setor de inicialização NTFS agora também fala inglês (e, é claro, isso não acontecia antes).

Eu sei que isso é uma coisa puramente cosmética, mas eu gostaria de saber: como criar um setor de inicialização NTFS localizado (sem reformatar a partição em um sistema localizado, é claro)?


3
Suspeito que o fixmbr do console de recuperação em sua instalação possa estar localizado. Provavelmente deveria fazê-lo.
Um anão

(+1) Muito boa pergunta, Massimo. :) Adicionado à minha lista de favoritos.
Um anão

1
Não há "fixmbr" no Windows 7 ... as coisas mais próximas são bootsect.exe e bootrec.exe; Tentei usá-los no DVD de instalação (que está localizado), mas acabei com um setor de inicialização em inglês. Vou tentar novamente no Console de recuperação.
Massimo

Testou os dois, executando-os em um ambiente de recuperação do Windows localizado. O bootsect.exe e o bootrec.exe criarão setores de inicialização no idioma inglês.
Massimo

Existem duas maneiras de usar o bootsect. Você pode usar apenas uma letra de unidade e o carregador de inicialização será gravado na partição ou a opção / mbr que a grava no MBR. Você já tentou os dois? E, francamente, o idioma realmente importa? Existem apenas algumas strings nesse pequeno código do carregador de inicialização e você nem as vê na maioria das vezes. Presumo que o menu de seleção do SO seja exibido corretamente?
billc.cn

Respostas:


1

Mensagens diferentes vêm de lugares diferentes. Mas se você substituir os arquivos de inicialização, como bootmgr, BCD (de um sistema com exatamente a mesma configuração de inicialização), bootsect.dat, boot.sdi ou qualquer combinação de arquivos que você possui, acho que você encontrará as mensagens em seu idioma escolhido.


O carregador de inicialização fala o idioma correto; é o setor de inicialização que não.
Massimo

A rigor, o código no VBR também é um carregador de inicialização.
21411 JdeBP

os carregadores de inicialização residem nos setores de inicialização. setores de inicialização não são códigos, são locais.
precisa saber é o seguinte

1

No meu Vista, o setor de inicialização está em inglês, apesar de eu ter um sistema polonês. Eu instalei a partir dos discos originais da Microsoft. Talvez seu setor de botas tenha sido um OEM invadido.


Imagem oficial da Microsoft ISO, baixada do MSDN.
Massimo

A minha também é oficial.
precisa saber é o seguinte

0

O setor de inicialização é bem pequeno (apenas 512 bytes), então você pode simplesmente desmontá-lo (usando qualquer coisa, do NDISASM ao IDA), corrigir as mensagens e remontá-lo novamente (a NASM fará).

Isso requer um pouco de habilidades de programação e talvez também esteja lendo alguns livros didáticos sobre montadores x86, mas certamente será necessário se você se esforçar o suficiente.


2
não 512, mas 446 bytes. outros bytes são reservados para a tabela de partição.
Eir Nym

A essência deste comentário é verdadeira, mas as declarações que ele faz não são. O setor de inicialização não é o MBR. O MBR tem 512 bytes (446 sem tabela de partição), enquanto o setor de inicialização é pelo menos uma ordem ou duas de magnitude maior e consideravelmente mais complicado de fazer engenharia e entender de maneira inversa. Que eu saiba, nenhum estudo completo de engenharia reversa do setor de inicialização NTFS está disponível para as versões mais recentes do Windows. (E ainda, eu upvoted esta resposta.)
Mahmoud Al-Qudsi

@ MahmoudAl-Qudsi bootsect.exetrata o código no MBR e no VBR como o gerenciador de inicialização. O problema de linguagem ao qual o OP está se referindo está realmente na parte maior do VBR.
jiggunjer

0

1) Conecte a unidade que contém a partição NTFS em uma máquina executando o Linux, use um editor de disco / hexadecimal ou o comando dd; ou 2) Inicialize em algum linux em CD / DVD e, em seguida, idem; ou 3) Faça o mesmo com um sistema Windows, mas o volume NTFS a ser editado deve ser desmontado no Windows Vista e posterior. Você tem 4 seqüências de mensagens, codificadas em ASCII, com deslocamentos iniciais (relativos ao deslocamento de 100h no registro de inicialização por volume) dados nos bytes 1F8h a 1FBh. A área do deslocamento 180h ao deslocamento 1F7h parece estar disponível para essas mensagens. Há uma cópia do registro de inicialização do volume no final da partição.


0

Você pode tentar isso (se a instalação do Windows estiver na partição C:)

bcdboot c:\Windows /l it-it

ou, com bcdedit

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

ou, com o bcdedit, dependendo da sua configuração (conheça sua configuração digitando bcdedit)

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

você pode encontrar documentação sobre o comando 'bcdboot' aqui:

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

e 'bcdedit' aqui:

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

diga-nos qual funciona para você, se funcionar ..!


Ambos os comandos afeta o gerenciador de boot, não o setor de inicialização ...
Massimo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.