Viciados BR
Olá bem vindo a o Viciados BR

Se você ainda não e membro Cadastre-se Agora
Ou se você já é membro, Logue-se .
e veja nosso Conteúdo.
Pois conteúdo aqui é o que não falta !

Participe do fórum, é rápido e fácil

Viciados BR
Olá bem vindo a o Viciados BR

Se você ainda não e membro Cadastre-se Agora
Ou se você já é membro, Logue-se .
e veja nosso Conteúdo.
Pois conteúdo aqui é o que não falta !
Viciados BR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Painel de Usuário

Mensagens: 0


Alterar
Ver
Tópicos e mensagens

Contador de Visitas

Criando Injetor Universal .

2 participantes

Ir para baixo

Criando Injetor Universal . Empty Criando Injetor Universal .

Mensagem por Juuse Qua Set 21, 2011 6:21 pm

olá Galera...
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:



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:
CÓDIGO:
implementation

{$R *.dfm}



Adicione as Funções :

1° Função

CÓDIGO:
[code~]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.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
begin
Result := True;
end;
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
[/code]

CÓDIGO:
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.szExeFile)), 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:
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'),'LoadLibraryA'), 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 no gunboud
Mais como sou bonzinho e vou passa o código que fara com que voce injete a DLL em qualquer jogo.. ( Menos GunBound.. )

No lugar da 2ª Função Adicione
CÓDIGO:
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.szExeFile)), 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
Vai em file e clika salva projeto .



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 )

Agr e hora de compila .

Clique em programa, Bote no icone 9 que e o de compila.

Ae..

Agora seu Trainer ou qualquer outro programa foi Criado...
O arquivo exe será criado Dentro da Pasta onde voce Salvou o Projeto anteriormente..



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

Tudo Pronto GALERA.. Aproveitem
Creditos:Post Juuse
Imagens:Romanha
......................................
Juuse
Juuse
Membro Avançado
Membro Avançado

Post Post : 170
Reputação Reputação : 0
Data de Inscriçao Data de Inscriçao : 19/04/2011

Ir para o topo Ir para baixo

Criando Injetor Universal . Empty Re: Criando Injetor Universal .

Mensagem por BGamer Qui Set 22, 2011 2:55 pm

Nossa... Isso é muito para a minha cabeça! Bom Tópico!

BGamer
Membro de Bronze
Membro de Bronze

Post Post : 384
Reputação Reputação : 14
Data de Inscriçao Data de Inscriçao : 19/07/2011
Idade : 25
Localização : No Neet Forum

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos