Skocz do zawartości

XeVirtualFile


Rekomendowane odpowiedzi

Tytuł: XeVirtualFile

 

Typ: Zarządzanie zasobami

 

Opis: XeVirtualFile jest biblioteką do zarządzania plikami wirtualnymi, czyli paczkami/archiwami plików dodatkowo z możliwością szyfrowania danych. Przydać się to może do trzymania wszystkich zasobów (grafik, dźwięków, czy innych dowolnych plików) zabezpieczonych w jednym dużym pliku, z którego to ładujemy mniejsze pliki. W paczce biblioteki znajduje się prosty programik do automatycznego tworzenia archiwum, poprzez wrzucanie plików na okno i szybki zapis (dodatkowo przy zapisie dostajemy plik raportu z przebiegiem i wynikiem zapisu). Polecam sprawdzić :)

 

Download: https://gmclan.org/up1105_3_XeVirtualFile_1_0.html

Rozmiar pliku: 1824 KB

 

Autor: PsichiX

Odnośnik do komentarza
Udostępnij na innych stronach

Paczkowanie fajne, ale (nie że się czepiam :)) szyfrowanie to lipa - choćbyś tu użył mega wypaśnych algorytmów, to i tak wystarczy zdekompilować grę, i już sobie będziemy mogli spokojnie przeglądać zaszyfrowaną paczkę (albo po prostu załadować wszystkie sprity/etc i je wyeksportować)(jeśli się mylę to mnie popraw).

 

Ale powiedzmy, że szyfrowanie to taki gratis, więc za paczki masz te 10/10, bo w sumie wiele tutaj usprawnić chyba nie można :P

Odnośnik do komentarza
Udostępnij na innych stronach

Stopień bezpieczeństwa jest zależny od złożoności hasła :)

 

Dawidds: po to używa się GameProtectora od Snake'a aby nie można było zdekompilować ;P

Odnośnik do komentarza
Udostępnij na innych stronach

Wiesz, przed Reverse Engineeringiem nic się nie obroni, więc jak mówię: w pesymistycznym przypadku złożoność hasła decyduje o poziomie zabezpieczenia.

A kto nie zna się na RE i dodatkowo nie złamie hasła, ten nie będzie zdolny ripować :)

Odnośnik do komentarza
Udostępnij na innych stronach

w przykładzie jest wyjaśnione, linijka po linijce opisana :)

pierw szukasz po nazwie numer pliku w archiwum, następnie ładujesz do pamięci z archiwum plik (cały bądź jego fragment) o danym numerze i zapisujesz go na dysku (z racji że GM nie wykonuje działań na buforach, ale to też dodam), zwalniasz plik z pamięci i dalej robisz co chcesz z tym plikiem co go zapisałeś na dysk. Dodałem funkcje wypakowujące od razu konkretny plik na dysk, umieszcze potem aktualizację :)

Odnośnik do komentarza
Udostępnij na innych stronach

nie dalem zrodla? kurcze, dorzuce do aktualizacji ;P btw. co za roznica, czy napisal bym packer w c++ czy gml - to tylko program/interfejs, czesc wlasciwa kodu operacji jest przeciez w dllce i dziala szybko, a chcialem szybko zrobic jakis programik ;p

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Mniej miejsca zajmuje i szybciej działa?

 

Poza tym powinny być dwa przykłady: 1 pakowania, a drugi samego użycia grafik spakowanych w ten sposób, bo za dużo kodu na raz jest. W Almorze masz 4 skrypty do całości, Init, Free, Load, Unload, a tutaj cuda na kiju.

Odnośnik do komentarza
Udostępnij na innych stronach

jakby szkoda Ci bylo stracic te 900 kb i kilka milisekund szybkosci ktora w tym programie sie nie liczy ;0 :P

 

ee, no ok, zrobie ta "wersje dla leniwych" i wrzuce aktualizacje, o ;P

Odnośnik do komentarza
Udostępnij na innych stronach

PsichiX: tyle, że gm i tak wszystkie skrypty trzyma w pamięci skąd nie problem je wyciągnąć, a przed tym już gameprotector nie obroni gry ;P

 

Chociaż i tak zapisujesz plik (nie?) i wczytujesz go gmem, więc zawsze można odpalić program chociażby w jakieś piaskownicy, i mimo, że po załadowaniu sprita go skasujesz, to on i tak zostanie ;d

 

Ed: Ano zapisujesz, nie doczytałem.

Odnośnik do komentarza
Udostępnij na innych stronach

tyle, że gm i tak wszystkie skrypty trzyma w pamięci skąd nie problem je wyciągnąć, a przed tym już gameprotector nie obroni gry

spytaj Snake'a, potem mów :P

 

Chociaż i tak zapisujesz plik (nie?) i wczytujesz go gmem, więc zawsze można odpalić program chociażby w jakieś piaskownicy, i mimo, że po załadowaniu sprita go skasujesz, to on i tak zostanie ;d

do it and prove it. pokaz ze "biblioteka jest do dupy" :>

swoją drogą, nie moja wina że GM nie czyta plików z pamięci. W PlayGate mam to załatwione wczytywanie danych (sprajtów, dźwięków, etc.) z pamięci i tam też jest reszta lepszych ficerów i nie potrzeba zapisywać pliku na dysk. tą wersję poza PG potraktuj jak wersję lite, o.

Odnośnik do komentarza
Udostępnij na innych stronach

pytaj Snake'a, potem mów tongue2.gif
Już nie raz wyciągałem w ten sposób kod z różnych gier (:>), więc chyba nie trzeba zawracać głowy Snejkowi... ;d

 

do it and prove it. pokaz ze "biblioteka jest do dupy" :>
Wersję z piaskownicą zaraz sprawdzę :P

 

Ed: Taa, zapisujesz obrazek jako temp.jpg. Już wierzysz :) ?

 

Ed2: Nie no mówiłem, jako po prostu program do paczek jest cacy, ale szyfrowanie czegokolwiek gmem się jakby mija z celem ;P

Odnośnik do komentarza
Udostępnij na innych stronach

Już nie raz wyciągałem w ten sposób kod z różnych gier (:>), więc chyba nie trzeba zawracać głowy Snejkowi... ;d

spytaj sam siebie kiedy :>

tak czy siak, działaj, chętnie to zobaczę

Odnośnik do komentarza
Udostępnij na innych stronach

Ok, sprawdziliśmy z Dawiddsem zabezpieczenia (w gruncie rzeczy On testował, ja go nakręcałem :D) i w rezultacie wyszło, że miejscem gdzie zdecydowanie nie należy trzymać haseł są skrypty - one trzymane są w pamięci przez co w łatwy sposób można je podejrzeć, poproszę Snake'a aby spróbował zrobić jakieś obejście, albo usunięcie ich z pamięci (z brakiem wywalania errorów).

Tak czy siak, pełne bezpieczeństwo zapewnia ochrona gry poprzez GameProtector oraz trzymanie haseł w eventach obiektów, nie zaś w skryptach :)

Odnośnik do komentarza
Udostępnij na innych stronach

W temacie GP od razu ostrzegałem, że nie wszystko jest usuwane z pamięci bo struktura GM to utrudnia. W prawdzie jest to możliwe ale wiąże się to z dużym spadkiem wydajności zabezpieczonej gry - przy odczytywaniu skryptów runner używa jakichś funkcji do operacji na stringach, które wykonują ich kopię w pamięci, przez co mimo tego, że te regiony nie są po ukończeniu operacji używane to nadal pozostaje w nich zawartość skryptów. Jako, że te funkcje są bardzo często używane do różnych celów nie mogę dodać do nich kodu czyszczącego. BTW, jeszcze raz sprawdziłem w jakim stopniu zabezpiecza skrypty to czyszczenie i skuteczność wyniosła 100%, więc jak widać wszystko zależy menadżera pamięci - pewnie za którymś razem miałoby się to szczęście i niektóre skrypty nadawałyby się do odzyskania ;) Jak chcecie chronić się przed odczytywaniem haseł z pamięci to generujcie je dynamicznie na podstawie danych kryjących się w różnych częściach gry + obfuscator i już znakomita większość "hakerów" da sobie spokój.

 

Co do tej biblioteki to radziłbym zmienić metodę szyfrowania, bo na podstawie samego pliku .xvf można łatwo odzyskać hasło. Jak wspomniał PsichiX, przed bardziej zaawansowanymi użytkownikami nie da się tak czy inaczej uchronić, ale większość i tak nie da sobie z tym rady, więc co za problem. Gdyby nie GM, który wymaga, żeby zasoby ładować z osobnych plików to jestem pewien, że biblioteka byłaby znacznie bezpieczniejsza i zapewniała by bezpieczeństwo w 99% przypadków :)

Odnośnik do komentarza
Udostępnij na innych stronach

metoda szyfrowania akurat z biegiem czasu się rozwinie, póki co musiałem użyć najszybszej metody, swoją drogą większość zanim złapie algorytm, minie trochę czasu, dodatkowo pozostanie im szukać hasła, co takie proste nie będzie, więc mam czas na poprawę algorytmu ;D

 

EDIT: w PlayGate2 dodane będą do GMa bufory danych i operacje na nich, więc tam to już będzie pełne zabezpieczenie :D ta wersja jest tylko dla tych co nie chcą brać całego silnika, a tylko ten moduł :)

Odnośnik do komentarza
Udostępnij na innych stronach

No nie wiem czy zajmie dużo, ja hasło odzyskałem w 1-2 minuty na podstawie szyfrogramu ;p Oczywiście większość i tak nie będzie wiedziała jak to zrobić, ale ci co znają chociażby podstawy kryptoanalizy i odpowiedni soft powinni sobie poradzić ;p

 

Mam nadzieję, że masz zamiar dodać jakiś system wtyczek do PlayGate'a, ażeby umożliwić innym m.in. takie rzeczy jak właśnie ładowanie zaszyfrowanych danych. ;)

Odnośnik do komentarza
Udostępnij na innych stronach

pierwotnie system wtyczek był, działał, jednak uznałem że muszę go usprawnić i wyrzuciłem w cholere :D ale gdzies mam zrodla to przerobie pod nowa wersje

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...