Podemos encontrar o endereço na RAM sabendo os dados armazenados?

0

Digamos que criamos um objeto com alguma linguagem de programação

a = "This is my text and it is very precious"

e feche o terminal.

Pelo que entendi, o espaço de memória que contém a informação "Este é o meu texto e é muito precioso" não é devolvido a uma cadeia de zeros. Como consequência, a informação ainda está lá, mas nós simplesmente não sabemos onde.

Vamos supor que nos lembramos de algumas informações sobre essa string. Lembramos que isso começa com "Este é o meu texto e é". É possível filtrar através da RAM para descobrir o endereço onde esses dados são armazenados?

    
por Remi.b 23.01.2016 / 02:53

1 resposta

0

Assumindo um sistema operacional de memória virtual como o Linux, o Windows ou o MacOS ...

Não do modo de usuário. Todo o espaço de endereço do seu processo desaparece quando o processo termina.

Não é nem mesmo significativo pedir o endereço físico de seus dados enquanto o processo ainda está em execução, pois isso pode mudar no momento em que essas informações são retornadas para você.

A partir do modo kernel, seria possível mapear meticulosamente uma parte da RAM para um espaço de endereçamento do kernel não utilizado anteriormente, procurá-lo, desmapear, repetir. No entanto, como cybernard menciona, a RAM liberada por um processo final provavelmente será usada em breve por outra coisa. E sim, ele é sobrescrito, seja com outra coisa (se estiver mapeado para um arquivo) ou com zeros antes de ser exposto ao modo de usuário. Além disso, se a sua string cruzou o limite de um dos pedaços que você está pesquisando, você não o encontrará mesmo que ainda esteja na RAM.

Qual é o objetivo aqui?

    
por 23.01.2016 / 19:20