Criando Injetor De CaBr- Delphi7
2 participantes
Página 1 de 1
Criando Injetor De CaBr- Delphi7
1° ~> Crie um novo projeto em DELPHI
2° ~> Adicione os Componente a seguir:
2 Label's
2 Edit's
1 Botão
Arrume mais ou menos desta maneira:
Eu alterei os CAPTIONS:
label1 = Processo
label2 = DLL
Button1 = Injetar
-------------------------------------------------------------------------
Muito bem, se você chegou até aqui sem problemas irá conseguir o resto..
-- 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.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
begin
Result := True;
end;
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
dê um enter e adicione
2° Função
f
Código:
unction 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;
--
Agora clique duas vezes 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'),'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
-------------------------------------------------------------------------
Agora, irei passar o código para fazer com que seu Injetor funcione em todos os jogos, principalmente em 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.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 processo de Criação inteiro, vamos para a parte de salvar e Compilar o Projeto...
Algumas pessoas já me perguntaram como fazer isso então vou explicar.
Após ter Feito TUDO siga esta foto para salvar seu projeto:
O Programa irá pedir para vc salvar dois arquivos... (salve os dois na mesma Pasta)
Logo após ter salvado você terá que Compilar seu Projeto para o arquivo exe ser criado.. (Project1.exe)
Agora seu Trainer ou qualquer outro programa foi Criado...
O arquivo exe será criado Dentro da Pasta onde voce Salvou o Projeto anteriormente..
Obs: ~> Coloque a DLL dentro da pasta do Injetor
Obs²: ~> Se você não sabe como criar uma DLL, dá uma olhada no tópico que eu fiz: [TUTORIAL] Criando uma DLL para Combat Arms ~~ IIvanXD
Creditos:
Ramonzinho98
Cheat Engine
2° ~> Adicione os Componente a seguir:
2 Label's
2 Edit's
1 Botão
Arrume mais ou menos desta maneira:
Eu alterei os CAPTIONS:
label1 = Processo
label2 = DLL
Button1 = Injetar
-------------------------------------------------------------------------
Muito bem, se você chegou até aqui sem problemas irá conseguir o resto..
-- 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.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
begin
Result := True;
end;
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
dê um enter e adicione
2° Função
f
Código:
unction 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;
--
Agora clique duas vezes 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'),'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
-------------------------------------------------------------------------
Agora, irei passar o código para fazer com que seu Injetor funcione em todos os jogos, principalmente em 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.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 processo de Criação inteiro, vamos para a parte de salvar e Compilar o Projeto...
Algumas pessoas já me perguntaram como fazer isso então vou explicar.
Após ter Feito TUDO siga esta foto para salvar seu projeto:
O Programa irá pedir para vc salvar dois arquivos... (salve os dois na mesma Pasta)
Logo após ter salvado você terá que Compilar seu Projeto para o arquivo exe ser criado.. (Project1.exe)
Agora seu Trainer ou qualquer outro programa foi Criado...
O arquivo exe será criado Dentro da Pasta onde voce Salvou o Projeto anteriormente..
Obs: ~> Coloque a DLL dentro da pasta do Injetor
Obs²: ~> Se você não sabe como criar uma DLL, dá uma olhada no tópico que eu fiz: [TUTORIAL] Criando uma DLL para Combat Arms ~~ IIvanXD
Creditos:
Ramonzinho98
Cheat Engine
IIvanXD- Membro
- Mensagens : 3
Agradecimentos : 0
Data de inscrição : 05/03/2011
Idade : 29
Re: Criando Injetor De CaBr- Delphi7
Tópico Fechado ]x] .
Motivo : Já tem um tópico identico.
Antes de postar use a ferramenta buscar .
Motivo : Já tem um tópico identico.
Antes de postar use a ferramenta buscar .
AND3R5ON-- Membro
- Mensagens : 6
Agradecimentos : 0
Data de inscrição : 28/12/2011
Tópicos semelhantes
» [Delphi7] Criando um gerador de senha.
» Criando um injetor de DLL's
» [CABR]Net Em Massa Bug
» Injetando um HACK CAbr
» [CABR]Net Em Massa CA Bug + Cleaner.
» Criando um injetor de DLL's
» [CABR]Net Em Massa Bug
» Injetando um HACK CAbr
» [CABR]Net Em Massa CA Bug + Cleaner.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos