Como ler dados da RAM?

4

Eu sei que esta é uma pergunta vaga. Por favor, aceite minhas desculpas, mas estou tentando obter uma resposta para essa pergunta.

Eu queria saber se há um caminho para os dados atuais da RAM? Por exemplo: - Eu tenho um aplicativo In-Memory em execução e queria saber qual conjunto de dados ele contém. Qualquer ponte sobre isso seria de grande ajuda.

Obrigado antecipadamente.

    
por VD27 19.12.2014 / 12:17

5 respostas

2

Defina o computador para o modo de hibernação e inicie-o com um live-live ou liveusb. Afair o pagefile.sys e hiberfil.sys são construídos a partir de páginas 4k, e irá conter a memória usada por seus aplicativos e janelas. Você pode olhar para binwalk e volatilidade. Eu não posso te dizer o que vai aonde e por quê. Sempre pareceu muito aleatório. Eu só posso encontrar os bits de memória que eu quero, colocando algo como longuniquestring na memória do programa (mas isso não é o caminho certo, tenho certeza). Alternativamente, você pode simplesmente anexar um depurador ao seu programa (ida), mas usei apenas o gdb. Procure alguns guias ida. Espero que ajude.

    
por 19.12.2014 / 12:52
1

Nos sistemas operacionais modernos, os acessos de RAM são separados entre os processos. Portanto, você não pode criar um aplicativo simples para dar uma olhada nos dados de outro programa em execução. Para fazer isso, você terá que programar no modo kernel ou usar as funções de depuração do sistema operacional específico.

    
por 19.12.2014 / 12:37
1

Você marcou o Windows, sim, é possível (pelo menos no caso geral de um usuário em seu próprio computador com direitos de administrador).

Muitos dos mecanismos de truques do jogo (não ligarei nenhum como não tenho 100% de certeza de quais são seguros, mas usei um para pesquisa) permitirão que você pesquise a memória de um processo em execução para um determinado valor ou navegue por ele. Estes valores podem então ser alterados, ou 'bloqueados', o que eu acho que é simplesmente feito com o programa escrever repetidamente o valor requerido muito rapidamente para desfazer quaisquer alterações.

    
por 19.12.2014 / 12:47
0

No Windows antigo, era possível que um programa lesse ou copiasse ou pesquisasse através da RAM (provavelmente excluindo áreas "secretas" marcadas com o kernel especial).

Uma vez eu usei esse programa no WinXP (talvez até um mais antigo) para encontrar horas de trabalho quase perdidas quando um programa falhava antes de salvar no disco. Foi capaz de pesquisar através da memória RAM, encontrar os dados não gravados ainda esperando lá, copiá-lo e prometer SEMPRE GUARDAR PARA DISCO OFTEN no futuro.

Eu não tenho certeza sobre as versões atuais do Windows, eu acho que é possível de alguma forma, especialmente se não olhar em RAM protegida / segura, se você é o superusuário / root. Ainda deve haver um programa disponível para pesquisa de ram, em algum lugar.

[FYI, acabou de ler sobre um recurso puro do linux em /dev/mem que parece ser um link direto para ler facilmente o ram, mas não parece ser o que parece; não procura facilmente por palavras / strings, e provoca entradas de log como "'As strings do programa tentaram acessar / dev / mem entre 100000- > 101000."]

    
por 19.12.2014 / 15:07
0

Você usa um depurador, como o do Microsoft Visual Studio. Você pode anexar ao processo e dar uma olhada na memória, quais threads está executando e as instruções de montagem que estão executando.

    
por 19.12.2014 / 16:52