Frage

weiß jemand, wie kann ich eine exe-Datei in eine DLL embedd?

Ich habe ein Tool, das eine exe-Datei, die ich von c # Code aufrufen.

Die Sache ist, dass ich 1 dll mit diesem Tool (exe-Datei) haben will und die DLL meinen c # -Code containg.

Ist es möglich, diese exe-Datei innerhalb der Ressourcen einzubetten?

Thx im Voraus

War es hilfreich?

Lösung

Natürlich. Sie können eine beliebige Datei als RC_DATA in der Anwendung als Ressource hinzufügen. Aber ich glaube, Sie werden es auf die Festplatte extrahieren müssen, bevor sie ruft!

Welche IDE / Sprache Sie verwenden?

[EDIT]

Es tut uns leid! Sie haben erwähnt, dass Sie C # verwenden.

  1. Fügen Sie eine Ressource-Datei auf Sie Anwendung (Rechtsklick Anwendung in IDE und wählen Sie „Neues Element hinzufügen“.
  2. Verwenden Sie die Symbolleiste in Ressource-Editor eine vorhandene Datei hinzuzufügen.
  3. Sie dann die EXE extrahieren, wenn wie durch den Aufruf von Code etwas benötigt: System.IO.File.WriteAllBytes (@ "C: \ MyEXE \", Resource1.MyEXE);

Andere Tipps

Es lohnt sich entblößt Sie daran, dass Ihre Anwendungen auch nicht glücklich sein kann über Sie dies zu tun. Einbetten eine ausführbare Datei, die sie keine Kontrolle über in eine DLL haben, die Sie extrahieren werden und führen wahrscheinlich Menschen machen Sorgen über den Lauf eines Trojaner auf ihrem Rechner.

Es ist besser, die .EXE im Dateisystem zu verlassen und transparent sein, was Ihre Anwendung tut.

Sie können eine Assembly von einem Byte laden []. Dies kann über das Manifest einer eingebettete Ressource erhalten werden.

Eine Alternative sein kann, nicht die EXE-Datei einzubetten selbst, sondern ist seine Funktionalität in der DLL, und verwenden Sie rundll32 [ 1 ], um sie auszuführen.

Auf einer Seite zur Kenntnis, denken Sie daran, dass, wenn Sie eine Datei von Ihren Ressourcen auf der Festplatte ziehen und dann Code ausführen Sie darauf Sie Windows Data Execution Prevention - im Grunde versucht Windows automatisch zu erkennen, wenn etwas soll Code oder Daten sein, und wenn es wie Daten aussieht (was eine Ressource würde), dann wird es das verhindern Daten aus als Code ausgeführt werden.

Dies wird zu einem besonders klebrigen Problem, wenn Ihr .NET-Assembly verwendet werden wird über ein Netzwerk statt von einem lokalen Laufwerk -. Es gibt alle Arten von .NET-Sicherheitskonfigurationen, die diese korrekt aus arbeiten könnten verhindern

Eine andere Möglichkeit, und nicht die Details Ihres Projekts zu wissen, nehmen Sie diese mit einem Körnchen Salz: fügen Sie eine .exe.readme Datei auf Ihrem installieren, dass beschreibt auf alle neugierigen Anwender oder IT-Leute, warum es sich um eine ausführbare sie weren‘ t erwarten im Installationsverzeichnis:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top