Kompressionsalgorithmus (x86 = x64)
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Kompressionsalgorithmus (x86 = x64)
Hallo.
Da laut diesem Thread das Ergebnis eines CreatePack() unter x64 ein anderes ist als in x86, ich aber ein universelles Programm schreiben möchte, wollte ich euch Fragen, ob ihr einen anderen - möglichst effizienten - Packer-Algorithmus kennt.
Eigentlich könnte ich ja PureZIP von gnozal verwenden, aber ZIP kann so gut wie jeder öffnen, der will (das Archiv sollte nur vom Programm selbst geöffnet werden können), außerdem ist ZIP nicht gerade bekannt für seine extreme Kompressionsleistung.
Grüße, Mok
PS: Ist es eigentlich eine an Unmöglichkeit grenzende Schwierigkeit, einen eigenen Packer-Algorithmus zu schreiben?
Da laut diesem Thread das Ergebnis eines CreatePack() unter x64 ein anderes ist als in x86, ich aber ein universelles Programm schreiben möchte, wollte ich euch Fragen, ob ihr einen anderen - möglichst effizienten - Packer-Algorithmus kennt.
Eigentlich könnte ich ja PureZIP von gnozal verwenden, aber ZIP kann so gut wie jeder öffnen, der will (das Archiv sollte nur vom Programm selbst geöffnet werden können), außerdem ist ZIP nicht gerade bekannt für seine extreme Kompressionsleistung.
Grüße, Mok
PS: Ist es eigentlich eine an Unmöglichkeit grenzende Schwierigkeit, einen eigenen Packer-Algorithmus zu schreiben?
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Kompressionsalgorithmus (x86 = x64)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Re: Kompressionsalgorithmus (x86 = x64)
Ah, interessanter Link, Danke 
Bringt mich auch auf die Idee LZO und UCL in PB zu übersetzen
Edit:

Bringt mich auch auf die Idee LZO und UCL in PB zu übersetzen

Edit:
Na dann eben nicht...luis hat geschrieben:I briefly tested UCL/LZO but the compression ratio seem quite low.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Kompressionsalgorithmus (x86 = x64)
ZLIB magste ja nicht, ansonsten könntest Du dies hier nehmen. Ist Crossplattform!
Entpacken tut das auch keiner, fehlt ja der typische ZIP-Header, ansonsten verschlüsseln.
Entpacken tut das auch keiner, fehlt ja der typische ZIP-Header, ansonsten verschlüsseln.
Code: Alles auswählen
; Autor: Thomas (ts-soft) Schulz
; PB-Version: 4.xx
; OS: windows/linux/MacOS
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Linux
ImportC #PB_Compiler_Home + "purelibraries/linux/libraries/zlib.a"
CompilerCase #PB_OS_MacOS
ImportC "/usr/lib/libz.dylib"
CompilerCase #PB_OS_Windows
ImportC "zlib.lib"
CompilerEndSelect
compress2(*dest, *destLen, *source, sourceLen, level)
uncompress(*dest, *destLen, *source, sourceLen)
EndImport
Procedure zipPackMemory(*source, sourceLen = #PB_Default, level = #PB_Default)
Protected *dest, destLen
If level < #PB_Default Or level > 9 : level = #PB_Default : EndIf
If *source
If sourceLen = #PB_Default : sourceLen = MemorySize(*source) : EndIf
destLen = sourceLen + 13 + (Int(sourceLen / 100))
*dest = AllocateMemory(destLen)
If *dest
If Not compress2(*dest, @destLen, *source, sourceLen, level)
*dest = ReAllocateMemory(*dest, destLen)
ProcedureReturn *dest
EndIf
EndIf
EndIf
EndProcedure
Procedure zipUnpackMemory(*source, *dest)
Protected sourceLen = MemorySize(*source)
Protected destLen = MemorySize(*dest)
If Not uncompress(*dest, @destLen, *source, sourceLen)
ProcedureReturn destLen
EndIf
EndProcedure
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Re: Kompressionsalgorithmus (x86 = x64)
Wer hat das gesagt? Wer ist dieser verdammte Hobby*** der gerade sein Todesurteil unterschrieben hat? Keiner, was? Ist wohl der ver*** Weihnachtsmann gewesents-soft hat geschrieben:ZLIB magste ja nicht
Nein, ernsthaft jetzt: Ist zum 1. Mal, dass ich was von ZLIB höre, obwohl ich mich eher für aPLIB entschieden hätte (wegen der kleinen Ausgabegröße). Aber wenn ZLIB am unwahrscheinlichsten (wegen fehlendem Header ist), nehm ich ZLIB. Oder gibt's was, was ihr mir noch eher empfehlt?
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Kompressionsalgorithmus (x86 = x64)
> Wer hat das gesagt?
Du, weil ZLIB = ZIP - Algoryhtmus!
Du, weil ZLIB = ZIP - Algoryhtmus!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Re: Kompressionsalgorithmus (x86 = x64)
ts-soft hat geschrieben:> Wer hat das gesagt?
Du, weil ZLIB = ZIP - Algoryhtmus!

Wie wahrscheinlich ist es, dass es Programme gibt, die LZMA und aPLib visualisieren und/oder entpacken können?
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Kompressionsalgorithmus (x86 = x64)
Wenn kein Header vorhanden, dann recht unwahrscheinlich, aber bei ZLIP auch (ist ja kein Header vorhanden).Mok hat geschrieben:
Wie wahrscheinlich ist es, dass es Programme gibt, die LZMA und aPLib visualisieren und/oder entpacken können?
Aber Du kannst das ganze doch verschlüsseln!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Kompressionsalgorithmus (x86 = x64)
Immer diese Geheimnisskrämerei. ^^
Nimm die Kompression, die am besten passt. LZMA dürfte die besten Ergebnisse liefern. Ein Schutz in welcher Weise auch imme ist eine Kompression sowieso nicht. Das zu entpacken ist leicht auch ohne header. Esseiden du schmeißt jede Menge Mülldaten mit rein. Willst du Scherheit _musst_ du verschlüsseln und den Schlüssel vom Benutzer eingeben lassen, nicht im Programm hinterlegen.
Nimm die Kompression, die am besten passt. LZMA dürfte die besten Ergebnisse liefern. Ein Schutz in welcher Weise auch imme ist eine Kompression sowieso nicht. Das zu entpacken ist leicht auch ohne header. Esseiden du schmeißt jede Menge Mülldaten mit rein. Willst du Scherheit _musst_ du verschlüsseln und den Schlüssel vom Benutzer eingeben lassen, nicht im Programm hinterlegen.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!

- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Re: Kompressionsalgorithmus (x86 = x64)
@Thorium:Thorium hat geschrieben:Willst du Scherheit _musst_ du verschlüsseln und den Schlüssel vom Benutzer eingeben lassen, nicht im Programm hinterlegen.
Gibt's dafür auch Sourecodes? Mit den FileFingerprints von PB kannman nur Dateichecksummen erstellen.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl