Buen día, deseo realizar una consulta sobre el tema de Injector de DLL, bloquear la injección de una dll y realizar la reversa, por ejemplo aqui muestro un source de un:
Anti Injector DLL
delphi
library Project2; uses SysUtils, Classes, Windows, Dialogs; {$R *.res} var HH : THandle; WBytes : Cardinal; procedure HookarFunc(NossaFunc : Pointer); var Pular : DWORD; Funcao : Pointer; begin Funcao := GetProcAddress(GetModuleHandle('ntdll.dll'), 'LdrLoadDLL') Pular := DWORD(NossaFunc) - DWORD(Funcao) - 5; VirtualProtect(Funcao, 5, PAGE_EXECUTE_READWRITE, nil); Funcao := Pointer(Pular); end; procedure OnInject; var H : Thandle; begin ShowMessage('Injección bloqueada'); H := GetModuleHandle('ntdll.dll'); H := 0; end; Procedure InjetadoNoPrograma; begin ShowMessage('Anti Injector Activado.'); end; begin HH := OpenProcess(PROCESS_ALL_ACCESS, false, GetCurrentProcessID); HookarFunc(@OnInject); CreateRemoteThread(HH, nil, 0, @InjetadoNoPrograma, @InjetadoNoPrograma, 0, WBytes); end.
Con esta dll injectado aun proceso ( ejemplo notepad.exe ) bloque la función de ntdll.dll de no dejar injectar mas DLL, ahora como podria hacer la reversa, es decir restaurar la función de ntdll.dll y poder injectar otras dll en el mismo proceso
He intectado injectar con otra función ( Con LoadLibraryA y LoadLibraryW ) pero sin resultado alguno.
Gracias de antemano por su apoyo y comprensión