Existe alguma maneira de ver o conteúdo da memória RAM? Desde o primeiro byte até o último. Eu gostaria de ver onde o sistema operacional e todos os processos em execução nele estão localizados na RAM. Isso é possível?
Existe alguma maneira de ver o conteúdo da memória RAM? Desde o primeiro byte até o último. Eu gostaria de ver onde o sistema operacional e todos os processos em execução nele estão localizados na RAM. Isso é possível?
Respostas:
Você pode usar um depurador do kernel, o que permitiria o acesso à memória "bruto", como o SoftICE for Windows . Você também pode configurar o GDB para atuar como um depurador para o kernel do Linux . Se uma máquina virtual for uma opção, alguns softwares de virtualização suportam salvar o estado da máquina (incluindo RAM) em disco, que pode ser analisado posteriormente . Deve-se notar, no entanto, que a maioria dos sistemas operacionais "modernos" usa a ASLR ( Randomização do Layout do Espaço de Endereço ). O verdadeiro mapa de memória física do sistema é propositadamente fragmentado para ajudar a mitigar vários problemas e explorações de segurança (ou seja, estouros de buffer de pilha / heap ).
No entanto, para um determinado programa em execução em um sistema operacional moderno, você pode obter um mapa de memória lógica para um determinado processo / encadeamento - desde que possua os símbolos e o depurador apropriados. Se você deseja uma visão geral, se o software / hardware usa memória virtual , a situação se torna drasticamente mais complexa. Novamente, porém, se você quiser, literalmente, o que é apenas sobre a RAM, consulte o primeiro parágrafo.
No Windows, o conteúdo da memória física pode ser acessado através do \Device\PhysicalMemory
objeto no Gerenciador de Objetos . Isso requer acesso ao sistema no nível do kernel, o que significa que você precisaria instalar um programa, provavelmente um driver no modo kernel, para acessar esse objeto.
No Linux, o conteúdo da memória física pode ser acessado diretamente como dados binários, lendo /dev/mem
como root
. Consulte O que é / dev / mem? e a mem(4)
página de manual para mais detalhes.
No entanto, não sei por que você precisa determinar onde o sistema operacional e os processos estão localizados na memória física ...
\DevicePhysicalMemory
objeto não pode ser aberto no modo de usuário. O RAMmap e a maioria das outras ferramentas sysinternals incluem um driver no modo kernel para executar essa parte do trabalho.