AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

exe-Files, Datenblock unterbringen

Ein Thema von Cicaro · begonnen am 12. Sep 2011 · letzter Beitrag vom 19. Sep 2011
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#1

exe-Files, Datenblock unterbringen

  Alt 12. Sep 2011, 13:50
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

Geändert von Cicaro (12. Sep 2011 um 20:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: exe-Files, Datenblock unterbringen

  Alt 12. Sep 2011, 13:58
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)
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: exe-Files, Datenblock unterbringen

  Alt 12. Sep 2011, 14:16
Mein sich selbstentpackendes Archiv macht dies folgendermaßen - Daten einfach ans Ende anhängen und nachher extrahieren:
Code:
- Exe
- Daten
- Datengröße X (Int64)
Ich lese die Datengröße aus und extrahiere ab der letzten Stelle - X - Größe von Int64 X Bytes!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#4

AW: exe-Files, Datenblock unterbringen

  Alt 12. Sep 2011, 14:37
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)
Ich möchte die Daten ohne nochmaliges Compilieren in die exe einschleusen. Und ich habe geschrieben Ressource sind möglich, wenn es eben DURCH WinApi erfolgt.
Code:
- Exe
- Daten
- Datengröße X (Int64)
Genauso habe ich es auch gemacht. Verursacht einen Fehler beim Schließen der resultierenden exe
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

AW: exe-Files, Datenblock unterbringen

  Alt 12. Sep 2011, 14:44
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#6

AW: exe-Files, Datenblock unterbringen

  Alt 12. Sep 2011, 14:47
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
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: exe-Files, Datenblock unterbringen

  Alt 12. Sep 2011, 15:16
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#8

AW: exe-Files, Datenblock unterbringen

  Alt 12. Sep 2011, 15:18
Das Ding ist das du in einer geöffneten Exe nichts schreiben kannst.
Danke, aber das ist nicht das Problem. Siehe oben nochmal das Rote.
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#9

AW: exe-Files, Datenblock unterbringen

  Alt 12. Sep 2011, 15:34
//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."
Ich sehe ganz genau wo das Problem liegt - Zeile 237!

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!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#10

AW: exe-Files, Datenblock unterbringen

  Alt 12. Sep 2011, 15:39
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.
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 19:45 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