Ocena: ( 8.86 / 10 )
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Głosów: 7 Pobrano: 34 razy.
One Must Fall 2097 - Mimo, iż ma już ona trochę lat, jednak zawiera bardzo ciekawe save'y. Jak zawsze zaczynamy grzebanie od "rozpoznania terenu". Ponieważ interesuje nas oczywiście tryb turniejowy (Tournament Mode), dokładnie obserwujemy zachowanie się gry pod tym kątem. Po X doświadczeniach zauważamy, że gra tworzy pliki o rozszerzeniu .CHR i nazwie równoznacznej z imieniem pilota. Pewnym utrudnieniem może być fakt, że w grze można zapisać tylko jeden stan danego wojownika, tak więc będzie trzeba dość często wychodzić z gry i kopiować SG w jakieś bezpieczne miejsce (lub zmieniać mu nazwę).
Zaczynamy zabawę - tworzymy nowego pilota i "zapisujemy się" do turnieju (najlepiej North American Open). Najlepsza w naszym wypadku byłaby chyba zmiana zasobów pieniężnych, które pozwolą nam na zakup lepszego robota i polepszenie cech pilota. Na początku mamy 500 tysięcy dolarów. Jednak przejrzenie pliku nie daje żadnych rezultatów, zarówno gdy szukamy pięciuset tysięcy, jak i samej pięćsetki. Przy okazji zauważamy, że SG jest jakiś "dziwny" - praktycznie nie ma w nim zer, tylko rosnące ciągi liczb gdzieniegdzie tylko przeplatane innymi wartościami.
Oznacza to, że save jest albo spakowany, albo zaszyfrowany. W tym pierwszym wypadku moglibyśmy spokojnie dać sobie spokój - odkrycie, jakim algorytmem jest skompresowany SG i późniejsze przerobienie takiego pliku wymaga dobrej znajomości jakiegoś języka programowania (najlepiej assemblera) i bycia biegłym w kilku innych tematach.
Jednak krótkie badania (tworzenie innych SG po pokonaniu kilku zawodników) wykazują, że wszystkie save'y mają taką samą długość. To dobra nowina - pakowane pliki różnią się zwykle rozmiarami o kilka bajtów, natomiast szyfrowane - nigdy.
Cóż nam pozostaje? Stara, wypróbowana przez pokolenia metoda porównywania. Tworzymy nowego pilota, po czym wychodzimy z gry i kopiujemy SG pod jakąś inną nazwę (np. 00.CHR). Potem znowu uruchamiamy OMF i korzystamy z opcji Training Courses / Power, dzięki czemu ubywa nam 50 tysięcy zielonych. Kończymy grę i porównujemy nasz plik z poprzednim.
U mnie wystąpiło osiem różnic. Teraz trzeba każdą mozolnie zbadać. Uwaga! Sprawdzamy każdy offset. Nawet liczba, która ZWIĘKSZYŁA swoją wartość może być naszą szukaną - pamiętajmy, że plik jest zaszyfrowany!
Wynikiem naszych badań powinien być offset 28h. Jaką wartość wybrać? Trzeba poeksperymentować z różnymi liczbami. Widzimy jednak, że nawet wpisywanie skrajnych wartości nie daje nam dużego pola manewru. Być może więc liczba jest zapisana na więcej niż jednym bajcie? Zmiana bajtu pod offsetem 2Ah (np. na 00h) potwierdza te przypuszczenia - mamy ponad 14 miliardów dolarów!
W podobny sposób można odkryć rodzaj robota, jego możliwości oraz kolory, a także cechy pilota. Zachęcam do eksperymentów. Powodzenia!
PS Dla wtajemniczonych: Plik jest zaszyfrowany funkcją XOR, której drugi parametr to offset bajtu powiększony o ACh. Zresztą o funkcji XOR porozmawiamy zapewne już niedługo.
Zobacz także:
One Must Fall
Bijatyka w 2097 roku.
One Must Fall 2097
Tu możesz podzielić się swoją opinią na temat recenzji Oszukiwanie.