Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   AFXHook CreateProcessEx Lib Inject (https://www.clubdelphi.com/foros/showthread.php?t=90606)

Ch34t 25-07-2016 05:58:43

AFXHook CreateProcessEx Lib Inject
 
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
  //get the dll data to inject
  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);

  //create process and inject
  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);

  //kill the process
  //TerminateProcess(Process, 0);


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


La franja horaria es GMT +2. Ahora son las 08:43:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi