Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 [TUTORIAL]Criando Injetor DLL em Seg Mar 14, 2011 8:28 pm

FoemaPc

Membro
Membro

avatar
Eai galera da directon.tk vou trzer aqui para vcs um tutorial de criar injetor de dll !

Download parte 1 : [Você precisa estar registrado e conectado para ver este link.]
Download parte 2 : [Você precisa estar registrado e conectado para ver este link.]
Download parte 3 : [Você precisa estar registrado e conectado para ver este link.]
Tutorial :

Adicione os seguintes componentes:

2- GroupBox - Renomeia a 1 como "Configurações" e a segunda como "Injeção".
2- Labels - O primeiro escrito "Processo" e o Segundo "Dll".
3- Buttons - O primeiro escrito "Aguardar..."(Voce pode substituir por um RadioButton escrito Automatico) o segundo "Procurar" e o terceiro "Limpar Lista"
1- Listbox
1- Timer
1- OpenDialog

Tente deixar ele mais ou menos assim:




De dois cliques no form e declare nas uses TlHelp32.

Declare a função acima de end. :

Código:

function GetPID(ProcessName: string): DWORD;
var MyHandle: THandle;
Struct: TProcessEntry32;
begin
Result:=0;
try
MyHandle:=CreateToolHelp32SnapShot(TH32CS_SNAPPROC ESS, 0);
Struct.dwSize:=Sizeof(TProcessEntry32);
if Process32First(MyHandle, Struct) then
if Struct.szExeFile=ProcessName then
begin
Result:=Struct.th32ProcessID;
Exit;
end;
while Process32Next(MyHandle, Struct) do
if Struct.szExeFile=ProcessName then
begin
Result:=Struct.th32ProcessID;
Exit;
end;
except on exception do
Exit;
end;
end;



baixo da função declarada acima, declare :
Código:

function InjectDll(PIDWORD; sDll:string):Boolean;
var
hLib: Pointer;
hThread: THandle;
pMod: Pointer;
hOpen: THandle;
dWritten: Cardinal;
ThreadID: Cardinal;
begin
Result := FALSE;
hOpen := OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);
if hOpen <> INVALID_HANDLE_VALUE then
begin
hLib := GetProcAddress(GetModuleHandle(PChar('kernel32.dll ')), PChar('LoadLibraryA'));
pMod := VirtualAllocEx(hOpen, nil, Length(sDll) + 1, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
if WriteProcessMemory(hOpen, pMod, @sDll[1], Length(sDll), dWritten) then
Result := TRUE;
hThread := CreateRemoteThread(hOpen, nil, 0, hLib, pMod, 0, ThreadID);
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hOpen);
CloseHandle(hThread);
end;
end;




Clique 2 vezes no botão "Procurar" e adicione o seguinte código:
Código:

if not OpenDialog1.Execute then Exit;
Listbox1.Items.Add(ExtractFileName(OpenDialog1.Fil eName));
De dois cliques no botão "Aguardar..." e adicione:
Código:

Timer1.Enabled:=True;



De dois cliques no Timer e adicione:
Obs: Apague o begin.
Código:

var PID: DWORD;
begin
Timer1.Enabled:=False;
PID:=GetPID(Edit1.Text);
if PID=0 then
begin
Timer1.Enabled:=True;
Exit;
end;
Timer1.Enabled:=False;
if InjectDll(PID, Opendialog1.Filename) then
MessageBoxA(Handle, 'DLL injetada com sucesso!', 'DLL Injector', MB_ICONEXCLAMATION+MB_SYSTEMMODAL)
else
MessageBoxA(Handle, 'Erro ao injetar DLL.', 'DLL Injector', MB_ICONERROR+MB_SYSTEMMODAL);




o botão Limpar Lista Adicione o seguinte código:
Código:

ListBox1.Clear
Agora para configurar o Opendialog para abrir somente .dlls clique no openDialog e no canto esquerdo procure por Filter e clique em "..." La coloque:

Filenamell Filter: *.dll

Video Aula 1 :


[Você precisa estar registrado e conectado para ver este link.]

Video Aula 2 :

[Você precisa estar registrado e conectado para ver este link.]

Créditos :
ExFoemaPc ( eu , post )
FoemaPc ( eu , post )

2 Muito Bom em Seg Mar 14, 2011 8:35 pm

~ OwneD ~

Membro
Membro

avatar
Mas eu não entendo muito esse codigos de Injetor sou mais na Parte de codigos HTML!
Mas Porque você não faz um Injetor pro Forum ??

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum