Resourcen packen
- CptGreenwood
- Beiträge: 125
- Registriert: 12.07.2007 10:40
Resourcen packen
Hallo,
ich habe in PureBasic zum ersten mal ein größeres Spiel fertig gestellt, dass Sounds und Grafiken aus einem Verzeichnis nachläd. Nun möchte ich verhindern, dass bei Weitergabe des Spiels irgendeine Nase die JPG und BMP öffnet und daran Veränderungen vornimmt. Ich habe versucht, die Dateien umzubenennen (z.B. von JPG in XYZ). Das funktioniert und hält die Leute zumindest davon ab, die Bilder schon als Vorschau im Explorer zu sehen und mit Doppelklick öffnen zu können, so richtig schön ist das aber auch nicht.
VisualC++ z.B. hat die Möglichkeit, alle Resourcen in eine einzige Datei zu kompilieren und vom Programm aus darauf zuzugreifen. Geht so etwas auch mit PureBasic? Wie? Brauche ich zusätzliche Tools? Wie kann ich mit PureBasic-Befehlen dann darauf zugreifen?
Gruß und thanx,
Cpt
ich habe in PureBasic zum ersten mal ein größeres Spiel fertig gestellt, dass Sounds und Grafiken aus einem Verzeichnis nachläd. Nun möchte ich verhindern, dass bei Weitergabe des Spiels irgendeine Nase die JPG und BMP öffnet und daran Veränderungen vornimmt. Ich habe versucht, die Dateien umzubenennen (z.B. von JPG in XYZ). Das funktioniert und hält die Leute zumindest davon ab, die Bilder schon als Vorschau im Explorer zu sehen und mit Doppelklick öffnen zu können, so richtig schön ist das aber auch nicht.
VisualC++ z.B. hat die Möglichkeit, alle Resourcen in eine einzige Datei zu kompilieren und vom Programm aus darauf zuzugreifen. Geht so etwas auch mit PureBasic? Wie? Brauche ich zusätzliche Tools? Wie kann ich mit PureBasic-Befehlen dann darauf zugreifen?
Gruß und thanx,
Cpt
Oder Du packst sie mit der Packer-Library und encryptest bei Bedarf das Archiv. Dann blaeht das die EXE nicht so sehr auf.


ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
ZeHas Vorschlag ist vorzuziehen. Das ist auch der übliche Weg die Ressourcen in externen Archiven zu speichern und nicht mit in die Binärdatei einzubinden (denn da wird sogar doppelt Speicher verbraten).
Die in PureBasic integrierte Packer Library mag vorerst zu primitiv für diese Zwecke wirken, aber gewisse Gegebenheiten eröffnen tolle Möglichkeiten auf die man nur erst ein mal kommen muss. Z.B. kann die erste Datei in einem solchen Pack Archiv immer eine Textdatei sein, die als Art Dateisystem bzw. Dateiliste und etc. fungiert.
Die in PureBasic integrierte Packer Library mag vorerst zu primitiv für diese Zwecke wirken, aber gewisse Gegebenheiten eröffnen tolle Möglichkeiten auf die man nur erst ein mal kommen muss. Z.B. kann die erste Datei in einem solchen Pack Archiv immer eine Textdatei sein, die als Art Dateisystem bzw. Dateiliste und etc. fungiert.

Eigentlich ne gute Idee nur schlagen viele Virenscannern bei Laufzeitpackern wie UPX eben immer wieder mit der Heuristik zu.Kai hat geschrieben:Wieso nicht einfach die compilierte EXE mit UPX oder so packen?
Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster
PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
das "doppelte Verbraten" ist bei eher kleinen Projekten fast vernachlässigbar.
tatsächlich ist das die normale Vorgehensweise bei PB.
man kann Sounds als OGG und Bilder als PNG einbinden,
die sind wesentlich kleiner als die Entpackten und zum Gebrauch bereiten Daten,
also nix mit "doppelt" sondern nur eun paar prozent mehr.
es gibt natürlich noch bessere Möglichkeiten, guckt euch mal den PureDataConverter von ts an
http://www.purebasic.fr/german/viewtopic.php?t=17871
unter Windows kann man auch die Windows-eigene Ressourcen-Verwaltung nutzen,
damit kann man Content direkt an die Datei anhängen.
der Nachteil hierbei ist, dass es absichtlich veränderbar gestaltet ist,
also jeder der ein bissel Ahnung von Win-Ressourcen hat,
kann darauf genauso zugreifen wie auf einzelne Dateien.
UPX & Co. sind nix für Leute, die als Zielgruppe was anderes als Häcker haben,
weil tatsächlich jeder Virenscänner heutzutage dran rummeckert,
und die wenigsten Leute schlau genug sind, das zu durchschaun,
am End' wirste noch angemacht, was dir einfällt Viren zu verschicken.
tatsächlich ist das die normale Vorgehensweise bei PB.
man kann Sounds als OGG und Bilder als PNG einbinden,
die sind wesentlich kleiner als die Entpackten und zum Gebrauch bereiten Daten,
also nix mit "doppelt" sondern nur eun paar prozent mehr.
es gibt natürlich noch bessere Möglichkeiten, guckt euch mal den PureDataConverter von ts an
http://www.purebasic.fr/german/viewtopic.php?t=17871
unter Windows kann man auch die Windows-eigene Ressourcen-Verwaltung nutzen,
damit kann man Content direkt an die Datei anhängen.
der Nachteil hierbei ist, dass es absichtlich veränderbar gestaltet ist,
also jeder der ein bissel Ahnung von Win-Ressourcen hat,
kann darauf genauso zugreifen wie auf einzelne Dateien.
UPX & Co. sind nix für Leute, die als Zielgruppe was anderes als Häcker haben,
weil tatsächlich jeder Virenscänner heutzutage dran rummeckert,
und die wenigsten Leute schlau genug sind, das zu durchschaun,
am End' wirste noch angemacht, was dir einfällt Viren zu verschicken.
Zuletzt geändert von Kaeru Gaman am 06.07.2009 17:19, insgesamt 1-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- CptGreenwood
- Beiträge: 125
- Registriert: 12.07.2007 10:40
Das mit der PackerLib hört sich gut an, denn ich will die Exe nicht mit Sound und Bildern aufblasen. Habe mir die Lib noch nie angesehen, kann ich da direkt aus einem gepackten Archiv eine Datei rausholen oder muss ich das Archiv bei Programmstart erst entpacken? Gibt es da irgendeinen Beispielcode?
Schon mal die Packerlib von PB in Betracht gezogen?
Damit könntest du ein riesiges Archiv mit deinen Bildern machen. Der Packalgorithmus ist imho auch nicht der populärste.
Zum Beispiel sind alle Ressourcen von "Diablo II" auch in MPQ-Archiven verpackt.
Damit könntest du ein riesiges Archiv mit deinen Bildern machen. Der Packalgorithmus ist imho auch nicht der populärste.
Zum Beispiel sind alle Ressourcen von "Diablo II" auch in MPQ-Archiven verpackt.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22