FIFA 16 (*.BIG)

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
Ekey
Posts: 1383
Joined: Sat Aug 09, 2014 2:34 pm

FIFA 16 (*.BIG)

Post by Ekey »

Code: Select all

# FIFA 16 (BIG format)
# Written by Ekey (h4x0r)
# script for QuickBMS http://quickbms.aluigi.org

comtype COMP_DEFLATE
idstring "BIG"
get VERSION byte #4
get BIGSIZE long
endian big
get FILES long
get TABLESIZE long

for i = 0 < FILES
    get OFFSET long
    get FZSIZE long
    get NAME string

    savepos TMP
    goto OFFSET
    getdstring TYPE 8

    if TYPE == "chunkzip"
        get DUMMY long
        get SIZE long
        getdstring DUMMY 24
        get ZSIZE long
        get DUMMY long
        savepos ZOFFSET
        clog NAME ZOFFSET ZSIZE SIZE
    else
        log NAME OFFSET FZSIZE
    endif
    goto TMP
next i
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: FIFA 16 (*.BIG)

Post by aluigi »

As far as I know the chunkzip files are a bit more complex than that.
Probably it's better to dump them "as-is" and then use the chunklzx script:
http://aluigi.org/papers/bms/chunklzx.bms
Ekey
Posts: 1383
Joined: Sat Aug 09, 2014 2:34 pm

Re: FIFA 16 (*.BIG)

Post by Ekey »

aluigi wrote:As far as I know the chunkzip files are a bit more complex than that.
Probably it's better to dump them "as-is" and then use the chunklzx script:
http://aluigi.org/papers/bms/chunklzx.bms

Hmmm. I have small .big archive with single chunks :)
jadugar
Posts: 38
Joined: Tue Nov 29, 2016 6:39 pm

Re: FIFA 16 (*.BIG)

Post by jadugar »

aluigi wrote:As far as I know the chunkzip files are a bit more complex than that.
Probably it's better to dump them "as-is" and then use the chunklzx script:
http://aluigi.org/papers/bms/chunklzx.bms


Is extraction possible or is injected again?
chunklzx == Extract and re-compress ?
jadugar
Posts: 38
Joined: Tue Nov 29, 2016 6:39 pm

Re: FIFA 16 (*.BIG)

Post by jadugar »

aluigi wrote:As far as I know the chunkzip files are a bit more complex than that.
Probably it's better to dump them "as-is" and then use the chunklzx script:
http://aluigi.org/papers/bms/chunklzx.bms


Please update the script to compress chunklzx files
Currently, only the script extracts files and does not inject
Is this done?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: FIFA 16 (*.BIG)

Post by aluigi »

There is the reimporting feature of quickbms.
If you don't like it or doesn't work there are no other solutions.
jadugar
Posts: 38
Joined: Tue Nov 29, 2016 6:39 pm

Re: FIFA 16 (*.BIG)

Post by jadugar »

aluigi wrote:There is the reimporting feature of quickbms.
If you don't like it or doesn't work there are no other solutions.

http://www.mediafire.com/file/f51axigemilfca6/ng.rar
You check to see if the extracted file is imported after extraction?
I could not do with quickbms.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: FIFA 16 (*.BIG)

Post by aluigi »

The reimporting feature may not work because the file is chunked (basically it's splitted in small pieces).
As already said, if it doesn't work I have no other solutions unfortunately.

Anyway I have updated the script and it "may" work better in reimport mode, it's a type of update that usually worked for the scripts of other games. Try it, version 0.2.4:
http://aluigi.org/bms/chunklzx.bms

If the game doesn't work with the "edited" file try to use the unpacked file at the place of the original one.

Keep us update!
jadugar
Posts: 38
Joined: Tue Nov 29, 2016 6:39 pm

Re: FIFA 16 (*.BIG)

Post by jadugar »

aluigi wrote:The reimporting feature may not work because the file is chunked (basically it's splitted in small pieces).
As already said, if it doesn't work I have no other solutions unfortunately.

Anyway I have updated the script and it "may" work better in reimport mode, it's a type of update that usually worked for the scripts of other games. Try it, version 0.2.4:
http://aluigi.org/bms/chunklzx.bms

If the game doesn't work with the "edited" file try to use the unpacked file at the place of the original one.

Keep us update!

Thank you very much. You made a very quick update
Imports files but crashes when the game is running
The compressed file is also not available for Xbox
Possibly in the computer version of the game
jadugar
Posts: 38
Joined: Tue Nov 29, 2016 6:39 pm

Re: FIFA 16 (*.BIG)

Post by jadugar »

Ekey wrote:

Code: Select all

# FIFA 16 (BIG format)
# Written by Ekey (h4x0r)
# script for QuickBMS http://quickbms.aluigi.org

comtype COMP_DEFLATE
idstring "BIG"
get VERSION byte #4
get BIGSIZE long
endian big
get FILES long
get TABLESIZE long

for i = 0 < FILES
    get OFFSET long
    get FZSIZE long
    get NAME string

    savepos TMP
    goto OFFSET
    getdstring TYPE 8

    if TYPE == "chunkzip"
        get DUMMY long
        get SIZE long
        getdstring DUMMY 24
        get ZSIZE long
        get DUMMY long
        savepos ZOFFSET
        clog NAME ZOFFSET ZSIZE SIZE
    else
        log NAME OFFSET FZSIZE
    endif
    goto TMP
next i



There is no update for this script
Because in that chunkzip it can extract and import in one step
But chunklzx only extracts and requires two extraction steps
beedy
Posts: 81
Joined: Sat Aug 26, 2017 8:09 am

Re: FIFA 16 (*.BIG)

Post by beedy »

Here is a script to compress single files to chunklzx format. The script is not complete yet so you must copy chunklzx header (0x28) from original chunklzx file to start of the compressed file created with this script.

Code: Select all

comtype xmemlzx_compress
endian big
math CHUNK_SIZE = 0x40000
get SIZE asize
math T = 0
get NAME filename

log NAME 0 0
for OFFSET = 0 != SIZE

    math TMP = SIZE
    math TMP - OFFSET
    if TMP < CHUNK_SIZE
        math CHUNK_SIZE = TMP
    endif
    clog MEMORY_FILE OFFSET CHUNK_SIZE CHUNK_SIZE
    get CHUNK_ZSIZE asize MEMORY_FILE

# math number of nulls in end of chunk putting CHUNK_ZSISE to right column in the file.
    math N = 0x10
    math T = CHUNK_ZSIZE
    math T %= 0x10
   if T == 8
      math N = 0
   elif T > 8
      math N += 8
      math N -= T
   else
      math N -= 8
      math N -= T
   endif

    putvarchr MEMORY_FILE2 0 CHUNK_ZSIZE long
    putvarchr MEMORY_FILE2 4 3           long
    putvarchr MEMORY_FILE3 N 0
    append
    log NAME 0 8           MEMORY_FILE2
    log NAME 0 CHUNK_ZSIZE MEMORY_FILE
    log NAME 0 N           MEMORY_FILE3
    append
next OFFSET + CHUNK_SIZE