Autor Wątek: Hasło na folder "media" dla plików zip lub pk3  (Przeczytany 1868 razy)

cyberion

  • Gość
# Listopad 23, 2007, 00:30:31
Witam!

przedstawiam poniższy kod (sampl z tutoriala Irrlichta). Wszystkie pliki (tekstury, pliki dźwiękowe) mam w folderze media i jeżeli używam poniższego kodu:

Cytuj
device->getFileSystem()->addZipFileArchive("media/media.pak");
scene::IAnimatedMesh* q3levelmesh = smgr->getMesh("dodane_3.obj");

to wszystko jest ok. Problem polega na tych, iż pliki te chcę schować (najlepiej żeby archiwum miało hasło). Probowałem w Total Commanderze oraz WinRar-em wybierając różne stopnie kompresji i oczywiście archiwum było szyfrowane hasłem. Ale podczas uruchomiania takiego programu, gdzie archiwum jest zaszyfrowane pojawia się znany błąd debugowania (jeżeli archiwum jest bez hasła to wszytsko jest ok:) Próbowałem Wirtualnych Systemów Plików oraz testowałem bibliotekę zlib, lecz szczerze mówiąć niewiele mi to pomogło. Może ktoś zna jakiś prostszy sposób na zabezpieczenie archiwum ? Bo zmiana rozszerzenia archiwum zip na inne mija się z celem.

EDIT: próbowałem tworzyć pliki pk3 wdł. dokumentacji Irrlichta:
Cytuj
virtual bool irr::io::IFileSystem::addPakFileArchive  (  const c8 *  filename, 
  bool  ignoreCase = true, 
  bool  ignorePaths = true
 )  [pure virtual]
 
   Adds an pak archive to the file system.

After calling this, the Irrlicht Engine will search and open files directly from this archive too. This is useful for hiding data from the end user, speeding up file access and making it possible to access for example Quake2/KingPin/Hexen2 .pak files

Lecz dalej pozostaje ten sam błąd :( Pliki oczywiście zaszyfrowałem, a w kodzie wygląda to tak:

Cytuj
device->getFileSystem()->addPakFileArchive("media/media.zip",false,true);
scene::IAnimatedMesh* q3levelmesh = smgr->getMesh("dodane_3.obj");

Użyłem tego programu: PKZIP(r) - Version 9.00.0010 do stworzenia pliku pk3
« Ostatnia zmiana: Listopad 23, 2007, 00:32:42 wysłana przez cyberion »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Złośliwiec

  • Użytkownik
    • Dark Cult

# Listopad 23, 2007, 00:49:06
Archiwa PAK raczej nie uchronią twoich plików przed użytkownikiem - można je otworzyć narzędziami do Quake'a, które z racji popularności tej gry są bardzo łatwo dostępne :). Radziłbym raczej użyć GNU PG albo czegoś podobnego.

cyberion

  • Gość
# Listopad 23, 2007, 00:58:35
Myślałem również o "ukrywaniu zasobów w plikach exe", ale nie chciałbym dodatkowo mieszać w kodzie tylko pliki spakować i dodać do nich hasło.

EDIT: Irrlicht wczytuje archiwa: zip i pk3 a próbowałem oba zaszyfrować i błąd debugowania przy zaszyfrowanych plikach się pojawiał przy nie zaszyfrowanych błędu tego nie było. Nie wiem czy inny format zostanie obsłużony (probowałem z media.rar i sytuacja się powtarza)
« Ostatnia zmiana: Listopad 23, 2007, 01:03:35 wysłana przez cyberion »

Offline Złośliwiec

  • Użytkownik
    • Dark Cult

# Listopad 23, 2007, 01:07:10
Wrzucenie plików do EXE daje ci prawie dokładnie tyle samo, co zostawienie ich na zewnątrz :). GNU PG (czy też GnuPG, jak zwał tak zwał) pozwala ci właśnie jednocześnie na kompresję i szyfrowanie, więc prawdopodobnie jest to rozwiązanie, którego szukasz.

//EDIT:
Natomiast sama biblioteka Zlib z Irrlichta po prostu nie obsługuje szyfrowania i stąd te błędy.

Offline rAum

  • Użytkownik
    • blog

# Listopad 23, 2007, 18:38:38
Zawsze pozostaje możliwość aby zaszyfrować ręcznie plik zip i zmienić mu rozszerzenie i podczas ładowania odszyfrować, i ew. stworzyć tymczasowego zipa i korzystać z niego normalnie a podczas zamknięcia znowu zaszyfrować i skasować tymczasowego.
Jeśli piszesz pod Windows i pod ntfs to pole manewru się zwiększa i możesz:
1) ustawić atrybuty +s +h dla pliku readme.txt (albo nawet nie :P)
2) użyć aletrnatywnych strumieni ntfs -> http://www.grzegorz.net/articles/index.php?id=ntfsstreams