ZenHAX

Free Game Research Forum | Official QuickBMS support | twitter @zenhax | SSL HTTPS://zenhax.com
It is currently Thu Nov 21, 2019 1:15 am

All times are UTC




Post new topic  Reply to topic  [ 9 posts ] 
Author Message
 Post subject: Gears 5 b2container file
PostPosted: Sat Sep 28, 2019 8:56 am 

Joined: Sun Mar 10, 2019 11:03 am
Posts: 21
Does anybody know what is b2container file in UE4 in Gears 5 And how can we extract texts?


Top
   
PostPosted: Thu Oct 10, 2019 1:29 pm 

Joined: Thu Sep 26, 2019 10:09 pm
Posts: 5
I also try to find some information on how to extract texts from b2container files. Gildor wrote: (- b2container files are not encrypted, but seems compressed with some simple algorithm, probably with lz4.) If you find anything, please let me know.


Top
   
PostPosted: Mon Oct 21, 2019 8:55 am 

Joined: Sat Dec 22, 2018 2:56 pm
Posts: 8
Gears 5 uses oodle compression for b2container.
The GearGame.b2index file contains information about B2 container names, file names, and their location and size in b2containers.
There should be localization texts in Launch.b2container.
Could someone create a bms script to unpack the files?
https://drive.google.com/open?id=18KaNN ... m3CAF78hxF


Top
   
PostPosted: Mon Oct 21, 2019 4:32 pm 

Joined: Thu Sep 26, 2019 10:09 pm
Posts: 5
Gears 5 uses oodle compression for b2container.
The GearGame.b2index file contains information about B2 container names, file names, and their location and size in b2containers.
There should be localization texts in Launch.b2container.
It is possible to create a BMS script to unpack the files???


Top
   
PostPosted: Thu Nov 07, 2019 4:53 pm 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 10822
Almost 2 Gb file?
Oh no thanks, there is the filecutter script for the first-time analysis:
http://aluigi.org/bms/filecutter.bms


Top
   
PostPosted: Thu Nov 07, 2019 6:13 pm 

Joined: Sat Dec 22, 2018 2:56 pm
Posts: 8
aluigi wrote:
Almost 2 Gb file?
Oh no thanks, there is the filecutter script for the first-time analysis:
http://aluigi.org/bms/filecutter.bms


ok
Here new data -14mb
https://drive.google.com/file/d/1gxuQGf ... sp=sharing


Complete file b2container - 10mb
https://drive.google.com/file/d/1kPYQk- ... sp=sharing


Top
   
PostPosted: Fri Nov 08, 2019 2:30 pm 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 10822
Quite complicated but not impossible.
Will keep you update.


Top
   
PostPosted: Fri Nov 08, 2019 2:46 pm 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 10822
Ok, it's too boring and I can't spend time on it.
The following is the work-in-progress script that parses all the fields of b2index.
It's NOT for being used, it's just for watching the fields when running quickbms -V
Code:
get EXT extension
if EXT != "b2index"
    print "Error: please open the b2index file"
    cleanexit
endif
idstring "TCB2"
get ENTRIES long
get B2INDEX_SIZE longlong
get OFFSET1 longlong
get DUMMY longlong
for i = 0 < ENTRIES
    get OFFSET longlong
    get NUM long
    putarray 0 i OFFSET
    putarray 1 i NUM
next i
get NAMES_OFF longlong
get NAMES_SIZE long
get DUMMY longlong
get DUMMY long

callfunction GET_ENTRY 1 0
for i = 0 < FILES
    get NAME_OFF longlong
    get OFFSET longlong
    get NUM long
    callfunction GET_NAME 1
next i

# b2container files
callfunction GET_ENTRY 1 1
for i = 0 < FILES
    get NAME_OFF longlong
    callfunction GET_NAME 1
    get NAME_OFF longlong
    callfunction GET_NAME 1
    get OFFSET longlong
    get DUMMY longlong
    get OFFSET longlong
    get DUMMY long
    get OFFSET longlong
    get DUMMY long
next i

callfunction GET_ENTRY 1 2
for i = 0 < FILES
    get OFFSET longlong
    get DUMMY longlong
    get DUMMY longlong
    get DUMMY long
    get OFFSET longlong
    get DUMMY long
next i

callfunction GET_ENTRY 1 3
for i = 0 < FILES
    get OFFSET longlong
    get DUMMY long
    get DUMMY long
next i

#callfunction GET_ENTRY 1 4

callfunction GET_ENTRY 1 5
for i = 0 < FILES
    get NAME_OFF longlong
    get SIZE long
    get LEVEL long  # -1 for files
    callfunction GET_NAME 1
next i

startfunction GET_NAME
    savepos TMP
    goto NAME_OFF
    get NAME string
    goto TMP
endfunction

startfunction GET_ENTRY
    print "### Parse entry %GET_ENTRY_ARG1%"
    getarray OFFSET 0 GET_ENTRY_ARG1
    getarray FILES  1 GET_ENTRY_ARG1
    goto OFFSET
endfunction


Top
   
PostPosted: Fri Nov 08, 2019 4:34 pm 

Joined: Sat Dec 22, 2018 2:56 pm
Posts: 8
I understand, thank you for your opinion
Solved. I have found localization texts


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 9 posts ] 

All times are UTC


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Limited