Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

thiagobillieri

Endereço de Memória

Recommended Posts

Queria saber se existe algum meio de pegar o valor que está em um certo endereço da memória. Caso eu consiga fazer isso, gostaria de saber se tem como editar esse valor.Se for dar exemplo utilize algum endereço de memória, tipo 25CB62, assim fica mais fácil de entender.--Abraços,Thiago

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sou especialista no assunto, mas acho que posso dizer o seguinte:Se você está tentando fazer isso na plataforma .Net, eu acho que não é possível pois o código é gerenciado (isto é, não há liberdade para você manipular ponteiros e muito menos endereços de memória - pelo menos nunca vi ninguem fazer isso em .net). Mas é possível manipular ponteiros utilizando a partícula unsafe no código (se você utiliza a linguagem C#).Mas é perigoso manipular endereços de memória...Se estou certo, é possível fazer isso utilizando C++ ou C, mas não em .Net, talvez no Dev-C++.De qualquer forma, você precisa especificar qual ambiente de programação e a linguagem que você está usando.Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Complementando a resposta, eu já tentei fazer isso uma vez com o Dev-C++ e não foi possível. Isso porque os programas em Windows rodam com "memória protegida", o que impede que um programa altere um endereço que está sendo utilizado por outro.Abraços,Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho um exemplo aqui, não sei se é o que eu procuro.

 

Private Declare Sub CopyMemory Lib "kernel32" Alias _"RtlMoveMemory" (ByVal Destination As String, ByVal Source As _String, ByVal Length As Long)

Tem uma classe no Visual Studio 2003, MemoryStream. O que ela faz?

 

Eu também tenho um exemplo em delphi, mas está no meu computador e agora estou no trabalho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho um exemplo aqui, não sei se é o que eu procuro.

Private Declare Sub CopyMemory Lib "kernel32" Alias _"RtlMoveMemory" (ByVal Destination As String, ByVal Source As _String, ByVal Length As Long)
CopyMemory copia um bloco de memória de um lugar para outro, porém este "outro" você não específica exatamente onde (você simplesmente aloca memória para ele, porém seu endereço é automático).

Tem uma classe no Visual Studio 2003, MemoryStream. O que ela faz?

Permite você trabalhar com arquivos na memória como se fossem arquivos em disco. A vantagem é que um arquivo em memória tem acesso mais rápido que um arquivo em disco.Abraços,Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.