Fórum [Dúvida] Como escrever na memória o valor de um edit? #484865
08/07/2014
0
Fala galera, tudo bem?
Bom, tô mexendo na memória dos programas, porém surgiu uma dúvida: Como escrever na memória o valor de um edit?
Eu gostaria que ele pegasse esse valor pra colocar num timer e dar "freeze" nele, mas eu não consigo. Na hora de escrever o valor, o delphi dá erro: " '3330616529' is not a valid integer value."
No caso, o número "3330616529" varia de acordo com o momento. Eu gostaria de, por exemplo, se o valor for "3330616529", freezá-lo, do mesmo jeito se ele for "42412456623", sacam?
Esse é o código:
begin
OpenProcess(PROCESS_ALL_ACCESS, False, PID);
address:= $6C316C;
Offset:= $0;
Offset2:= $654;
Valor:= strtoint(edit6.Text);
ReadProcessMemory(HandleX, pointer(address), @address2, 4, buffer);
ReadProcessMemory(HandleX, pointer(address2 + Offset), @address2, 4, buffer);
WriteProcessMemory(HandleX, pointer(address2 + Offset2), @valor, 4, buffer);
end;
Ler o valor eu consigo normalmente, o problema é na hora de escrever.
Alguém tem alguma dica? Espero que tenha dado pra entender.
Obrigado.
Bom, tô mexendo na memória dos programas, porém surgiu uma dúvida: Como escrever na memória o valor de um edit?
Eu gostaria que ele pegasse esse valor pra colocar num timer e dar "freeze" nele, mas eu não consigo. Na hora de escrever o valor, o delphi dá erro: " '3330616529' is not a valid integer value."
No caso, o número "3330616529" varia de acordo com o momento. Eu gostaria de, por exemplo, se o valor for "3330616529", freezá-lo, do mesmo jeito se ele for "42412456623", sacam?
Esse é o código:
begin
OpenProcess(PROCESS_ALL_ACCESS, False, PID);
address:= $6C316C;
Offset:= $0;
Offset2:= $654;
Valor:= strtoint(edit6.Text);
ReadProcessMemory(HandleX, pointer(address), @address2, 4, buffer);
ReadProcessMemory(HandleX, pointer(address2 + Offset), @address2, 4, buffer);
WriteProcessMemory(HandleX, pointer(address2 + Offset2), @valor, 4, buffer);
end;
Ler o valor eu consigo normalmente, o problema é na hora de escrever.
Alguém tem alguma dica? Espero que tenha dado pra entender.
Obrigado.
Emanuel Amorim
Curtir tópico
+ 0
Responder
Post mais votado
08/07/2014
o delphi dá erro: " '3330616529' is not a valid integer value."
Olá amigo, nunca tentei desenvolver nada desse tipo, mas de cara já é possível dizer que essa mensagem é porque você está ultrapassando o limite do tipo Integer que varia na faixa de -2147483648 .... 2147483647.
Dê uma olhada nos tipos e seus respectivos limites na documentação embarcadero..
William
Responder
Gostei + 2
Mais Posts
08/07/2014
Emanuel Amorim
Huum. Depois de um tempo já usando delphi, não sabia que existia valores máximos lol valeu aí, resolveu, foi só, ao invés de ler a memória em 4 bytes, lê-la em Byte. Obrigado =D
Responder
Gostei + 0
11/07/2014
Guilherme
O tipo Cardinal ou DWORD (4 bytes, ou seja de 0...(4*1024*1024*1024)-1)=4294967295 pode resolver esta faixa que está utilizando. int64 é de 8 bytes.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)