Important information: this site is currently scheduled to go offline indefinitely by end of the year.
HeroesX Online
-
- Moderator
- Posts: 2602
- Joined: Sun May 18, 2008 3:01 pm
- Has thanked: 57 times
- Been thanked: 1422 times
Re: HeroesX Online
the fomrat looks fairly easy do you have one more sample just so i can confirm th estarting header.
-
- advanced
- Posts: 52
- Joined: Wed Oct 21, 2009 12:52 pm
- Has thanked: 9 times
- Been thanked: 10 times
Re: HeroesX Online
sample:chrrox wrote:the fomrat looks fairly easy do you have one more sample just so i can confirm th estarting header.
http://www.mediafire.com/?z9dqzprwws6sg ... 3e23vje1qf
-
- M-M-M-Monster veteran
- Posts: 1823
- Joined: Wed Mar 31, 2010 6:54 am
- Has thanked: 92 times
- Been thanked: 1058 times
Re: HeroesX Online
Code: Select all
# FEAR / FEAR2 / ARCH00 archives (script 0.3)
# script for QuickBMS http://quickbms.aluigi.org
comtype deflate
idstring "LTAR"
get VERSION long
# it's possible to make the check on the version or using this solution
savepos TMP
get FULL_SIZE asize
get DUMMY1 long
get DUMMY2 long
math AUTOGUESS = 0
if DUMMY1 u> FULL_SIZE
math AUTOGUESS = 1
endif
if DUMMY2 u> FULL_SIZE
math AUTOGUESS = 1
endif
goto TMP
if AUTOGUESS == 0
get NAMESSZ long
get FOLDERS long
get FILES long
get DUMMY long # 1
get DUMMY long # 0
get DUMMY long # 0
getdstring HASH 16
else
getdstring HASH 16
get DUMMY long # 1
get DUMMY long # 0
get DUMMY long # 0
get FILES long
get FOLDERS long
get NAMESSZ long
endif
savepos OFFSET
log MEMORY_FILE OFFSET NAMESSZ
math OFFSET += NAMESSZ
set FILESSZ long FILES
math FILESSZ *= 32
log MEMORY_FILE2 OFFSET FILESSZ
math OFFSET += FILESSZ
set FOLDERSSZ long FOLDERS
math FOLDERSSZ *= 16
log MEMORY_FILE3 OFFSET FOLDERSSZ
set FOLDER string ""
callfunction EXTRACT
startfunction EXTRACT
savepos CURR_OFF MEMORY_FILE3
if CURR_OFF >= FOLDERSSZ
cleanexit
endif
get NAME_OFF long MEMORY_FILE3
get SUB_FOLDERS long MEMORY_FILE3
get NEXT_FOLDERS long MEMORY_FILE3
get NUM_FILES long MEMORY_FILE3
goto NAME_OFF MEMORY_FILE
get NAME string MEMORY_FILE
# don't have the minimal idea if it's correct, it's an update of the old script
if AUTOGUESS == 0
string FOLDER = NAME
else
string FOLDER += NAME
endif
string FOLDER += /
for i = 0 < NUM_FILES
savepos CURR_OFF MEMORY_FILE2
if CURR_OFF >= FILESSZ
cleanexit
endif
get NAME_OFF long MEMORY_FILE2
get OFFSET longlong MEMORY_FILE2
get ZSIZE longlong MEMORY_FILE2
get SIZE longlong MEMORY_FILE2
get ZIP long MEMORY_FILE2
goto NAME_OFF MEMORY_FILE
get NAME string MEMORY_FILE
if FOLDER != "CRC/" # they are not files
set FNAME string FOLDER
string FNAME += NAME
if ZIP == 0
log FNAME OFFSET SIZE
else
# compression 9
callfunction ZIP_DUMP 1 # 1 only for being faster
endif
endif
next i
for i = 0 < SUB_FOLDERS
callfunction EXTRACT
next i
set FOLDER string ""
for i = 0 < NEXT_FOLDERS
callfunction EXTRACT
next i
endfunction
startfunction ZIP_DUMP
log MEMORY_FILE4 0 0
append
for j = 0 < SIZE
math TMP = OFFSET
math TMP += j
goto TMP
get CHUNK_ZSIZE long
get CHUNK_SIZE long
savepos TMP
if CHUNK_ZSIZE == CHUNK_SIZE
log MEMORY_FILE4 TMP CHUNK_SIZE
else
clog MEMORY_FILE4 TMP CHUNK_ZSIZE CHUNK_SIZE
endif
math j += 8
math j += CHUNK_ZSIZE
math j x= 4
next
append
get SIZE asize MEMORY_FILE4
log FNAME 0 SIZE MEMORY_FILE4
endfunction
My Github repo