Resourcen packen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
CptGreenwood
Beiträge: 125
Registriert: 12.07.2007 10:40

Resourcen packen

Beitrag von CptGreenwood »

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
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

suchst du IncudeBinary?

Dann lädst du sie ein und die Bilder werden direkt in der Exe mit gespeichert.
Win11 x64 | PB 6.20
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Oder Du packst sie mit der Packer-Library und encryptest bei Bedarf das Archiv. Dann blaeht das die EXE nicht so sehr auf.
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

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. :wink:
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
Kai
Beiträge: 264
Registriert: 29.09.2005 20:58
Computerausstattung: iMac 2019
Wohnort: Hannover
Kontaktdaten:

Beitrag von Kai »

Wieso nicht einfach die compilierte EXE mit UPX oder so packen? /:->
Meine Homepage - Aktuelle Projekte - Launcher
Letzte PB-Version - Window 7 x86
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Kai hat geschrieben:Wieso nicht einfach die compilierte EXE mit UPX oder so packen? /:->
Eigentlich ne gute Idee nur schlagen viele Virenscannern bei Laufzeitpackern wie UPX eben immer wieder mit der Heuristik zu.

Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

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.
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.
Benutzeravatar
CptGreenwood
Beiträge: 125
Registriert: 12.07.2007 10:40

Beitrag von CptGreenwood »

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?
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

GUTEN MORGEN!

vor über 'ner Stunde schon vorgeschlagen worden.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten