How to view/extraction/unpacking this files? [Dissidia Final Fantasy Opera Omnia]

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
VongolaX
Posts: 5
Joined: Thu Jan 17, 2019 11:40 am

How to view/extraction/unpacking this files? [Dissidia Final Fantasy Opera Omnia]

Post by VongolaX »

I want to view inside this files. should I extraction/unpacking the file before? :?:
I don't know anything. any possible to view this files on Noesis? :|

please tell me how to do it. thank you very much! :D
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: How to view/extraction/unpacking this files?

Post by LolHacksRule »

Give the specific game, that could help.
VongolaX
Posts: 5
Joined: Thu Jan 17, 2019 11:40 am

Re: How to view/extraction/unpacking this files?

Post by VongolaX »

LolHacksRule wrote:Give the specific game, that could help.

it's files from Dissidia Final Fantasy Opera Omnia (Mobile Game)

Indeed, I decoded the file from .dz files with bms script (.dz -> .bin)
but I don't know how to open it. thank you :roll:
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: How to view/extraction/unpacking this files?

Post by LolHacksRule »

I don't have my PC... cannot help right now. Show me the hexes of the decoded files.
VongolaX
Posts: 5
Joined: Thu Jan 17, 2019 11:40 am

Re: How to view/extraction/unpacking this files?

Post by VongolaX »

LolHacksRule wrote:I don't have my PC... cannot help right now. Show me the hexes of the decoded files.


here :roll:

this bms script support .bin but I can't unpacking bin files with this script after decoded dz files
something wrong or I'm mistake? :| guide me, pls :lol:

Code: Select all

# script for QuickBMS http://quickbms.aluigi.org

get EXT extension
if EXT == "dz"
    math CHUNK_SIZE = 0x00010000
    get CHUNKS long
    get SIZE long
    for i = 0 < CHUNKS
        get CHUNK_ZSIZE long
        putarray 1 i CHUNK_ZSIZE
    next i
    get NAME basename
    log NAME 0 0
    append
    for i = 0 < CHUNKS
        padding 0x80
        getarray CHUNK_XSIZE 1 i
        get CHUNK_ZSIZE long
        math TMP = CHUNK_ZSIZE
        math TMP + 4            # include CHUNK_ZSIZE itself
        if TMP == CHUNK_XSIZE   # expected size
            savepos OFFSET
            clog NAME OFFSET CHUNK_ZSIZE CHUNK_SIZE
        else
            goto -4 0 SEEK_CUR
            savepos OFFSET
            log NAME OFFSET CHUNK_XSIZE
        endif
        math OFFSET + CHUNK_ZSIZE
        goto OFFSET
    next i
    append
    cleanexit
endif

if EXT == "bin"
    get FILES long
    for i = 0 < FILES
        get OFFSET long
        get SIZE long
        get NAME basename
        string NAME p "%s_%d." NAME i
        log NAME OFFSET SIZE
    next i
    cleanexit
endif

math BASE_OFF = 0x800
goto BASE_OFF
idstring "MPK "
get DUMMY long
get FILES long
get DUMMY long
for i = 0 < FILES
    get NAME_OFF long
    get OFFSET long
    get SIZE long
    get DUMMY long
    savepos TMP
    math NAME_OFF += BASE_OFF
    math OFFSET += BASE_OFF
    goto NAME_OFF
    get NAME string
    goto TMP
    log NAME OFFSET SIZE
next i
Last edited by VongolaX on Thu Jan 17, 2019 8:05 pm, edited 1 time in total.
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: How to view/extraction/unpacking this files?

Post by LolHacksRule »

I meant the decoded file hex, not the entire script.
VongolaX
Posts: 5
Joined: Thu Jan 17, 2019 11:40 am

Re: How to view/extraction/unpacking this files?

Post by VongolaX »

sorry, but how to do it? I mean what is the decoded file hex?
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: How to view/extraction/unpacking this files? [Dissidia Final Fantasy Opera Omnia]

Post by LolHacksRule »

Open the file in a hex editor, and show the beginning bytes, likely, a header is present to identify the file.
VongolaX
Posts: 5
Joined: Thu Jan 17, 2019 11:40 am

Re: How to view/extraction/unpacking this files? [Dissidia Final Fantasy Opera Omnia]

Post by VongolaX »

like this? :|
Image
Image
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: How to view/extraction/unpacking this files? [Dissidia Final Fantasy Opera Omnia]

Post by LolHacksRule »

Yeah that's it, "XL!!" header, I don't know that one...
hearhellacopter
Posts: 8
Joined: Tue Nov 26, 2019 12:14 am

Re: How to view/extraction/unpacking this files? [Dissidia Final Fantasy Opera Omnia]

Post by hearhellacopter »

I know this is old, but for anyone looking to read files with the "XL" header, this a simple script that turns them into a cvs file for easy reading.

Code: Select all

get name basename
string name + ".csv"
idstring "XL\x13\x00"
get archive_size short
get dummy short
get count short
getdstring dummy 10

savepos baseoff
for i = 1 to count
   get offtext long
   savepos nextoff
   math offtext + baseoff
   goto offtext
   math sizetext = 0
   for
      get check byte
      ","
      if check == 0
         break
      else
         math sizetext + 1
      endif
   next
   if sizetext <> 0
      slog name offtext sizetext
   endif
   goto nextoff
next i
LokiReborn
Posts: 190
Joined: Fri Aug 26, 2016 3:11 pm

Re: How to view/extraction/unpacking this files? [Dissidia Final Fantasy Opera Omnia]

Post by LokiReborn »

hearhellacopter wrote:I know this is old, but for anyone looking to read files with the "XL" header, this a simple script that turns them into a cvs file for easy reading.

Code: Select all

get name basename
string name + ".csv"
idstring "XL\x13\x00"
get archive_size short
get dummy short
get count short
getdstring dummy 10

savepos baseoff
for i = 1 to count
   get offtext long
   savepos nextoff
   math offtext + baseoff
   goto offtext
   math sizetext = 0
   for
      get check byte
      ","
      if check == 0
         break
      else
         math sizetext + 1
      endif
   next
   if sizetext <> 0
      slog name offtext sizetext
   endif
   goto nextoff
next i


I'd note here that there are a couple of things incomplete at the beginning of the file. The breakdown at the start is

long Magic
short lastTwoBytesOfSize //If it's 0x010203 in size just 0x0203 will be found in that position and is valid
long archiveType //Your example uses type 1, believe 1 is always string data
short count
short typeLength //Your example uses type 4, believe this is to to denote long offset values so could expect 8 here too

If there is a combo of anything other than 1 & 4 this script won't work, nice work though =)
hearhellacopter
Posts: 8
Joined: Tue Nov 26, 2019 12:14 am

Re: How to view/extraction/unpacking this files? [Dissidia Final Fantasy Opera Omnia]

Post by hearhellacopter »

Hmm you're right. There seems to be two different types of "XL" file headers.

I attached the file I used this script for. Both files were unziped from their .dz extention.