![]() |
exe-Files, Datenblock unterbringen
Hallo.
Weiß jemand, wie man am besten Daten in eine exe-Datei einbinden kann OHNE res-Dateien. Ich möchte einfach einen beliebig großen Block innerhalb einer exe-Datei unterbringen, so dass diese fehlerfrei ausführbar bleibt. Ich möchte nämlich meine Daten direkt durch eigenen Delphi-Code in eine exe-Datei "einschmuggeln". Ressourcen gehen, aber dann nur mit WinApi. (Muss zur Laufzeit eingebunden werden. Wird natürlich von nem anderen Programm gemacht....) Ich habe bereits versucht den Datenblock ans Dateiende zu schreiben. Die exe bleibt ausführbar. Jedoch schließt sie mit einem Fehler. Das Dateiende muss wohl auch wie der Anfang ein bestimmtes Format haben. Deswegen die Frage, wo tu ich meinen Datenblock hin ? Weiß jemand, wo solche "freien" Orte in der exe-Datei existieren oder wie man sie auffindet ? //edit Das eigentliche Problem ist, WO und wie ich die Daten in der exe unterbringe. Ich habe es bereits am Ende der Datei versucht und getestet. Es funktioniert. ABER Windows meldet mir, dass die Datei "beschädigt" ist. DAS möchte ich korrigieren. Windows: "Das Programm wurde eventuell nicht richtig installiert." MfG |
AW: exe-Files, Datenblock unterbringen
Und was hast du gegen Ressourcen?
Der Ort ist ja schließlich für sowas gedacht. PS: Ich wette du hast zum Anhängen der Daten, an das Dateiende, auch die WinAPI genutzt (wenn auch vielleicht über Umwege) |
AW: exe-Files, Datenblock unterbringen
Mein sich selbstentpackendes Archiv macht dies folgendermaßen - Daten einfach ans Ende anhängen und nachher extrahieren:
Code:
Ich lese die Datengröße aus und extrahiere ab der letzten Stelle - X - Größe von Int64 X Bytes!
- Exe
- Daten - Datengröße X (Int64) |
AW: exe-Files, Datenblock unterbringen
Zitat:
Zitat:
|
AW: exe-Files, Datenblock unterbringen
IIRC gibt es hier irgendwo ein Projekt, das das wohl ermöglichen soll. Der genaue Name ist mir leider entfallen, irgendetwas mit DataStream oder so ähnlich. Vielleicht kannst Du einmal danach suchen.
|
AW: exe-Files, Datenblock unterbringen
Das Ding ist das du in einer geöffneten Exe nichts schreiben kannst.
Man muss es zwangsläufig so machen: - Die Eigentliche Exe, d.h. die dann ausgeführt wird und den Datenblock in sich selbst lisst - "Creator" Exe, die an die eigentliche Exe den Datenblock schreibt. Man muss so vorgehen : - "Creator" Exe : schreibt in eine neue Datei (anderen Namen als die eigentliche Exe) den Inhalt der exe und merkt sich die genaue größe der Exe. Danach schreibt sie den Datenblock. Danach als Int64 oder Integer die größe der Exe an das ENDE der Datei, das ist ganz wichtig und auch am leichtesten dann. - Eigentliche Exe : öffnet sich selbst, geht ans ende und lisst die größe aus (also ende minus SizeOf(Integer) oder SizeOf(Int64)) . Danach springt sie wieder an den anfang und geht bis zur größe, die herausgelessen wurde. Datenblock lesen, fertig. Ich hoffe du hast das Prinzip verstanden, wenn nicht kann ich dir ein Code beispiel geben. Gruß NickelM |
AW: exe-Files, Datenblock unterbringen
Und dann noch die Virenscanner, welche gerne mal was dagegen haben, wenn sich eine EXE verändert.
Also wenn sich das Programm öfters mal (beim Endbenutzer) verändert. |
AW: exe-Files, Datenblock unterbringen
Zitat:
|
AW: exe-Files, Datenblock unterbringen
Zitat:
Edit: Ne im ernst - wie schon bereits geschildert: Hauptanwendung A -> Entpacker Anwendung B (als Resource) A entpackt B und hängt die Daten wie zuvor beschrieben an B. B extrahiert die Daten bei der Ausführung wie bereits beschrieben! Its that simple! |
AW: exe-Files, Datenblock unterbringen
Hä? lol okay?
ehm dann muss das Problem am Windows liegen, klar @himitsu meine meldet das auch immer beim kompelieren aber danach net mehr. @Cicaro : gut aber dann wie alphton so treffen angedeutet hat, liegt das problem woanders, was macht deine Exe genau auser Daten lesen, weil dann liegt das Problem meiner Ansicht nach woanders. |
AW: exe-Files, Datenblock unterbringen
Ne, das Problem verbleibt dasselbe wie oben beschrieben. Ich verändere eine exe-Datei. Diese Dateien sind relativ sensitiv, was Veränderung angeht. Wenn man sie falsch verändert, funktionieren sie nicht mehr richtig. Nun erkennt Windows, dass die Datei nicht ihrem Format entspricht, so dass es mir einen Fehler ausgibt (obwohl die Programmfunktionalität noch gegeben ist). Die exe macht nichts weiter als den Datenblock auszulesen. Es versucht sich nicht zu verändern. Den Fehler hab ich nicht einmal beim Projektstart gemacht. Ihr müsst einfach genauer lesen oben. Aphton be-/umschreibt nur, was ich bereits gemacht habe.
Das Problem ist nicht Windows, sondern meine dem Format nicht entsprechende Veränderungen. |
AW: exe-Files, Datenblock unterbringen
Du bist so ignorant.
Ich deute extra indirekt darauf hin, dass du Code zeigen sollst, aber du verstummst und bleibst bei dem, dass es an Wnidows liegt usw. So vergeht mir die Lust, dir zu helfen. Ich habe schon 3 x beschrieben wie es PRAKTISCH funktioniert (umgesetzt!!! in meinem Projekt). -.-' Edit: Sry für den harten Ton. |
AW: exe-Files, Datenblock unterbringen
Zitat:
Die Exe ist eine junge, hübsche Frau. Der Datenblock ist ein Kind. Und ich bin ein 21-jähriger, der sie damit schwängern will. Das Problem ist, die richtige Öffnung zu finden. Durch den Mund oder durch das Arschloch geht das bekanntlich nicht. Also muss man das richtige Loch suchen um ihr den Braten in die Röhre zu schieben. Ich dachte einer weiß vielleicht, wie man das mit den exes handhaben kann, oder kann mir Links zum Nachschlagen geben. Um den Code gehts hier gar nicht, nur um die Datei, die bearbeitet werden soll. Und es steht jetzt irgendwie 4 mal da!! |
AW: exe-Files, Datenblock unterbringen
Lol..
Ok, können wir das Ganze nochmal von vorne angehen? Also du wilslt an eine Exe Daten anhängen, die du aus derselben zur Laufzeit wieder extrahieren kannst. Die Frage, ob dies von dieser Exe vonstatten gehen soll, ist irrelevant (just in case). ![]() Könntest du mich bitte korrigieren sodass ich dir besser helfen kann? Achja noch etwas - dies wurde von mir persönlich implementiert - es funktioniert auch bei sensiblen Daten! Hashvergleich zeigt, dass es OK ist! Your turn |
AW: exe-Files, Datenblock unterbringen
![]() Das müsste dir helfen. Es dreht sich um die Segmentgröße |
AW: exe-Files, Datenblock unterbringen
Nett aber völlig daneben. Das was er tun will, hat etwas mit Filehandling zu tun und ist sehr einfach zu realisieren!
|
AW: exe-Files, Datenblock unterbringen
Zitat:
Packer A + Entpacker B + Daten C
Problem nur: wo tut A bei B die C hin ? Ich brauche im Grunde nur den Offset vom Dateianfang. Der Rest erledigt sich in wenigen Minuten. Der Offset wird variieren bzw. muss einfach berechnet werden und evtl. müssen die Tabellen in B modifiziert werden, wenn C inmitten von B landen "muss". Sobald ich den Offset berechnen kann, kann ich auch B beibringen C zu finden. |
AW: exe-Files, Datenblock unterbringen
Liste der Anhänge anzeigen (Anzahl: 1)
Probier mal diese kleine Demo aus. Falls das Verhalten deinen Wünschen entspricht, dann tu das, was ich dir geschrieben habe.
Bedienung: - auf den Packer eine beliebige Datei droppen - im selben Pfad der gedroppten Datei wird eine neue Datei erzeugt - doppelklick auf diese neue Datei entpackt den Inhalt! Meine AV Software (Avira AntiVir) meldet mir, dass es sich dabei um einen Virus handelt. Falscher Fund - das, was da geschieht, sollte man sowieso nicht wirklich machen -> Daten an Win-Executables anhängen! |
AW: exe-Files, Datenblock unterbringen
Geht das ganze vielleicht auch etwas freundlicher und weniger vulgär und beleidigend?
Der Tipp mit dem PE-Format war etwa keinesfalls "total daneben". Total daneben ist etwa, etwas von Filehandling zu erzählen aber zu behaupten, daß beim Umgang von Dateien deren Format völlig unwichtig wäre. Und auch wenn ich Aphton aufgrund seines Tonfalls nur ungern recht gebe - Source-Ausschnitte zu zeigen würde doch ungemein helfen, denn wenn mehrere Leute behaupten, daß die beschriebene "Technik" eigentlich funktioniert (ich mache das auch), liegt es wohl an Deiner Implementierung, wenn es nicht geht. Ausnahmen wären etwa codesignierte Dateien - daß die nicht nachträglich so einfach modifizierbar sind, sollte klar sein. |
AW: exe-Files, Datenblock unterbringen
Total daneben ist vor allen Dingen am Thema vorbei zu reden.
Source Code ist hier nicht das Problem. Aber alle scheinen zu glauben hier geht es um irgendwelche Viren, Trojaner etc. und wollen Code sehen. Andere versuchen eigene Viren zu verteilen ... Also Thema meinetwegen schließen. Ich habe eh eine andere Fährte zur Problemlösung aufgenommen. |
AW: exe-Files, Datenblock unterbringen
Zitat:
Zitat:
Die Bitte nach dem Code war nur deswegen, um schauen zu können, warum es bei dir nicht geht. Aber gesagt, am besten mit dem PE-Format zusammenarbeiten tun die Resourcen, denn schließlich sind die ja genau für sowas gebaut. Auslesen kann man die dann z.B. ganz einfach mit dem ![]() |
AW: exe-Files, Datenblock unterbringen
Zitat:
![]() Bernhard |
AW: exe-Files, Datenblock unterbringen
Zitat:
Habe ich impliziert, dass DU damit Böses anstellen willst? Wollte ich deswegen Code sehen? Du unterstellst mir direkt solche Sachen. Ich wollte dir helfen (egal in welchem Tonfall); habe dir sogar extra ne Demo angefertigt, um zu sehen, ob es DAS ist, was du willst! Ich habe versucht, dich zu verstehen. Du hast dich nicht kooperativ verhalten -.-' Zitat:
Es war total daneben. Das einzige, was mit dem "PE" zu tun hätte, wäre, dass man den Extractor als "Resource" an den Packer anhängt. Wissen muss man aber trotzdem nicht, wie die PE Struktur intern aussieht bzw. die man Daten per Hand in die <Resource Table> einfügt. Es geht ohne. Alles andere IST Filehandling. Man öffnet Streams, extrahiert Daten, fügt Daten hinzu, speichert -> Filehandling bzw. Streamhandling. |
AW: exe-Files, Datenblock unterbringen
Interessiert bestimmt niemanden aber:
Zitat:
Zitat:
Achja, da ich gerade beim WM_CLOSE bin: WM_CLOSE hatte als einziger den genau richtigen oder ansatzweise hilfreichen Wink gegeben, auch wenn ich es nicht sofort gecheckt habe. Tschuldigung und danke! |
AW: exe-Files, Datenblock unterbringen
Zitat:
|
AW: exe-Files, Datenblock unterbringen
also IN die Exe dürfte etwas schwierig werden: Datei vergrößern, Code nach hinten schieben, Optcode des Einsprungpunktes neu berechnen. Hinten anhängen ist kein Problem mit zwei Programmen wie es schon erklärt wurde. Selbstextrahierende Archive machen es nicht anders. Da wird mit Hilfe eines zweiten Programms an den Entpacker die Daten drangehangen. Siehe dazu meine SFXTools:
![]() |
AW: exe-Files, Datenblock unterbringen
Das Problem ist gelöst. Ich habe mich durch den Aufbau einer exe durchgeboxt und füge einen dem Format entsprechen Block in die exe ein. Wer es auch richtig machen will, sollte auf WM_CLOSE hören. Ich machs übrigens mit 1 Programm nicht mit 2.
|
AW: exe-Files, Datenblock unterbringen
Die Benutzer werden es dir danken, wenn an dauernd ihr Virenscanner anschlägt.
|
AW: exe-Files, Datenblock unterbringen
Habs durch VirusTotal durchlaufen lassen und keiner der 44 Virus Scanner hat angeschlagen. HÄTTE einer angeschlagen, wäre das auch für mich nicht akzeptabel gewesen.
Naja ich bin zufrieden, weder ich noch Windows noch mein AntiVir meckern. :thumb: |
AW: exe-Files, Datenblock unterbringen
Nur um es mal klar zu stellen: bei der Demo, die ich hochgeladen habe, wurde nur gemeckert, weil die Heuristik gesehen hat - nur die eine Funktionalität - da ist was fischig.
Bei meinem aktuellen Projekt (größer) wird auch nicht rumgemeckert seitens AVs |
AW: exe-Files, Datenblock unterbringen
Zitat:
|
AW: exe-Files, Datenblock unterbringen
Endgültige Antwort kann nur der (Langzeit)Test mit mehreren unabhängigen AV Programmen geben. Also 15 VMs + AV Prog aufsetzen und 10 Tage durchtesten.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 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