Externe Dateien in fertige exe einbinden ?
Übersicht

GastBetreff: Externe Dateien in fertige exe einbinden ? |
![]() Antworten mit Zitat |
|
---|---|---|
Hallo,
um die 3D-Möglichkeiten mit Blitz auszutesten, erstelle ich gerade Bildschirmschoner. Schön wäre es wenn ich externe Dateien wie Grafiken oder 3D-Modelle direkt in die fertige exe mit einbinden könnte. Weis jemand ob das irgendwie geht ? Viele Grüße Andi |
||
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bytelänge Deiner Exe ermitteln und mit WriteByte Deine zusätzlichen Daten hinten dran hängen. Natürlich musst Du noch den Offset wissen an dem Deine Daten beginnen und wie gross jede Datei ist die Du angehangen hast. | ||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
und weiter?
wie kann ich dann auf die Daten zugreifen. Ehrlich gesagt habe ich es jetzt nicht probiert, aber ich glaube es ist doch nicht möglich, dass eine EXE auf sich selbst zugreift, zumindest mit Blitzbefehlen. Ich hoffe ich irre mich ... MfG |
||
IonPainter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
habs ausprobiert, es geht | ||
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sagen wir Deine Exe ist 512kb gross. Dann hast Du 512x1024 Byte (524288 Byte)
Dieser Wert muss als Konstante in Deinem Code stehen. Code: [AUSKLAPPEN] Const MY_SIZE = 524288
---------- ; Exe ; 524288 Bytes ---------- -> Name der Datei -> Grösse der Datei -> Bytes der Datei ---------- -> Name der Datei -> Grösse der Datei -> Bytes der Datei ---------- usw. Im Code liest Du dann zunächst den String aus der den Namen der folgenden Datei enthält. Dazu musst Du den Lesezeiger auf den Offset setzen der ja in MY_SIZE gesichert ist. Jetzt kannst Du mit ReadLine() den Namen der Datei auslesen und dann mit ReadInt() die Länge der folgenden Daten. Diese liest Du per ReadByte() in einer For...Next Schleife. Bevor Du mit WriteByte anfängst Daten an das Ende Deiner Datei zu schreiben, musst Du natürlich wissen wie gross Deine Exe ist, sonst schreibst Du in vorhandene Daten. |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
Gast |
![]() Antworten mit Zitat |
|
---|---|---|
Ihr seit aber fix hier ![]() Ich werd das so mal testen ob ich das hinkriege. Vielen Dank. Viele Grüße Andi |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
nix testen - benute doch fertigen code von blitzbase.de
nennt sich exe-packer |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics3D 800,600,32,2 SetBuffer BackBuffer() Const MY_SIZE =0 Const MY_NAME$ ="test.exe" Const DATEN_ANHANG =False If DATEN_ANHANG Then LeseAnhang() Repeat UpdateWorld : RenderWorld Flip Until KeyHit(1) : End Function LeseAnhang() stream=ReadFile(MY_NAME$) offset=MY_SIZE If stream While Not Eof(stream) SeekFile(stream,offset) filename$=ReadLine(stream) filebytes=ReadInt(stream) nstream=WriteFile(filename$) If nstream For i=0 To nstream WriteByte nstream,ReadByte(stream) offset=offset+filebytes Next EndIf Wend CloseFile EndIf End Function Hab's jetzt nicht getestet ... zeigt aber wie es geht. MY_SIZE ist hier Null weil ja nichts angehangen wurde, es sichert nur erstmal das Integer in der Exe damit Du ihre echte Grösse ermitteln kannst. DATEN_ANHANG ist False da ja noch nichts angehangen wurde. |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group