Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

File in EXE einbinden

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 26.08.2006, 20:15    Titel: File in EXE einbinden Antworten mit Zitat

Moin, moin!

Weiß jemand, ob es möglich ist, eine normale Datei (z.B. *.txt) wie eine Bibliothek in
eine EXE-Datei einzubinden (also so, dass man sie nicht sieht)?

Danke im vorraus lächeln



Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 26.08.2006, 20:23    Titel: Antworten mit Zitat

Also nein .. wirklich mitm Linker in die EXE einbinden geht meines Wissens nicht.
Aber mit DATA geht das z.B. zwinkern ..

Code:

RESTORE IrgendwelcheDaten
READ bla$

IrgendwelcheDaten:
DATA "qwertzuiop"

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 26.08.2006, 20:48    Titel: Antworten mit Zitat

für fb gibt es da ein tool namens "bin2bas", das komplette dateien in solche "DATA"-Blöcke verwandelt.

unter windows (bei linux hab ich keine ahnung) gibt es auch noch die möglichkeit, bestimmte daten wie beispielsweise grafiken wie bmp-dateien als ressourcen mit in die exe-datei einzubinden. diese dateien können dann allerdings nur über die winapi verfügbar gemacht werden, was für anfänger sicherlich nicht ganz einfach ist, aber die sauberste lösung darstellen sollte.

wenn ich die zeit finde (welch fromme hoffnung) schreib ich nen kapitel oder zwei in meinem tutorial zur winapi unter http://lutzifer.freebasic.de/winapi/ .

Gruß
Lutz böse Ifer
_________________
Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 26.08.2006, 21:43    Titel: Antworten mit Zitat

eine möglichkeit wäre, dass du einen "overloader" verwendet, der die daten an die exe anhängt, danach kommt noch eine zahl, die das startbyte angibt. dann liest du diese datei von dem startbyte aus ein. falls du interesse an dieser methode hast, aber nicht genau weißt, wie du das anstellen sollst, mail mir, ich hab so ein programm geschrieben lächeln
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 26.08.2006, 22:02    Titel: Antworten mit Zitat

@Jojo: Aaaber funtioniert das auch in 100% der Fälle?
EXE-Datein werden ja etwas komplexer in den Speicher geladen als dass einfach die Datei Byte für Byte linear in den Speicher geschrieben wird..
normal müsste man dann auch noch den EXE-Header ändern um sicher zu gehen,
dass auch das Angehängte geladen wird. Oder? verwundert grinsen
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 26.08.2006, 23:37    Titel: Antworten mit Zitat

Wenn man unter Windows bei NTFS bleibt, dann sollte das hier kein Problem sein:

ADS

Ich habe das noch nicht getestet(bin gerade unter linux) aber ich denke mal, das geht ganz einfach.

Wenn ich das richtig verstanden habe, dann geht das so(Beispiel):

Code:
Open "prog.exe:bla.txt" for input as #1

prog.exe ist die Anwendung, und bla.txt die datei, die versteckt an der exe dranhängt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Manuel



Anmeldungsdatum: 23.10.2004
Beiträge: 1271
Wohnort: Bayern

BeitragVerfasst am: 27.08.2006, 00:33    Titel: Antworten mit Zitat

programmierer hat Folgendes geschrieben:
Wenn man unter Windows bei NTFS bleibt, dann sollte das hier kein Problem sein:

ADS

Ich habe das noch nicht getestet(bin gerade unter linux) aber ich denke mal, das geht ganz einfach.

Wenn ich das richtig verstanden habe, dann geht das so(Beispiel):

Code:
Open "prog.exe:bla.txt" for input as #1

prog.exe ist die Anwendung, und bla.txt die datei, die versteckt an der exe dranhängt.
Unter QB funktioniert das allerdings nicht. Wenn ich an prog.exe eine Datei mit Text anhänge, kann jedes Windowsprogramm (z. B. Notepad) ohne Probleme darauf zugreifen, unter QB funktioniert das mit dieser Methode leider nicht... Außerdem darf man nicht vergessen, dass man durch diese Methode automatisch alle Win9x-Systeme ausschließt... Man kann ja IMHO kaum von den Usern verlangen, ein DOS(!)-Programm unter NTFS(!)-Laufwerken ausführen zu müssen... Das sind zwei unterschiedliche Welten^^...

EDIT: As say, unter QB funktioniert das nicht, mit FB habe ich es noch nicht getestet...

EDIT²: Ok, unter WinXP bekommt man dann doch noch eine Info mitgeteilt, dass beim Kopieren von Daten mit Streams auf eine FAT32-Partition Daten verloren gehen. Ich glaube aber kaum, dass Win9x auf derartiges hinweisen wird. Auch ein
Code:
open "prog.exe:bla.txt:$DATA"
(so wird es unter NT u. XP verwaltet) bleibt wirkungslos, das Programm stürzt mit "unzulässiger Dateiname im Modul" ab...

By the way habe ich gerade herausgefunden, das Streams in Dateien es nicht überleben, wenn sie von einem Packprogramm (bspw. WinRar) gepackt werden; sobald man sie packt und dann wieder an neuer Stelle entpackt, sind die Infos in der neuen Stelle weg... Ergo: Kaum "massenmarkttauglich".
_________________
DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
---
www.astorek.de.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 27.08.2006, 10:37    Titel: Antworten mit Zitat

ICC hat Folgendes geschrieben:
@Jojo: Aaaber funtioniert das auch in 100% der Fälle?
EXE-Datein werden ja etwas komplexer in den Speicher geladen als dass einfach die Datei Byte für Byte linear in den Speicher geschrieben wird..
normal müsste man dann auch noch den EXE-Header ändern um sicher zu gehen,
dass auch das Angehängte geladen wird. Oder? verwundert grinsen

Der an die EXE Datei angehängte Datenteil stört weder Windows noch DOS. Er ist für die Funktion der EXE-Datei erst mal irrelevant und beeinträchtigt die Ausführung nicht. Wenn man an diese Daten herankommen möchte, muss man den Pfad und Dateinamen der eigenen EXE herausfinden und diese anschließend BINARY öffnen. Dann SEEKt man zu dem Offset, wo der Programmteil endet und liest ab da die Daten ein. Eine einfache Variante ist, in dem Stubprogramm (der Programmteil von dem Paket) am Anfang Folgendes zu schreiben:
Code:
off$ = "1ABCD2"

Hängt man dann mit einem anderen Programm an dieses Stub die Daten an, so ersetzt man in der EXE die Zeichenfolge off$ (ist als Klartext in der EXE erkennbar) mit STR$(LOF(Stub)). Das Stubprogramm kann dadurch seine Länge mit VAL(off$) abfragen.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 27.08.2006, 11:21    Titel: Antworten mit Zitat

@Sebastian: Ist klar dass das angehängte den Programm und Datenfluss nicht stört.
Aber ich mache mir sorgen dass der angehängte Teil auch wirklich in den Speicher geladen wird.
Weil eigentlich müsste man bei verändern (vergrößern) der EXE auch noch den EXE-Header ändern.
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 27.08.2006, 13:24    Titel: Antworten mit Zitat

Nein, ich gehe davon aus, dass nur der Teil der EXE in den Speicher geladen wird, der vom Header aus vorgesehen ist. Der Datenteil verbleibt ungenutzt auf der Festplatte und muss manuell ausgelesen werden. Das soll ja auch so sein.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 27.08.2006, 14:13    Titel: Antworten mit Zitat

Achsoo xD verstehe .. so gehts natürlich auch grinsen
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz