Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Criando um injetor


War_ROck.
 Compartilhar

Posts Recomendados

Holá Galera...

 

Pelo que tenho visto por aí exitem muitos tutoriais ensinando como fazer um Injetor de DLL.

 

Mas tambem vi que todos aqueles tutoriais possuem erros, ou não injetam em jogos, ou são muito complicados para os iniciantes em delphi entenderem...

 

Pois é..

 

Eu to Aqui denovo e irei ensinar Passo a Passo como Fazer Um Injetor de DLL que injete em Jogos e que Não possui Erros...

 

Chega de Conversa.. Vamo lá

--------------------------------------------------------------------------------

 

1° ~> Crie Um novo projeto em DELPHI

 

2° ~> Adicione os Componente A seguir:

 

2 Label's

2 Edit's

1 Botão

 

Arrume + ou - Desta Maneira:

 

imagem3uyb.png

 

Eu Alterei os CAPTIONS:

 

label1 = Processo

label2 = DLL

Button1 = Injetar

 

-------------------------------------------------------------------------

 

Muito Bem Se voce chegou Até aqui sem problemas irá conseguir o resto..

Pois é só copiar e colar..

 

-- CÓDIGOS --

 

3° ~> Na parte USES Adicione -- Tlhelp32 -- ( sem os -- )

 

4° ~> Abaixo de

 

Código:

 

implementation

 

{$R *.dfm}

 

Adicione as Funções :

 

1° Função

 

Código:

function ValorAsc(Letra: String): Byte;

begin

if Length(letra) > 0 then ValorAsc := Ord(Letra[1]) else ValorAsc := 0;

end;

function crypt(Texto: String): String;

var

Cont, Cod: Integer;

Retorna: String;

begin

for Cont := 1 to Length(Texto) do begin

Cod := ValorAsc(Copy(Texto, Cont, 1));

Retorna := Retorna + Chr(Cod + 57(*valor a ser adicionado - pode ser modificado*));

end;

Crypt := Retorna;

end;

function Descript(Texto: String): String;

var

Cont, Cod: integer;

Retorna: String;

begin

for Cont := 1 to Length(Texto) do begin

Cod := ValorAsc(Copy(Texto, Cont, 1));

Retorna := Retorna + Chr(Cod - 57);

end;

Descript := Retorna;

end;

 

function processExists(exeFileName: string): Boolean;

var

ContinueLoop: BOOL;

FSnapshotHandle: THandle;

FProcessEntry32: TProcessEntry32;

begin

FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

FProcessEntry32.dwSize := SizeOf(FProcessEntry32);

ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);

Result := False;

while Integer(ContinueLoop) <> 0 do

begin

if ((UpperCase(ExtractFileName(FProcessEntry32.szExeF ile)) =

UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =

UpperCase(ExeFileName))) then

begin

Result := True;

end;

ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);

end;

CloseHandle(FSnapshotHandle);

end;

 

De um enter e adicione

 

2° Função

 

Código:

function GetID(Const ExeFileName: string; var ProcessId: DWORD): boolean;

var

i:integer;

ContinueLoop: BOOL;

FSnapshotHandle: THandle;

FProcessEntry32: TProcessEntry32;

begin

i:=0;

result := false;

FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

FProcessEntry32.dwSize := Sizeof(FProcessEntry32);

ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);

while integer(ContinueLoop) <> 0 do begin

if (StrIComp(PChar(ExtractFileName(FProcessEntry32.sz ExeFile)), PChar(ExeFileName)) = 0)

or (StrIComp(FProcessEntry32.szExeFile, PChar(ExeFileName)) = 0) then begin

if i = 1 then begin

ProcessId:= FProcessEntry32.th32ProcessID;

result := true;

break;

end;

i:=i+1;

end;

ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);

end;

CloseHandle(FSnapshotHandle);

end;

 

AE --

 

Agora clike duas vese no Botão e adicione o código:

 

Código:

var

Pid : dword;

ker41280dll : String;

pker41280dll : Pointer;

ker41280prcess,bw41280 : Cardinal;

hRemote_Thread : Cardinal;

begin

ker41280dll := ExtractFilePath(Application.Exename)+Edit2.Text;

if ProcessExists(PChar(Edit1.Text)) then begin

if FileExists(ker41280dll) then begin

GetID(PChar(Edit1.Text),pid);

ker41280prcess:= OpenProcess(PROCESS_ALL_ACCESS, false, PID);

pker41280dll := VirtualAllocEx(ker41280prcess,nil, length(ker41280dll), MEM_COMMIT,PAGE_EXECUTE_READWRITE);

WriteProcessMemory(ker41280prcess, pker41280dll, PChar(ker41280dll), length(ker41280dll), bw41280);

CreateRemoteThread(ker41280prcess, nil, 0, GetProcAddress(GetModuleHandle('kernel32.dll'),'Lo adLibraryA'), pker41280dll, 0, hRemote_Thread);

CloseHandle(ker41280prcess);

ShowMessage('DLL Injetada Com Sucesso');

end;

end;

end;

 

OK

 

Agora seu Injetor está Criado...

Altere o Visual ao seu Gosto

e crie uma DLL para vc usa-lo...

 

Só uma coisinha..

 

Este Injetor Só irá injetar DLL no Jogo GUNBOUND..Pois fiz ele apenas para pegar o 2º processo do GunBound,e gunbound é o unico jogo que conheço que precisa de 2 processo para funcionar...

-----------------------------------------------------------------------

Mas eu sou Bonzinho e vou passa o código que fara com que voce injete a DLL em qualquer jogo.. (Menos Gunbound) e entao isso enclui o Combat Arms!!!

 

No lugar da 2ª Função Adicione

 

Código:

function CMKGETID(ExeFileName: string; var ProcessId: dword) :boolean; // A função

var

ContinueLoop: BOOL;

FSnapshotHandle: THandle;

FProcessEntry32: TProcessEntry32;

begin

result := false;

FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

FProcessEntry32.dwSize := Sizeof(FProcessEntry32);

ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);

while integer(ContinueLoop) <> 0 do begin

if (StrIComp(PChar(ExtractFileName(FProcessEntry32.sz ExeFile)), PChar(ExeFileName)) = 0)

or (StrIComp(FProcessEntry32.szExeFile, PChar(ExeFileName)) = 0) then begin

ProcessId:= FProcessEntry32.th32ProcessID;

result := true;

break;

end;

ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);

end;

CloseHandle(FSnapshotHandle);

end;

 

-- não tente colocar as Duas funções no injetor senão vai dar problema --

-------------------------------------------------------------------------

Depois de Fazer todo esse Processo de Criação, Vamos para a Parte de salvar e Compilar o Projeto...

 

Muitos Membro ja me Perguntaram como fazer isso então aí vai o Tuto..

 

Apos ter Feito TUDO siga esta Foto para Salvar seu Projeto..

 

imagem23m.jpg

 

O Programa irá pedir para vc Salvar dois Arquivos... ( salve os dois na mesma Pasta )

 

Logo Apos ter Salvado vc tem que Compilar seu Projeto para o arquivo exe ser criado.. ( Project1.exe )

 

Siga esta Imagem para Compilar.

 

imagem2l.jpg

 

Ae..

 

Agora seu Trainer ou qualquer outro programa foi Criado...

O arquivo exe será criado Dentro da Pasta onde voce Salvou o Projeto anteriormente..

 

images?q=tbn:ANd9GcQS2oFgrAYTqZLYJ1KxUqqSS1837g-18Qy7inyXayng6uXwApl-sQ&t=1

Link para o comentário
Compartilhar em outros sites

O meu deus ja vi esse tuturial umas 500 mil vezes...

e ainda tem a cara de pal de diser que nao tem como eses.

mano use a ferramenta chamada " pesquisa " em cima

alem de tar em lugar errado comno o amigo de cima disse

deveria ta em Delphi 7. e ponha os creditos do tuturial

eu ja vi esse tutu aki mesmo na wc.

 

closed [x]

Link para o comentário
Compartilhar em outros sites

Eu nao pedi opiniao de ninguem ficam de boa ae

 

War Rock. Primeiro você tem que ter educação com os próximos, e o tópico esta em área errada e já vi muitos tutoriais ensinando o mesmo que você e ao contrariado de você eles tem educação!

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.