(* Example of DLL Code to test DLL Injection: ------------------------------------------ BOF>> library UnprotectTestDLL; uses WinApi.Windows, System.SysUtils, System.Classes; {$R *.res} procedure DllMain(AReason: Integer); var AMessage : String; AStrReason : String; begin case AReason of DLL_PROCESS_DETACH : AStrReason := 'DLL_PROCESS_DETACH'; DLL_PROCESS_ATTACH : AStrReason := 'DLL_PROCESS_ATTACH'; DLL_THREAD_ATTACH : AStrReason := 'DLL_THREAD_ATTACH'; DLL_THREAD_DETACH : AStrReason := 'DLL_THREAD_DETACH'; else AStrReason := 'REASON_UNKNOWN'; end; AMessage := Format('(%s): Injected! Living in %d (%s) process.', [ AStrReason, GetCurrentProcessId(), ExtractFileName(GetModuleName(0)) ]); /// OutputDebugStringW(PWideChar(AMessage)); end; begin DllProc := DllMain; DllMain(DLL_PROCESS_ATTACH) <