FreeBasic: Datei anhängen
Allgemein[Bearbeiten]
Möglichkeiten[Bearbeiten]
- Alternate Data Streams
- WinAPI AddResource
- Selbst programmiert
- Ressourcen
Gemeinsame Vorteile[Bearbeiten]
- Weniger Dateien
- Die Dateien sind für normale Anwender nicht findbar
Gemeinsame Nachteile[Bearbeiten]
- Die Dateien sind für Normale Anwender nicht findbar
WinAPI AddResource[Bearbeiten]
Kennt jemand den richtigen Namen + einen Link?
Alternate Data Streams[Bearbeiten]
Grundlagen[Bearbeiten]
Eine handvoll Vorteile gegen eine Schubkarre voll Nachteile.
Vorteile[Bearbeiten]
- einfach einzubauen
Nachteile[Bearbeiten]
- braucht NTFS
- geht also nicht mit CD/Disketten
- ADS gilt als Sicherheitsrisiko
Selbst programmiert[Bearbeiten]
Grundlagen[Bearbeiten]
Eine Exe-Datei ist ziemlich einfach aufgebaut.
Wenn du irgendwas anhängen willst, musst du nur ans Ende der Ex-Datei und dort kannst du problemlos schreiben.
Da gilt das Prinzip: Was nicht aufgerufen wird, macht auch keinen Ärger.
Vorteile[Bearbeiten]
Nachteile[Bearbeiten]
- bei fixen Adressen wird das Erweitern erschwert
Datei Anhängen Tool[Bearbeiten]
dim a as ubyte
dim lang as uinteger
Input " Name der Exe-Datei? ", exe$
Input " Name der anderen Datei? ",file$
open exe$ for binary as #1 'Die Exe-Datei öffnen
open file$ for binary as #2 'Die andere Datei öffnen
lang=lof(1) 'Exe-Dateiende
? " Die Exe-Datei ist "; lang; " Bytes Lang."
Input " Ab welcher Byte-Nummer soll die Datei anhaengt werden? ",ort 'Diese Zahl muss unbedingt grösser als die Länge der Datei sein!
if ort<=lang then
color 4
? " Sie schreiben vor das Datei-Ende!"
? " Dadurch kann die Exe Datei beschaedigt werden!"
? " Vorgang abgebrochen"
else
? " Vorgang gestartet"
seek 1,ort 'Gewünschten Ort ansteuern
do 'Anhängen
get #2,,a
put #1,,a
loop until eof(2)
? " Vorgang beendet"
end if
sleep
Wieder abhängen[Bearbeiten]
(Hier an diese Datei wird auch die andere Datei angehängt)
Open Command$(0) for binary as #1 'mach dich selbst auf
adr=18000 'die Adresse die bei Anhänger eingegeben
outfile$="test2" 'Hier rein geht die Ausgabe
kill outfile$
open outfile$ for binary as #2
seek 1,adr
do 'Abhängen
get #1,,a
put #2,,a
loop until eof(1)
end 'ende
Beispiel mit Bild[Bearbeiten]
dim bild as any ptr
Open Command$(0) for binary as #1 'mach dich selbst auf
adr=200000 'die Adresse die bei Anhänger eingegeben
outfile$="bild2.bmp" 'Hier rein geht die Ausgabe
kill outfile$
open outfile$ for binary as #2
seek 1,adr 'Auf Adresse einstellen
do 'Abhängen
get #1,,a
put #2,,a
loop until eof(1)
close 'vor dem Laden unbedingt schliessen
'Aber hier kann das Bild normal geladen werden
screen 18,32
datei$="bild2.bmp"
bild=IMAGECREATE(100,100)
bload datei$,bild
put (100,100),bild
sleep 5000,1
kill outfile$ 'Nach Gebrauch entsorgen
end 'ende