Acessar variavel de outro programa pelo endereço

1. Acessar variavel de outro programa pelo endereço

Mateus Rodrigues
pingulin

(usa Arch Linux)

Enviado em 25/02/2017 - 22:27h

Olá pessoal, estava brincando aqui e nao consigo acessar o valor de uma variavel de um programa rodando usando o endereço de memoria da mesma em outro programa. Existe alguma forma usando apenas ponteiros, ou realmente nao eh possivel?


  


2. Re: Acessar variavel de outro programa pelo endereço

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 26/02/2017 - 21:35h


Oi,

acredito que em sistemas modernos isso não seja possivel. Porém, ja ouvi falar de programadores iniciantes travando a máquina por terem mexido em uma posição de memória do SO.

Também tenho interesse no assunto, espero que alguém com mais informações responda. Caso você queira apenas trocar variáveis entre programas desktop, uma possibilidade é usar sockets.



Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA
Oracle Certified Associate, Java SE Programmer - OCA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/


3. Re: Acessar variavel de outro programa pelo endereço

Paulo
paulo1205

(usa Ubuntu)

Enviado em 01/03/2017 - 23:46h

Em sistemas modernos, todos os endereços que um programa enxerga são relativos ao próprio programa, quase nunca correspondentes aos endereços reais da memória física onde os dados estão guardados. Existe uma “camada” no processador, controlada pelo sistema operacional, que faz o mapeamento entre a memória que o programa enxerga e a memória física real. Você pode até ter dois programas distintos que executam ao mesmo tempo, e ponteiros em cada um deles que têm endereços coincidentes, mas com dados diferentes, pois cada processo tem um mapeamento distinto feito pelo processador.

Entretanto, a maioria dos sistemas oferece mecanismos para compartilhamento de memória, que é útil em algumas aplicações distintas mas que eventualmente precisem compartilhar informações. Para usar tal recurso, um programa precisa solicitar ao SO a criação de um espaço a ser compartilhado, e o sistema devolve ao programa um ponteiro para a região criada. As outras aplicações que quiserem acesso à mesma área pedem tal acesso ao SO, usando uma chave de acesso que identifica a área a ser acedida.

Além disso, existem também mecanismos para que um processo solicite ao SO acesso a partes da memória privativa de outros processos. Geralmente isso é usado em situações como a de um debugger ou aplicações de patches em programas que não podem parar. Alguns programas que fazem cheat de jogos usam esses mesmos mecanismos.


4. Re: Acessar variavel de outro programa pelo endereço

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 02/03/2017 - 00:23h

Oi Paulo.

Você conhece algum livro ou documentação sobre o assunto? Pode recomendar algum material?

Isso de acessar uma posição de memória do SO por engano é ou já foi possível?

Obrigado, Paulo Dias.

Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA
Oracle Certified Associate, Java SE Programmer - OCA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/


5. Re: Acessar variavel de outro programa pelo endereço

Mateus Rodrigues
pingulin

(usa Arch Linux)

Enviado em 02/03/2017 - 01:04h

Po cara, valeu mesmo pela resposta, mt esclarecedora.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts