Análise de despejo de memória

4

Espero que esta não seja uma pergunta estúpida, e se for, então eu quero pelo menos acabar com isso, então eu não me sinto tão idiota no futuro.

Aqui estamos, carregando um despejo de memória do Windows com o Windbg. Aqui estão as primeiras linhas da saída do depurador:

0: kd> .dumpdebug
----- 64 bit Kernel Summary Dump Analysis
DUMP_HEADER64:
MajorVersion 0000000f
MinorVersion 00001db1
...

A MinorVersion eu principalmente entendo. É hexadecimal e se traduz em 7601 em decimal. Os administradores do Windows já seriam capazes de dizer que isso deve ser uma máquina Win7 x64 ou uma máquina 2k8 R2 com SP1. Mas não é 7601 o número da compilação? É suposto ser Major.Minor.Build/Revision ... certo?

Também não entendo a MajorVersion. Deve ser 6. Esta versão do Windows é 6. Mas não é 0000000f em hexadecimal 15 em decimal?

A string de versão completa desta versão do Windows, quando você inicia o Prompt de Comando, por exemplo, é 6.1.7601. Se 7601 é a MinorVersion, então o que é 1 e o que é 6? E por que o despejo de memória diz 0F?

    
por Ryan Ries 04.10.2012 / 01:31

1 resposta

3

Resposta parcial:

O MinorVersion realmente se refere ao número da compilação e, se você estiver disposto a abusar de máquinas / sistemas operacionais antigos, poderá verificar isso em várias plataformas comparando o número de compilação de (por exemplo) algumas caixas XP e 2003 com o MinorVersion no dump_header .

Você provavelmente também notaria (ou pelo menos eu) que o MajorVersion nesses arquivos de depuração do dump também é 0000000f , apesar da versão diferente do kernel. Então, obviamente, não se refere à versão do kernel ... ou, não corretamente, pelo menos. Quanto ao que se refere ... bem, definitivamente não é uma pergunta estúpida, embora eu não tenha uma resposta para isso. Ainda.

Atualização:

Encontrei algo muito irritante.

No Windows 2000 e Windows NT 4, o MajorVersion no arquivo de depuração de dump é free system . E o significado deste campo parece ser não documentado, embora free system seja o que é mostrado em todos os exemplos de despejos que eu vi da Microsoft, como no Kit de recursos da estação de trabalho NT e até mesmo o KB sobre como usar dumpchk.exe que se aplica aos sistemas 2008 e Windows 7.

Começando a parecer que pode ser sem sentido ou um bug? Pelo menos, não é 0xB16B00B5 ou 0x0B00B135 desta vez.

    
por 04.10.2012 / 02:31