Izithombe · bei.pm

Kukhishwe ngomhla ka 19.11.2015·Kubuyekeziwe ngomhla ka 13.02.2025·isiZulu
Lo mbhalo uthunyelwe ngokuzenzakalelayo nge-OpenAI GPT-4o Mini.

Amafomethi edokhumenti achazwe kule ndawo asuselwa ekuhlaziyweni kwezobuchwepheshe kobunikazi bokwakha be-Dynamix, Inc. kanye ne-Sierra Entertainment.
Ubunikazi bokwakha manje sebuye ingxenye ye-Activision Publishing, Inc.- / Activision Blizzard, Inc. futhi manje kuphathwa yi-Microsoft Corp..

Ulwazi luqoqwe ngokuqhuba Reverse Engineering kanye Datenanalyse ngenhloso yokugcinwa futhi kuhlanganyela nedatha yomlando.
Amazwibela okwakha angama-proprietary noma afihlekile awasetshenziswanga.

Umdlalo manje ungathengwa ku-gog.com njengokulanda.

Izivolumu ziwumgqibelo wedatha yomdlalo, efana nefomethi ye-archive njenge Tarball. Nakuba i-Outpost 2 iyazi le fomethi, ithola kuphela amafayela - ayikho imibhalo. Kungenzeka ukuthi lezi zingafakazelwa ngamagama efayela afanele.

IVolume iqukethe i-volume-header kanye nezinqamuleli eziningi ze-volume ezihambisana namafayela athile.

"Izivolumu" zingamafayela anenhloso 'vol' endaweni yomdlalo.

I-Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF ubcharacter
0x0000 56 4f 4c 20 -- -- -- -- -- -- -- -- -- -- -- -- V O L . . . . . . . . . . . .
I-Offset Uhlobo lwedatha Igama leDatha Incazelo
0x0000 uint(32) Ama-Bytes Amaphupho
0x0004 uint(24) Ubude bebhlogo
0x0007 uint(8) Amabhanoyi

Isihloko Sezinga

I-Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF ubcharacter
0x0000 76 6f 6c 68 -- -- -- -- -- -- -- -- -- -- -- -- v o l h . . . . . . . . . . . .
I-Offset Uhlobo lwedatha Igama leDatha Incazelo
0x0000 uint(32) Ama-Bytes Amaphupho
0x0004 uint(24) Ubude bebhlogo
0x0007 uint(8) Amabhanoyi

I-Volume Header ayinayo imikhiqizo ethile.
Isebenza kuphela njengenhlaka.

Ngokokuqala, idatha ku-Volume Header kufanele kube ama-Volume Strings; kulandela lokho imininingwane ye-Volume.

Izintambo Zomthamo

I-Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF ubcharacter
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
I-Offset Uhlobo lwedatha Igama leDatha Incazelo
0x0000 uint(32) Ama-Bytes Amaphupho
0x0004 uint(24) Ubude bebhlogo
0x0007 uint(8) Amabhanoyi
I-Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF ubcharacter
0x0000 76 6f 6c 73 -- -- -- -- -- -- -- -- -- -- -- -- v o l s . . . . . . . . . . . .
I-Offset Uhlobo lwedatha Igama leDatha Incazelo
0x0000 uint(32) Ama-Bytes Amaphupho
0x0004 uint(24) Ubude bebhlogo
0x0007 uint(8) Amabhanoyi
0x0008 uint(32) Ubude be-Payload

Khombisa ukuthi mangaki ama-bytes edatha elandelayo empeleni ayidatha yokusebenzisa.

Idatha esele ye-Volume-Strings-list ibonakala kufanele ibhekwa njenge garbage.

Emafayilini anedethi esheshayo, lezi 'datha esele' zingama-0x00, okungase kube uphawu lokuthi kunezinkinga nge-toolchain ngesikhathi sokuthuthukiswa komdlalo, okusho ukuthi umthuthukisi uqale ukunakekela ukuqalwa kahle kwamabhafa kuphela ngokuhamba kwesikhathi, ngoba akukhona okuthinta umdlalo uma idatha iqaliswe noma cha.

0x000c uint(8)[] Uhlu Lwamagama Wefayela

Lezi yizilisti eziphelile ezine-0-byte ezinomagama wamafayela, ezilindele kuphela izimpawu ze-ASCII - okungenani kulolu hlobo lwemininingwane elukhona.

Akudingeki ukuthi sihlaziye kahle lezi zinsiza ngesikhathi sokuhlaziya idatha, ngoba kulwazi lwezivolumu, ama-offsets amagama wamafayela ahlanganisiwe ngqo.

I-Volume Strings iyaluhlu lwegama lamafayela athi ngaphakathi kwe-Volume.

Ulwazi lweVOLUME

I-Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF ubcharacter
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
I-Offset Uhlobo lwedatha Igama leDatha Incazelo
0x0000 uint(32) Ama-Bytes Amaphupho
0x0004 uint(24) Ubude bebhlogo
0x0007 uint(8) Amabhanoyi

Ulwazi lwe-Volume luthola ulwazi olunembile ngemafayela. Lokhu kungathathwa njengohlobo lwe-FAT (FAT = File Allocation Table) olwakha umaki wombhalo.

Inani lamafayela litholwa ngokuhlukanisa usayizi wombhoxo ngokuqhathaniswa nobude bemaki - 14 Byte.

Lezi zinkomba zefayela zinezakhiwo ezilandelayo:

I-Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF ubcharacter
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
I-Offset Uhlobo lwedatha Igama leDatha Incazelo
0x0000 uint(32) Igama lefayela-Offset

Kukhomba ukuthi kuphi ku-offset (!) ngaphakathi kohlu lwamagama efayela (ama-Volume-Strings) igama lefayela le fayela litholakala khona.

Lokhu kubhekisela ekuqaleni kwegatsha lemininingwane.

0x0004 uint(32) I-Offset yeFayela

Ikhombisa ukuthi ikuphi okufanele kutholakale ngaphakathi kwefayela eliphelele le-Volume.

0x0008 uint(32) Usayizi wefayela

Kukhombisa ukuthi ubungako befayela bukhulu kangakanani ngama-byte.

0x000c uint(16) Amathagethi?

Kubonakala ukuthi kukhona olunye ulwazi mayelana nokuhlelwa kwefayela.

  • 0x03 ibekwa uma ifayela liqukethe okuncishisiwe. Kulokhu kubonakala sengathi kusebenze iHuffman tree.
  • 0x80 kubonakala ukuthi kuhlala kubekwe.

Isikhala Sovolumu

I-Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF ubcharacter
0x0000 56 42 4c 48 -- -- -- -- -- -- -- -- -- -- -- -- V B L H . . . . . . . . . . . .
I-Offset Uhlobo lwedatha Igama leDatha Incazelo
0x0000 uint(32) Ama-Bytes Amaphupho
0x0004 uint(24) Ubude bebhlogo
0x0007 uint(8) Amabhanoyi

I-Volume-Block iyi-container, ethatha amafayela. Iqukethe kuphela - bona ngenxa yesakhiwo se-Block - kabili usayizi wefayela futhi kulandela ngqo idatha esetshenziswayo.