Amigos, feliz dia tengo un programa el cual quisiera hacer la inyeccion de una denial link library pero dicho programa tiene proteccion para hacer ello y no me ha sido tan facil....
he intentado con setwindowhookex getprocessid,getprocessbyname
WRITEPROCESSMEMORY inyectando y escribiendo y ninguna de las dos sin resultado alguno,
buscando por internet mas alternativas tengo un codigo asi...
Código Delphi
[-]
uses
Windows,
afxCodeHook,
var
StartInfo: TStartupInfo;
ProcInfo: TProcessInformation;
BytesRead, Module, Process, Size: dword;
Path: array [0..MAX_PATH] of char;
Data: pointer;
begin
Module := CreateFile(pchar('C:/Project1.dll'), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Size := GetFileSize(Module, nil);
GetMem(Data, Size);
ReadFile(Module, Data^, Size, BytesRead, nil);
CloseHandle(Module);
ZeroMemory(@StartInfo, SizeOf(TStartupInfo));
StartInfo.cb := SizeOf(TStartupInfo);
CreateProcessEx(nil, 'notepad.exe', nil, nil, False, 0, nil, nil, StartInfo, ProcInfo, Data);
Process := ProcInfo.hProcess;
FreeMem(Data);
Sleep(3000);
END.
pero dicho codigo crea el proceso notepad.exe y el Programa que inyectare la dll crea su propio proceso ya que tiene dicho sistema de proteccion ya mencionado y el abre algo tipo launcher por unos segundos y luego es que abre el proceso que quiero atacar,
otra forma me dijeron que a "kernel mode" o con drivers y no tengo dicho conocimiento para ello o no encuentro material para ello, tambien me nombraron la collecion madshi y otras pero como son muy viejas no dicen nada concreto al respecto y por lo que pude compilr nada me es util para lo que quiero hacer..
otra cosa al hacer cualquiera de las inyecciones antes mencionadas no hace la inyeccion, no inyecta el dlI
Tengo otro codigo que me paso un amigo
pero no lo entiendo muy bien asm como pudiera anexarle a dicho codigo el windowhandle o el procname ?...
Código Delphi
[-] const
KE =kernel32.dll;
LOAD =LoadLibraryA;
var
Form1: TForm1;
hHandle:THandle;
ADDLOAD:dword;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
hHandle:= GetModuleHandle(KE);
ADDLOAD:= DWORD(GetProcAddress(hHandle,LOAD));
end;
procedure Cargardll;
var
Direcciondll:string;
begin
direcciondll:= (PChar('Nombredetudll.dll'));
asm
pushad
push direcciondll
call dword[ADDLOAD]
popad
end;
end;
end.
no soy tan avanzado en asm al igual delphi pero quisiera saber que pudiese utilizar para poder expropiar dicho proceso a ser inyectado y anexar alli lo antes mensionado......
cuando busco en search nada con resultado positivo hacia mi aplicacion.
Gracias
//Saludos