AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi CreateProcess und uallHook.InjectLibrary
Thema durchsuchen
Ansicht
Themen-Optionen

CreateProcess und uallHook.InjectLibrary

Ein Thema von wicht · begonnen am 25. Mär 2008 · letzter Beitrag vom 30. Mär 2008
 
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#1

CreateProcess und uallHook.InjectLibrary

  Alt 25. Mär 2008, 19:10
Hallo Forum,

mal wieder eine Frage von mir.... Also, ich mache CreateProcess() und möchte dann mittels den schönen uall-Units eine DLL einschleusen (uallHook.InjectLibrary()).

Mein Code sieht so aus:
Delphi-Quellcode:
procedure MyCreateProcess(Filename: string);
var
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
begin
  FillChar(StartupInfo, SizeOf(StartupInfo), #0);
  StartupInfo.cb := SizeOf(StartupInfo);
  StartupInfo.dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
  StartupInfo.wShowWindow := 1;
  CreateProcess(nil,
    @Filename[1],
    nil,
    nil,
    False,
    CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,
    nil,
    nil,
    StartupInfo,
    ProcessInfo);
  uallHook.InjectLibrary(ProcessInfo.dwProcessId, 'D:\hook.dll');
end;
Funktioniert meistens auch, aber eben nicht immer. Als mir das aufgefallen ist, habe ich einfach die Funktion 10 mal mit 'notepad.exe' aufgerufen und 10 mal mit 'sndvol32.exe', einfach nur zum testen. Es kommt dann teilweise vor, dass der Prozess gar nicht mehr startet. Teilweise kommt überhaupt kein Fenster, oder das Programm startet (sndvol32), macht ein "Beep" (keine Ahnung warum) und ist dann auch weg, ohne ein Fenster anzuzeigen.
Vielleicht könnte man das Problem lösen, indem man vor InjectLibrary() ein Sleep oder so packt, aber das ist unsauber und hilft mir auch nicht wirklich weiter, das Problem zu verstehen. Ich vermute einfach mal, dass der Thread (von CreateRemoteThread) den Start des Programms (sndvol32/notepad) irgendwie durcheinander bringt.
Aber was kann man dagegen tun und wo genau liegt das Problem?

Würde mich sehr über Antworten freuen..

Gruß,
Alexander
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz