Ir para conteúdo
Fórum Script Brasil
  • 0

Escrever em um endereço de Memoria


renan290812

Pergunta

Eu estou acessando uma memoria e consigo editar ela atraves do editor, mas queria por essa ediçao em um executavel na linguagem delphi: Código que estou usando

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
NomeJanela : THandle;
PHandle : THandle;
PID, TID, R : DWORD;
Escrever : DWORD;
implementation
{$R *.dfm}
Procedure PegarHandle(Titulo:String);
Begin
NomeJanela := FindWindow(nil, pChar (Titulo));
If NomeJanela <= 0 Then
Showmessage('O processo não está em execução.')
else
TId := GetWindowThreadProcessId(NomeJanela, @PID);
PHandle := OpenProcess(PROCESS_ALL_ACCESS,FALSE,PID);
end;
Procedure ler(Endereco:dword);
var
Ler:dword;
valor:integer;
begin
valor:= 0;
ReadProcessMemory(PHandle,pointer(endereco),addr(valor),4,Ler);
end;
Procedure escreve(Endereco:dword ; valor: integer);
var
w:dword;
begin
writeprocessmemory(PHandle,pointer(endereco),addr( valor),4,w);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
PegarHandle('Main');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
escreve (StrToInt ('$' + '02963388'), StrToInt ('00'));
end;
end.
mas ele não esta editando a memoria atraves desses códigos, alguém poderia me ajudar a corrigir onde esta o erro? Obrigado
( Apenas para fins de aprendizagem e aprimoramento de conhecimento)
Editado por Jhonas
Regras do Forum
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

exemplo

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
NomeJanela : THandle;
PHandle : THandle;
PID, TID, R : DWORD;
Escrever : DWORD;

implementation

{$R *.dfm}


Procedure PegarHandle(Titulo:String);
Begin
NomeJanela := FindWindow(nil, pChar (Titulo));
If NomeJanela <= 0 Then
Showmessage('Erro. Este processo não está em execução.')
else
TId := GetWindowThreadProcessId(NomeJanela, @PID);
PHandle := OpenProcess(PROCESS_ALL_ACCESS,FALSE,PID);
showmessage(inttostr(Tid));
showmessage(inttostr(PHandle));
end;

Procedure ler(Endereco:dword);
var
Ler:dword;
valor:integer;
begin
valor:= 0;
ReadProcessMemory(PHandle,pointer(endereco),addr(valor),4,Ler);
end;

Procedure escreve(Endereco:dword ; valor: integer);
var
w:dword;
begin
writeprocessmemory(PHandle,pointer(endereco),addr(valor),4,w);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
PegarHandle('Monitor'); // nome da janela
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
escreve (StrToInt ('$' + '083A9444'), StrToInt ('1'));
end;

end.

==============================================================================

outro exemplo

http://rodneypj.blogspot.com.br/2012/08/source-hack-para-paciencia-spider-com.html

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...