Fórum Escrever no Address em Float e não em 4b #595762
27/07/2018
0
Boa noite pessoal, estava estudando a linguagem fazendo um modificador pra um jogo de corrida (sim kkk) e me deparei com um problema..
Todos os address que acessei/escrevi eram em 4bytes, agora tenho que mandar um valor em Float e não em 4bytes.
Bom é isso, não consigo sair desse problema pois sou bem iniciante na linguagem/programação.
Obrigado desde já, vou colocar o código abaixo:
Todos os address que acessei/escrevi eram em 4bytes, agora tenho que mandar um valor em Float e não em 4bytes.
Bom é isso, não consigo sair desse problema pois sou bem iniciante na linguagem/programação.
Obrigado desde já, vou colocar o código abaixo:
GetProcessID('NFS13.exe', PID);
HandleX := OpenProcess(PROCESS_ALL_ACCESS, False, PID);
ReadProcessMemory(HandleX, Pointer(GetModuleHandleX(PID,'TS3.exe') + $00B09F58 ),@Endereco,4,Buffer);
ReadProcessMemory(HandleX, Pointer(Endereco + $35C),@Endereco,4,Buffer);
ReadProcessMemory(HandleX, Pointer(Endereco + $364),@Endereco,4,Buffer);
ReadProcessMemory(HandleX, Pointer(Endereco + $220),@Endereco,4,Buffer);
ReadProcessMemory(HandleX, Pointer(Endereco + $E8),@Endereco,4,Buffer);
Valor := 100; // Teria que ser 100 o valor mas isso em Float
WriteProcessMemory(HandleX, Pointer(Endereco + $60),@Valor,4,Buffer);Alisson
Curtir tópico
+ 0
Responder
Posts
31/07/2018
Felipe Morais
Alisson,
Eu não sei se compreendi bem o que pretende fazer, mas tentar alocar dado em endereçamento que não são compatíveis não soa muito bem. Por exemplo, um byte tem um range de 0 a 255 e tamanho de armazenamento 1 por cada byte, enquanto que o tipo Float/Double possui 15 dígitos significantes com expoentes que variam de -308 a +308 e seria preciso um tamanho de armazenamento de tamanho 8 para cada.
Em outras palavras, você está tentando estacionar um caminhão-cegonha (tamanho 8) numa vaga de carro popular(tamanho 1): não irá caber e provavelmente um acidente pode acontecer.
Presumo que seu projeto precisaria que os tipos de endereçamento (address) de memória precisam estar em conformidade com os dados que gostaria de escrever neles: o tipo adequado para ser alocado para seu tamanho correto.
Espero ter ajudado!
Eu não sei se compreendi bem o que pretende fazer, mas tentar alocar dado em endereçamento que não são compatíveis não soa muito bem. Por exemplo, um byte tem um range de 0 a 255 e tamanho de armazenamento 1 por cada byte, enquanto que o tipo Float/Double possui 15 dígitos significantes com expoentes que variam de -308 a +308 e seria preciso um tamanho de armazenamento de tamanho 8 para cada.
Em outras palavras, você está tentando estacionar um caminhão-cegonha (tamanho 8) numa vaga de carro popular(tamanho 1): não irá caber e provavelmente um acidente pode acontecer.
Presumo que seu projeto precisaria que os tipos de endereçamento (address) de memória precisam estar em conformidade com os dados que gostaria de escrever neles: o tipo adequado para ser alocado para seu tamanho correto.
Espero ter ajudado!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)