[AJUDA] injetor de dll

Delphi

26/08/2010

Seguinte amigos, criei um injetor de dll porém eu quero que ele injete uma dll que fica no local c:\ 

o code é esse.. 
 

procedure TForm1.Button1Click(Sender: TObject); 
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); 

end; 
end; 
end; 

Agradeço desde de já! 
Gabriel

Gabriel

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

26/08/2010

procedure TForm1.Button1Click(Sender: TObject);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);
    end;
  end;
end;

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

para
ker41280dll := Edit2.Text;

dessa forma você terá de indicar o caminho completo da DLL no campo Edit2.


GOSTEI 0
POSTAR