Ir para conteúdo
Faça parte da equipe! (2024) ×

Tutorial Injetor de DLL pelo nome da janela


majorwebcheats
 Compartilhar

Posts Recomendados

o que mais tem aqui na área de programação é tutorial de como criar injector de dll e todos iguais...

quando fazia dll pra priston lembro que lipinf apareceu com um injector por nome da janela, e depois nunca mais vi, o que me deu a ideia de vim postar como fazer o mesmo.

 

a injeção de uma dll é feito através do PID (Process ID), em todos tutoriais de injector, o PID é obtido através do processo, nesse tutorial ainda vai continuar sendo injetado pelo PID, porém ele é pego através do nome da janela.

 

adicione 2 buttons(aba standard), 2edits(aba standard), 1timer(aba system) e um opendialog(aba dialogs)

onde button1 é para carregar a dll

button2 ativar o timer e fazer a injeção da dll

edit1 colocar nome da janela que quer efetuar a injeção de dll

edit2 caminho da dll

 

Função para obter o PID

 

Código:

function ProcessID(const hWnd: THandle): THandle;

var

PID: DWORD;

begin

if hWnd<>0 then

begin

GetWindowThreadProcessID(hWnd, @PID);

Result:=PID;

end

else

Result:=0;

end;

 

 

 

 

 

 

função de injetar a dll, conhecida pela maioria.

Código:

function inject(PID:DWORD; 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;

 

 

 

 

 

 

 

 

 

botão 1

Código:

if not OpenDialog1.Execute then Exit;

Edit2.Text:=OpenDialog1.FileName;

 

 

 

 

 

botão 2

Código:

Timer1.Enabled:=True;

 

 

 

 

 

timer

Código:

var PID: DWORD;

begin

Timer1.Enabled:=False;

PID := ProcessID(findwindow(nil, PChar(edit1.text)));

if PID=0 then

begin

Timer1.Enabled:=True;

Exit;

end;

Timer1.Enabled:=False;

if Inject(PID, Edit2.Text) then

MessageBoxA(Handle, 'dll injetada', 'injetor', MB_ICONEXCLAMATION+MB_SYSTEMMODAL)

else

MessageBoxA(Handle, 'error', 'error', MB_ICONERROR+MB_SYSTEMMODAL);

end;

Link para o comentário
Compartilhar em outros sites

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

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • 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.