![]() |
EXE in RES aus dem Speicher aufrufen
Hallo,
ich habe eine EXE-Datei in ein RES-File gepackt und kompiliert. Das Produkt habe ich in mein Projekt integriert. Das Programm, welches in dem RES File ist, setzt Attribute. Im Hauptprogramm wählt der User also ein Verzeichnis und drück auf "Ausführen". Nun sollte diese integrierte EXE per ShellExecute (oder anders?!) ausgeführt werden, mit den Parametern die ich übergebe. Soweit auch kein Problem. Nur muss ich bis dato die integrierte EXE vorher extrahieren (irgendwo uf der HDD speichern) und kann erst dann auf sie zugreifen. Das will ich aber nicht. Die integrierte EXE muss quasi nur für das Programm (im Speicher?) verfügbar sein... |
Re: EXE in RES aus dem Speicher aufrufen
Inwieweit bist du mit den Begriffen PE, Relocations, IAT-Patching vertraut?
|
Re: EXE in RES aus dem Speicher aufrufen
Die Begriffe gehört habe ich, mehr auch nicht.
|
Re: EXE in RES aus dem Speicher aufrufen
Dann hol dir doch bitte mal zu diesen Themen zuerst Infos ein. Die Antwort ergibt sich dann fast wie von selbst. Ob es natürlich notwendig ist solche Verrenkungen zu machen, nur weil du mal eben Attribute (von Dateien?) ändern willst ist sicher Overkill.
Grob beschrieben mußt du folgendes tun: 1. Die Ressource in der richtigen Granularität an einen anderen Platz im Speicher packen. ... und dann CreateProcess komplett selber nachempfinden (inkl Parameterübergabe). Mit DLLs ist das noch relativ einfach - mit EXEs _war_ es unter DOS möglich, bezweifele dies aber für Windows (mindestens die NT-Reihe). |
Re: EXE in RES aus dem Speicher aufrufen
Die EXE macht etwas mehr :)
Es geht sich allgemein darum, dass niemand hingehen kann und während der Ausführung meines Programms diese EXE "klauen" kann und selbst verwendet. |
Re: EXE in RES aus dem Speicher aufrufen
Kann ich doch auch so mit einem Resource-Editor.
|
Re: EXE in RES aus dem Speicher aufrufen
...daran habe ich natürlich nicht gedacht :)
Entsprechend ist der Schutz auch überflüssig... *grml* Oder kennst du bzw. jemand anderes 'ne Möglichkeit das RES-File zu schützen - aber imho wohl nicht möglich... :( |
Re: EXE in RES aus dem Speicher aufrufen
Klar, kannst die Binärdatei vorher verschlüsseln - das Endproblem bleibt aber (entpacken oder nicht der EXE nach Entschlüsseln).
|
Re: EXE in RES aus dem Speicher aufrufen
Du könntest auch machen, dass man die Exe nur mit einem bestimmten Parameter starten kann.
|
Re: EXE in RES aus dem Speicher aufrufen
Braucht er ja den Source der EXE, oder? Hätte er den, würde er sie doch hoffentlich nicht als Ressource einbetten, oder?
|
Re: EXE in RES aus dem Speicher aufrufen
Jo - das wäre sonst klug :)
Außerdem könnte man den Parameter ja aus dem Delphi-Programm auslesen, wäre also auch nicht das Problem für den "Dieb". Wie würdest du denn die Ressourcen verschlüsseln? Ich kann natürlich hingehen und die Dateien verschlüsseln und als RC File kompilieren. Das Hauptprogramm speichert den Stream dann auf der Festplatte und entschlüsselt das ganze dann - nur hier kann ich ja wieder angegriffen werden: Wenn's entschlüsselt ist, kopiere ich's aus dem Temp-Ordner oder wo es liegt und hab's. |
Re: EXE in RES aus dem Speicher aufrufen
Anders wird es kaum gehen ...
|
Re: EXE in RES aus dem Speicher aufrufen
Dann hat sich das ganze erledigt :/
|
Re: EXE in RES aus dem Speicher aufrufen
Hallo
Könnte man das Kopieren nicht irgendwie so verhindern?
Delphi-Quellcode:
Gruss
hLockedFile:= FileOpen(FileName, fmShareExclusive);
Shaman |
Re: EXE in RES aus dem Speicher aufrufen
Und damit doch auch gleich das Ausführen, oder irre ich?
(Ich hoffe ich vertu mich net...) Dann würde die ganze EXE nix mehr bringen ;) |
Re: EXE in RES aus dem Speicher aufrufen
Zitat:
|
Re: EXE in RES aus dem Speicher aufrufen
Guten Morgen :)
dem schließe ich mich leider an. Ginge es denn, der Datei zu sagen, dass nur das Programm von mir auf sie zugreifen darf (vgl. mit "Datei exklusiv öffnen")? Dann könnte ich sie "dumpen", direkt schützen, nutzen wann ich sie will und bei Programm-Ende löschen...! |
Re: EXE in RES aus dem Speicher aufrufen
Leider nein ... ich hätte nur eine Idee wenn du den Source der anderen EXE hättest, dann wäre aber das Thema so oder so hinfällig. Und ob meine Idee mit SP2 lauffähig wäre ist nocht die zweite Frage.
|
Re: EXE in RES aus dem Speicher aufrufen
Zitat:
|
Re: EXE in RES aus dem Speicher aufrufen
Zitat:
|
Re: EXE in RES aus dem Speicher aufrufen
Ja... nur wenn ich einen Teil der Gast-EXE hätte, hätte ich ihn auch komplett und könnte sie in der Haupt-EXE integrieren :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 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