Análise Forense

Aprendendo sobre a MBR e Partições no modo raiz

Tempo de leitura: 3 minutos

Master Boot Record (MBR) é um setor de boot que contém código de máquina para ser carregado na memória RAM e executado pelo firmware da máquina e está posicionado nos primeiros bytes de um dispositivo de armazenamento de dados (disco físico ou removível). Este setor contém informações das partições do disco: onde se localizam, de que tipo são e o tamanho de cada uma (Partition Table – Tabela de Partições). Caso uma dessas entradas esteja corrompida de alguma forma, o sistema não consegue iniciar.

A MBR ocupa o primeiro setor inteiro – 512 bytes – e se organiza assim:

Endereço Offset (Hex)DescriçãoBytes
0x0Área do código de inicialização446
0x1BEDados da Partição 1Tabela de Partições16
0x1CEDados da Partição 216
0x1DEDados da Partição 316
0x1EEDados da Partição 416
0x1FEAssinatura do MBR (MBR Magic number)2
Total: 446+16+16+16+16+2512

Vamos ver isso na prática. Para isso vou usar um Editor Hexadecimal, Editor de Disco e Editor de Memória grátis chamado “HxD”. Para isso clicarei em “Tools”>”Open Disk” e selecionarei meu “Hard disk 1”

Abrindo o Disco 1 em um Editor Hexadecimal (HxD)

Analisando a Tabela de Partições

A tabela de partições tem a seguinte estrutura:

Endereço Offset (Hex)DescriçãoBytes
0x0Status de Boot1
0x1Endereço CHS (Cylinder, Head, Sector – Cilindro, Cabeça, Setor) de início da partição3
0x4Tipo de Partição1
0x5Endereço CHS do fim da partição3
0x8Setor que começa a partição4
0xCTamanho da partição em Setores4

Vamos ver isso no HxD. Primeiro vamos para o endereço offset 0x1BE.

Tabela de Partições

Na caixinha amarela contém as informações da partição 1, na caixinha roxa contém as informações da partição 2, na caixinha marrom contém as informações da partição 3 e na caixinha preta contém as informações da partição 4. Vamos dissecar as informações da partição 1 (primeira caixinha):

Offset (Hexa)Valor (Hexa)O que éExplicação
0x080Status de BootDe forma geral dois valores são usados: 0x80 (significa que a partição está ativa ou é bootável) e 0x00 (significa que a partição está inativa ou não é bootável).
Geralmente apenas partições primárias são 0x80
0x120 21 00Endereço CHS do início da partiçãoEstes valores são armazenados em “little-endian”. Por isso devem ser lidos de trás para frente.
Outra coisa a se notar é que, por algum motivo, eles são colocados na ordem: “Cabeça, Setor e Cilindro”
0x407Tipo de PartiçãoNeste exemplo, o tipo de partição 07 significa que o sistema de arquivos é HPFS ou NTFS (ou alguns outros formatos difíceis de encontrar e, por isso, não citarei aqui)
0x5DF 13 0CEndereço CHS do fim da partiçãoMesma coisa do “Endereço CHS do início da partição”
0x800 08 00 00Endereço do “setor” onde se encontra a partiçãoEste valor é armazenado em little-endian. Portanto deve ser lido de “trás para frente”.
00 00 08 00 = 800 (hex).
Isso significa que o início da partição deste exemplo está no setor 800 (ou setor 2048)
0xC00 20 03 00Número de setores na partiçãoEste valor está em little-endian. Deve ser lido desta forma:
00 03 20 00 = 32000 (hex)
Portanto essa partição tem 204.800 setores

Agora que dissecamos tudo isso, vamos analisar melhor isso e confirmar o que vimos. Vimos que o setor que inicia essa partição é o setor 2048. Vamos neste setor para ver se realmente inicia essa partição.

Setor 2048 do HD

Vemos que no setor 2048 realmente inicia uma partição do tipo “NTFS” (confirmando o tipo de partição da tabela de partições).

No último campo da tabela de partições vemos que a partição tem 204.800 setores. Cada setor tem 512 bytes. Portanto essa partição deve ter 104.857.600 Bytes, que equivale a 102.400 KB, que equivale a 100 MB exatos! Entrando em “Ferramentas Administrativas > Gerenciamento do Computador > Gerenciamento de disco”, tenho o seguinte resultado:

Gerenciamento de Disco do Windows

E confirmo que a partição 1 tem exatos 100 MB, tipo NTFS (de novo) e que está marcada como “Ativa”.

Leave a Comment

O seu endereço de e-mail não será publicado.