Packen und entpacken

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Packen und entpacken

Beitrag von Tsuki-Namida »

Hallo,
okay mit pure basic packen und entpacken ist ja soweit kein thema ;)

ich möchte aber einige daten packen die man nicht mit jedem andern programm entpacken kann (zum Beispiel WinRAR)

wäre super wenn mir da jemand helfen könnte...
Bild
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

ich möchte aber einige daten packen die man nicht mit jedem andern programm entpacken kann (zum Beispiel WinRAR)
Bild
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
Ja!
Beiträge: 271
Registriert: 02.01.2006 16:13
Wohnort: Stuttgart

Beitrag von Ja! »

Du könntest Deine Datei nach dem Packen noch ändern, also irgendeinen Müll reinschreiben und vor dem Entpacken diesen wieder entfernen.

Davon weiß ein anderes Programm ja nix und wird somit einen Fehler (defekte Datei) anzeigen..

So als Vorschlag..

[Edit]

Ach ja, Du könntest den Inhalt auch chiffrieren (auch mit PB möglich), dann kann sie zwar jeder entpacken, aber nix damit anfangen..
PureBasic 3.94 ; 4.2 ; 4.3
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag von Tsuki-Namida »

@Ja!
das ist auch ne möglich keit danke :) aber wie kann ich ggf. irgent ein "müll" reinschreiben das andere programme sagen das das archiv defekt ist?

oder wie kann ich "chiffrieren"?
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

es würde doch schon reichen wenn du alle Zeichen um 1 Acsii Wert verschiebst, das müsste schon ausreichen
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag von Tsuki-Namida »

dann verrate mir doch bitte wie ich das machen kann... und ggf auch zurück wenn ich das archiev öffnen möchte...

ich habe sowas noch nie gemacht.... ich habe bis jetzt den benutzern auch nichts verheimlichen wollen... bzw. die benutzer unterein ander

es ist ein programm wo ein benutzer eine zusammstellung machen kann und im internet verpreiten kann damit aber nicht jeder an die zusammenstellung kommt möchte ich das archiv halt unzugänglich machen.... es kann dann halt nur von meinem programm genuzt werden...
Bild
Benutzeravatar
Ja!
Beiträge: 271
Registriert: 02.01.2006 16:13
Wohnort: Stuttgart

Beitrag von Ja! »

Eine Datei kannst Du einfach mit OpenFile öffnen und dann schreibst du mit (z.B.) WriteWord eine Zahl rein u schließt die Datei wieder.

Bevor Du sie dann entpackst, öffnest Du nun wieder die Datei und machst als erstes ein ReadWord, ließt den rest ein und entpackst ihn.

Nur so als Beispiel, hab ich nie probiert und ich weiß nicht, ob es ausreicht um andere Programme zu täuschen..

Gruß
PureBasic 3.94 ; 4.2 ; 4.3
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Die Daten zu verschlüsseln ist sinnlos. Die fässt eh keiner an. Du solltest dir Gedanken darüber machen wie du die Daten im Speicher schützen kannst. Denn irgendwie müssen sie ja wieder ausgelesen werden.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
tobe
Beiträge: 146
Registriert: 14.09.2006 17:33
Wohnort: Oktoberfest

Beitrag von tobe »

warum benutzt du nicht den purebasic packer ?
PureBasic 4.40 (Windows - x86)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

will er ja, aber er will es verschlüsseln damit andere PB Packernutzer es nicht entpacken können.

Hier ganz einfaches verschlüsseln:
Procedure DeCodeFile(File$)
 FileID = OpenFile(#PB_Any, File$)
 If FileID
  nn = Lof(FileID)-1
  For n = 0 To nn
   FileSeek(FileID, n)
   t = ReadByte(FileID)
   FileSeek(FileID,n)
   WriteByte(FileID, t-1)
  Next n
  CloseFile(FileID)
 EndIf
EndProcedure

Procedure EnCodeFile(File$)
 FileID = OpenFile(#PB_Any, File$)
 If FileID
  nn = Lof(FileID)-1
  For n = 0 To nn
   FileSeek(FileID, n)
   t = ReadByte(FileID)
   FileSeek(FileID,n)
   WriteByte(FileID, t+1)
  Next n
  CloseFile(FileID)
 EndIf
EndProcedure

EnCodeFile("File.txt")
DeCodeFile("File.txt")
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten