![]() |
ALLE möglichkeiten über aus Prog. ein Prog. zu starten
Hi ihrs
ich suche wirklich alle Möglichkeiten, wie ein Programm ein Programm ein neues Programm starten kann...
Kennt ihr noch weitere Möglichkeiten? Oder gibt es vielleicht auch die Möglichkeit CreateProcess oder so "nachzubauen"? Gruß SleepyMaster |
Re: ALLE möglichkeiten über aus Prog. ein Prog. zu starten
In D3 gibt es noch
Delphi-Quellcode:
executefile({Datei},'',inttostr(sw_show),1)
|
Re: ALLE möglichkeiten über aus Prog. ein Prog. zu starten
welche API-Funktion ruft das denn auf?
|
Re: ALLE möglichkeiten über aus Prog. ein Prog. zu starten
Zitat:
ShellExecuteExW ShellExecuteExA CreateProcessA CreateProcessW |
Re: ALLE möglichkeiten über aus Prog. ein Prog. zu starten
CreateProcessAsUser (Aber nur Dienste)
CreateProcessWithLogonW (Nur ab 2000) |
Re: ALLE möglichkeiten über aus Prog. ein Prog. zu starten
...und dann noch
CreateProcessAsUserW CreateProcessAsUserA SHCreateProcessAsUserW (nicht unter XP) CreateProcessWithTokenW dann hätten wir also:
|
Re: ALLE möglichkeiten über aus Prog. ein Prog. zu starten
ok... immer weiter so... :thumb:
Vielen Dank :love: am interesanntesten fände ich es noch, ob es irgendwie Funktionen gibt, mit denen es Möglich ist, CreateProcess nachzubauen... |
Re: ALLE möglichkeiten über aus Prog. ein Prog. zu starten
Was hast du eigentlich vor?
|
Re: ALLE möglichkeiten über aus Prog. ein Prog. zu starten
NtCreateProcess
ZwCreateProcess PsCreateSystemProcess Zitat:
|
Re: ALLE möglichkeiten über aus Prog. ein Prog. zu starten
Hmm... ich werd's trozdem mal versuchen...
(hab im Moment ziemlich Stress in der Schule 6 Arbeiten diese Woche und ein größeres Projekt ist morgen abzugeben) vielen Dank für die Info... was ich vorhab? Soll ein kleines Security-Tool werden... ich brauch jedoch die volle Kontrolle über jedes Programm und will verhindern, dass es das mein Security Programm manipuliert. Dazu injeciere ich bei dem Start von Windows Code in die Winlogon.exe und Hooke unter anderem alle funktionen die irgendwie einen anderen Process starten können. Sobald also Winlogon.exe ein neuen Prozess starten will, wird mein Programm informiert und sorgt dafür, dass der in die Winlogon.exe injezierte Code auch in den neuen Prozess injeziert wird und falls der wieder einen neuen Prozess erzeugt auch in diesen wieder der Code injeziert wird usw... Jedoch muss ich verhindern, dass in der Zeit zwischen dem erstellen des Processes und dem ijezieren und dem ausführen des Codes in dem Prozess, der Prozess nicht die Möglichkeit hat dies zu verhindern oder etwas am System zu manipulieren :zwinker: - hab jedoch grade festgestellt, dass dies ganz einfach mit CREATE_SUSPENDED zu erreichen ist. Falls euch noch weitere "LowLevel" undokomentierte Windows Funktionen einfallen bitte melden :mrgreen: |
Re: ALLE möglichkeiten über aus Prog. ein Prog. zu starten
Zitat:
|
Re: ALLE möglichkeiten über aus Prog. ein Prog. zu starten
Shell-Hook? Wie mach ich die denn?
Wie funktionieren die? |
Re: ALLE möglichkeiten über aus Prog. ein Prog. zu starten
Hier gibt es einen von toms:
![]() |
Re: ALLE möglichkeiten über aus Prog. ein Prog. zu starten
Hmmm... soweit ich sehe nutzt er nur einen Windows-Hook dazu, um Code in jedes Programm das Window-Messages empfangen kann zu bekommen. Dieser Code Hookt dann erst die API-Funktionen.
Das Problem bei dieser Methode ist jedoch, dass in alle Programme die Window-Messages nicht empfangen können auch die API-Hooks nicht reininjeziert werden. :roll: Aber trozdem ganz netter Code... interessante Idee... Edit: Die GetMsgProc söllte (glaub ich mal) eigendlich so aussehen:
Delphi-Quellcode:
function GetMsgProc(code: Integer; wparam: WPARAM; lparam: LPARAM): LRESULT stdcall;
begin Result := CallNextHookEx(HookHandle, code, wparam, lparam); end; |
Re: ALLE möglichkeiten über aus Prog. ein Prog. zu starten
Noch mal eine Frage: Wenn ich PspCreateProcess hooke müsste das doch eigendlich genügen, da doch wirklich ALLE Funktionen die irgendwie einen Prozess erstellen können, auf PspCreateProcess zurückgreifen. Oder seh ich das falsch?
Und wie sieht das aus mit kompatibilität? NicoDE hat in einem anderen Thread gewarnt LowLevel funktionen zu nutzen, wenn man Kompatibilität zu älteren/neueren Betriebssystemen haben will. Was würdet ihr machen? Wenn ich jetzt nämlich CreateProcessAsUserA/W + CreateProcessA/W + CreateProcessWithLogonA/W + CreateProcessWithTokenA/W + WinExec hooke und es dann noch eine andere Funktion gibt, die nicht indirekt auf eine dieser Funktionen zugreift, dann hat mein Programm seinen Sinn verfehlt :cry: ... Außerdem noch die Frage: Wie sieht das mit Diensten aus? Mit welcher Funktion werden die gestartet? Und greift diese Funktion auf eine der oben genannten zurück? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 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