Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

CreateProcess importieren / API Hooks umgehen

  Alt 1. Mär 2007, 14:59
Hi,

ich will die CreateProcess API dynamisch in mein Programm einbinden. Dazu verwende ich:

Delphi-Quellcode:
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;
Leider kommt nun nach dem Start des Programmes sofort die Meldung, dass ein Fehler verursacht wurde und das Programm beendet wird.

Woran kann das liegen?

PS: GetRealProcAddress ermittelt nur die "ursprüngliche" Adresse der API, somit werden Userlevel API Hooks nicht gecallt.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat