Parte 3
Introdução
Em nossas postagens anteriores, estabelecemos as bases para entender a Tabela de partição GUID (GPT) examinando o MBR de proteção e o Cabeçalho GPT. Agora, na Parte 3, voltamos nosso foco para a Matriz de Entrada de Partição GPT. Este componente crucial do esquema GPT fornece um mapa detalhado de todas as partições no disco, cada entrada contendo informações vitais sobre uma partição específica. Ao compreender a estrutura e a função da Matriz de entradas de partição GPT, obterá uma visão abrangente de como o GPT gere as partições, permitindo uma análise, resolução de problemas e recuperação de dados mais eficazes.
GPT (Tabela de partição GUID) Matriz de entradas de partição
A matriz de entrada da tabela de partição GUID (GPT) é uma parte crítica do sistema de particionamento GPT, que é usado para definir e gerenciar as partições em um disco rígido. Pense nela como uma lista detalhada que registra as especificidades de cada partição no disco, como o catálogo de uma biblioteca que lista os detalhes de cada livro.
Componentes principais da matriz de entrada GPT:
GUID da partição: Cada partição tem um identificador único, conhecido como GUID da partição, que garante que cada partição pode ser identificada de forma única, mesmo em sistemas diferentes.
ID único: Este é outro identificador único específico de cada partição, fornecendo uma camada adicional de identificação única.
Iniciando o LBA (Logical Block Addressing) da partição: Indica o ponto de partida da partição no disco. Diz ao sistema onde a partição começa.
LBA final da partição: Tal como o LBA inicial, indica onde a partição termina no disco.
Bits de atributo: São flags que fornecem informações adicionais sobre a partição, tais como se ela é inicializável ou se possui algum atributo especial.
Nome da partição: Cada partição pode ter um nome legível por humanos, facilitando a identificação do objetivo ou do conteúdo da partição. Este nome é terminado com um carácter nulo para marcar o fim da cadeia de caracteres.
Vamos analisar tudo isto em pormenor para que compreenda perfeitamente cada entrada na matriz.


Quando o disco é configurado como um disco GPT, a primeira partição que será criada é a EFI System Partition (ESP). Esta é uma partição oculta que não está prontamente disponível para os utilizadores. Esta partição será encontrada no sector 2048 e está formatada como FAT32 para compatibilidade com todos os sistemas (Windows, Linux, MacOS).
A captura de ecrã acima mostra uma instalação padrão do Windows 10 em que a Partição Reservada da Microsoft foi criada juntamente com uma Partição de Dados Básicos que foi especificada pelo utilizador durante a instalação.

Abaixo está um excerto de GUIDs de uma tabela encontrada na página da Wikipédia Tabela de partição GUID:

Fonte: https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs
Naturalmente, o GUID não será armazenado no formulário GUIID quando se visualizam os valores no visualizador hexadecimal.

Os GUIDs são convertidos tal como fizemos na publicação anterior do blogue, mas também podem ser facilmente vistos quando o visualizamos em HxD:

Podemos confirmar os GUIDs da partição do volume com o comando: mountvol.exe


Sabendo o LBA inicial e o LBA final, podemos calcular o tamanho da partição. Por exemplo, a partição EFI:
LBA inicial: 2048
Fim do LBA: 534527
Comprimento total: 532479 sectores x 512 bytes/sector = 272629248 bytes, ou seja, 260 MB.


A matriz de entrada de partição GPT de backup
A matriz de entrada da partição GPT de backup está localizada no final do disco e antes do cabeçalho GPT, especificamente 33 setores antes do final do disco (LBA (n - 33) onde n é o último setor do disco). Também podemos fazer alguns cálculos para saber por que razão são 33 sectores antes do fim do disco, ou 32 sectores antes do Cabeçalho GPT de cópia de segurança.
Cada entrada de partição tem 128 bytes e há um total de 128 entradas na matriz de entradas. Isto significa que existem 16.384 sectores na matriz ou 32 sectores (16384/512).
O Cabeçalho GPT de Cópia de Segurança aponta para a localização da Matriz de Entrada de Partição GPT de Cópia de Segurança


Matriz de entrada de partição GPT de backup perto do fim do disco
Reparação de uma matriz de entrada de partição GPT
Reparar a matriz de entrada de partição GPT é tão simples como copiar a cópia de segurança de 16.384 bytes encontrada em 33 sectores a partir do fim do disco e colá-la nos LBA 2 a 3. Não há necessidade de qualquer alteração/modificação dos valores hexadecimais, uma vez que se trata de cópias exactas.
O GPT de backup localizado próximo ao final do disco é o mesmo que o primário. De facto, ao esculpir os sectores de cada um deles e ao fazer o hashing, verifica-se que são exatamente iguais.

Conclusão
Nesta terceira parte, examinamos minuciosamente o conjunto de entradas de partição GPT, um componente crítico do esquema GPT. Ao analisar cada campo dentro das entradas de partição, desde os GUIDs até os bits de atributo e nomes de partição, vimos como o GPT fornece uma estrutura robusta para organizar e acessar dados de disco. Esse conhecimento é essencial para investigações forenses, recuperação de dados e administração de sistemas, equipando-o com as habilidades para navegar e manipular discos particionados GPT de forma eficaz. Fique atento ao nosso próximo post, onde abordaremos aplicações práticas e estudos de caso, trazendo a teoria para a prática.
Este post conclui nossa série de 3 partes sobre estruturas de partição GPT.
Se não viu as publicações anteriores, comece por Parte 1 - O MBR de proteção, onde exploramos a forma como a compatibilidade com o legado é mantida, e continuamos com Parte 2 - O cabeçalho GPTque define a disposição do disco e garante a integridade.
Quer ir mais fundo? Subscreva a nossa newsletter para obter os próximos conteúdos sobre recuperação de partições, hashing ao nível do disco e desafios CTF baseados em cenários forenses do mundo real.
Uma resposta