Re: ArcheAge Online
Posted: Mon Aug 11, 2014 11:32 am
Sure thing!
This is how I extracted the current ArcheAge BETA (Trion-client):
Example:
archeage_unpack.txt:
Result I got when done extracting the recent beta client:
Texture- and [strike]music[/strike] files seem to work the right way.
I can imagine though, that the key inside the DECRYPT-function is invalid and thus the files, which need separate decryption, don't work.
As for alpha client... I believe its not currently available to the public, but perhaps I could upload it somewhere .. not sure yet, though. If someone would give me some space to upload to, I'd do that .
Edit: oh - right! If you want to extract the music from *.fsb to something playable, I suggest using Aezay FSB Extractor (http://aezay.site11.com/aezay/fsbextractor/).
Edit2: D: can't have much playable I guess ... stupid headerless ogg files . Sorry if I got your hopes up.
This is how I extracted the current ArcheAge BETA (Trion-client):
Code: Select all
quickbms_4gb_files -9 archeage_unpack.txt <GAME_PAK-file with complete path> <folder to extract to>
Code: Select all
quickbms_4gb_files -9 archeage_unpack.txt c:\ArcheAgeBetaNA\game_pak "C:\temp\AAUNPACK"
Code: Select all
# Archeage (script 0.3.1a)
# script for QuickBMS http://quickbms.aluigi.org
math SIZE = 0x200
goto 0 0 SEEK_END
savepos OFFSET
math OFFSET -= SIZE
callfunction DECRYPT 1
idstring MEMORY_FILE "WIBO"
get DUMMY long MEMORY_FILE
get FILES long MEMORY_FILE
get EXTRA_FILES long MEMORY_FILE
get DUMMY long MEMORY_FILE
get DUMMY long MEMORY_FILE
get DUMMY long MEMORY_FILE
get DUMMY long MEMORY_FILE
print "Files: %FILES|x%"
print "Extra files: %EXTRA_FILES|x%"
math SIZE = FILES
math SIZE += EXTRA_FILES
math SIZE *= 0x150
goto 0 0 SEEK_END
savepos INFO_OFF
math INFO_OFF -= 0x200
for INFO_OFF -= SIZE >= 0
if INFO_OFF % 0x200
math INFO_OFF -= 0x10
else
break
endif
next
print "FileTable offset: %INFO_OFF|x%"
for i = 0 < FILES
math SIZE = 0x150
math OFFSET = INFO_OFF
callfunction DECRYPT 1
math INFO_OFF += 0x150
getdstring NAME 0x108 MEMORY_FILE
get OFFSET longlong MEMORY_FILE
get SIZE longlong MEMORY_FILE
get XSIZE longlong MEMORY_FILE # used for encryption alignment?
get ZSIZE long MEMORY_FILE # ???
getdstring DUMMY 16 MEMORY_FILE
get DUMMY1 long MEMORY_FILE
get TIMESTAMP longlong MEMORY_FILE
get TIMESTAMP longlong MEMORY_FILE
get DUMMY2 longlong MEMORY_FILE
#set EXT extension NAME
#if EXT == "sqlite3"
# encryption aes? ???
#endif
log NAME OFFSET SIZE # don't use clog for the moment
#encryption "" ""
next i
startfunction DECRYPT
encryption aes_128_cbc "\x32\x1F\x2A\xEE\xAA\x58\x4A\xB4\x9A\x6C\x9E\x09\xD5\x9E\x9C\x6F"
log MEMORY_FILE OFFSET SIZE
encryption "" ""
endfunction
Code: Select all
- 214978 files found in 640 seconds
coverage file 0 99% 23448018021 23623106048
coverage file -1 21497809% 72232640 336
I can imagine though, that the key inside the DECRYPT-function is invalid and thus the files, which need separate decryption, don't work.
As for alpha client... I believe its not currently available to the public, but perhaps I could upload it somewhere .. not sure yet, though. If someone would give me some space to upload to, I'd do that .
Edit: oh - right! If you want to extract the music from *.fsb to something playable, I suggest using Aezay FSB Extractor (http://aezay.site11.com/aezay/fsbextractor/).
Edit2: D: can't have much playable I guess ... stupid headerless ogg files . Sorry if I got your hopes up.