Fórum [AJUDA] injetor de dll #384670
26/08/2010
0
Seguinte amigos, criei um injetor de dll porém eu quero que ele injete uma dll que fica no local c:\
o code é esse..
Agradeço desde de já!
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;
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
Curtir tópico
+ 0
Responder
Posts
26/08/2010
Emerson Nascimento
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.
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.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)