![]() |
CreateProcess importieren / API Hooks umgehen
Hi,
ich will die CreateProcess API dynamisch in mein Programm einbinden. Dazu verwende ich:
Delphi-Quellcode:
Leider kommt nun nach dem Start des Programmes sofort die Meldung, dass ein Fehler verursacht wurde und das Programm beendet wird.
function CreateProcess(lpApplicationName: PChar; lpCommandLine: PChar;
const lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; lpCurrentDirectory: PChar; const lpStartupInfo: TStartupInfo; out lpProcessInformation: TProcessInformation): BOOL; stdcall; var pCreateProcess: function(lpApplicationName: PChar; lpCommandLine: PChar; const lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; lpCurrentDirectory: PChar; const lpStartupInfo: TStartupInfo; out lpProcessInformation: TProcessInformation): BOOL; stdcall; begin pCreateProcess := GetRealProcAddress(GetModuleHandle('kernel32'), 'CreateProcess'); Result := pCreateProcess(lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation); end; Woran kann das liegen? PS: GetRealProcAddress ermittelt nur die "ursprüngliche" Adresse der API, somit werden Userlevel API Hooks nicht gecallt. |
Re: CreateProcess dynamisch importieren
kernel32.dll
|
Re: CreateProcess dynamisch importieren
Geht leider auch nicht .. es müssen die Parameter Datentypen sein, die nicht stimmen =/
|
Re: CreateProcess dynamisch importieren
@pCreateProcess := GetRealProcAddress(GetModuleHandle('kernel32.dll') , 'CreateProcessA');
|
Re: CreateProcess dynamisch importieren
Zwischenfrage, warum möchtest du denn CreateProcess dynamisch implementieren?
Diese ist doch in der Unit Windows enthalen. |
Re: CreateProcess dynamisch importieren
Argh das A hat gefehlt :wall: Danke ..
@TurboPascal: Ich möchte die API Hooks umgehen, deshalb .. |
Re: CreateProcess dynamisch importieren
Das A und noch viel wichtiger das "@" ... Du solltest pointer _immer_ auf nil pruefen .
|
Re: CreateProcess dynamisch importieren
Ja, hab ich schon eingebaut ..
|
Re: CreateProcess dynamisch importieren
Damit umgehst du vielleicht 10% der API hooks, mehr aber auch nicht...
|
Re: CreateProcess dynamisch importieren
Die API Hooks werden komplett umgangen .. nur die Kernel Hooks nicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz