AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Programm NUR aus Delphi heraus starten
Thema durchsuchen
Ansicht
Themen-Optionen

Programm NUR aus Delphi heraus starten

Offene Frage von "diedreistendrei"
Ein Thema von diedreistendrei · begonnen am 7. Mai 2007 · letzter Beitrag vom 8. Mai 2007
Antwort Antwort
diedreistendrei

Registriert seit: 2. Mai 2007
3 Beiträge
 
#1

Programm NUR aus Delphi heraus starten

  Alt 7. Mai 2007, 16:42
Hallo,

gibt es eine einfache Möglichkeit, ein beliebiges Programm NUR aus Delphi öffnen zu lassen? D.h. ein exe-file soll nicht geöffnet werden können, es sei denn, ein geschriebenes Delphi-Programm veranlasst dies.

Ich denke dabei an einen Passwortschutz durch ein Delphi-Programm. Natürlich soll die Zieldatei nicht ohne die Passwortabfrage aus Delphi (z.B. durch eine InputBox realisiert) geöffnet werden dürfen.

Über Hinweise würde ich mich freuen.

Danke,

Larry
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Programm NUR aus Delphi heraus starten

  Alt 7. Mai 2007, 17:34
Realisiere das doch über ein Memory Mapped File.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Programm NUR aus Delphi heraus starten

  Alt 7. Mai 2007, 17:53
es gibt einige Varianten. Zum einen kannst du in der Projektdatei prüfen ob die Anwendung mit bestimmten Parametern gestartet wurde (Diese Parameter müsste dann deine Passwortabfrage übergeben).
Eine weitere Variante wäre das du Application.Run etc. aus der Projektdatei entfernst, die Exe-Datei mit LoadLibrary lädst und eine exportierte Funktion aufrufst (dann ist es jedoch leichter gleich eine DLL zu nutzen).
Oder du prüfst in deinem Programm welches gestartet wird ob die Owner-Process-ID dein bestimmtes Delphiprogramm ist.
dann gibt es eben noch solche Varianten das du irgendwo ein "ja ich darf starten" ablegst (zum Beispiel in MemoryMappedFiles etc.).
Noch eine weitere Variante wäre das dein Programm welches gestartet werden soll nach dem Start das Starterprogramm sucht, diesem eine Message schickt und das Starterprogramm dann sagt ob es wirklich der Starter war oder eben nicht.

Du siehst das du die Qual der Wahl hast so viele Varianten gibt es.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.171 Beiträge
 
Delphi 12 Athens
 
#4

Re: Programm NUR aus Delphi heraus starten

  Alt 7. Mai 2007, 18:36
Wenn es sich nur um ein bestimmtes Programm handelt, welches das Starten veranlassen darf, dann bietet sich die Variante mit der Owner-Process-ID wohl besser an, wobei man da noch das zugehörige Programm analysieren sollte (z.B. über 'nen Hash und Ähnlichem prüfen, ob es wirklich das passende Programm ist).

Denn alles Andere kann man auch mit Nicht-Delphi-Programmen, oder auch einer "Fälschung" in Delphi nachmachen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
diedreistendrei

Registriert seit: 2. Mai 2007
3 Beiträge
 
#5

Re: Programm NUR aus Delphi heraus starten

  Alt 7. Mai 2007, 20:44
Hallo,

danke für eure Hinweise.

Wahrscheinlich habe ich mich etwas missverständlich ausgedrückt. Ich möchte eine beliebige Datei aus meinem Delphi-Programm öffnen, also z.B. irgendeine exe-Datei (dies soll kein Delphi-Programm sein). Klappt das mit den Memory Mapped Files? Ist das auch relativ einfach zu verstehen?

Danke für eure Hilfe, Gruß,

Larry
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Programm NUR aus Delphi heraus starten

  Alt 7. Mai 2007, 20:49
wenn du einfach nur ein Programm starten willst schau dir mal ShellExecute oder CreateProcess an.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Programm NUR aus Delphi heraus starten

  Alt 7. Mai 2007, 20:57
Ich übersetze mal, was diedreistendrei (btw: geile Serie) möchte

Er möchte bestimmte Anwendungen (Bsp: Notepad.exe, winword.exe, ...) mit einem Passwortschutz versehen, damit sich diese Programme nicht mehr über den Explorer und ähnlichem öffnen lassen. Diese geschützten Programme sollen nur dann starten, wenn diese über sein selbst geschriebenes Programm aufgerufen werden, was nach dem Passwort verlangt und bei korrekter Eingabe die entsprechende Exe (Bsp: Notepad.exe) startet. Ansonsten sollen die Anwendungen nicht gestartet werden können.

So habe ich seine Frage verstanden, nur wie man das umsetzen kann oder eigenes Dateisystem oder sowas in der Art, weiß ich nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

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

Re: Programm NUR aus Delphi heraus starten

  Alt 7. Mai 2007, 22:02
Ich würde die zu schützenden EXE Dateien verschlüsseln und erst nach Eingabe des korrekten PWs wieder entschlüsseln und ausführen. Das Ganze am besten nach Nicos InMemExe Beispiel um zu verhindern, dass man sich die unverschlüsselte EXE kopieren kann.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
diedreistendrei

Registriert seit: 2. Mai 2007
3 Beiträge
 
#9

Re: Programm NUR aus Delphi heraus starten

  Alt 8. Mai 2007, 08:26
Hi,

danke Matze für deine "Übersetzung". Genau so soll es sein. Gibt's da 'ne einfache Lösung...?

Larry
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Programm NUR aus Delphi heraus starten

  Alt 8. Mai 2007, 09:13
die einfachste Lösung wäre die Verwendung von NTFS und das ausführen/lesen der Exe nur einem bestimmten Nutzer zu gestatten. Dein Programm macht dann nichts anderes als das Programm unter diesem bestimmten Nutzer auszuführen.
Die kompliziertere Lösung wäre wohl ein Api-Hook in dem die Funktionen zum ausführen von Programmen gesperrt werden.

Mir bleibt nur der Sinn des ganzen verborgen. Möchte ein Nutzer das ein bestimmtes Programm nicht gestartet wird so startet er es eben einfach nicht bzw. setzt im Windows die Rechte entsprechend.
Was hast du also vor?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:53 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