ZenHAX

Free Game Research Forum | Official QuickBMS support | twitter @zenhax | SSL HTTPS://zenhax.com
It is currently Mon Jul 16, 2018 6:35 pm

All times are UTC




Post new topic  Reply to topic  [ 1 post ] 
Author Message
PostPosted: Fri Apr 06, 2018 3:31 pm 

Joined: Fri Apr 06, 2018 3:18 pm
Posts: 6
I had one bms script for jx3.online
it's extractor all files when I select one .DAT,it's too many files,but i just want to get some files,like .xml or .txt or .png
can someone help me to edit this script and let it do this?
I will pay for this $10
:cry:
Email:109789451@qq.com
My English is not very good. :roll:
Code:
# JX3 Online new (script 0.1.2)
#   This script is completely heuristic because there is a sort of padding (0xce byte) between the files
#   If you use quickbms.exe the tool will use a particular way to guess if the current position is
#   correct, while if you use quickbms_4gb_files it will use another one... yes it's a total work-around.
# script for QuickBMS http://quickbms.aluigi.org

comtype lzo1x
get FULLSIZE asize

get NAME basename
strlen i NAME
for i -= 1 >= 0
    getvarchr TMP NAME i
    if TMP < '0' || TMP > '9'
        break
    endif
next i -= 1
math i += 1
string NAME <<= i
math BASE_GUESS = NAME  # not used at the moment

math TMP = 0x10000000
math TMP *= 16
math QUICKBMS64 = 0
if TMP != 0
    math QUICKBMS64 = 1
endif

math BASE_OFF = 0
math FILE_NUM = 0
math CHECK_SIZE = FULLSIZE
math CHECK_SIZE -= 40
for OFFSET = 0 u< CHECK_SIZE
    # you will receive an error, ignore it
    goto OFFSET
    do
        get TMP byte
    while TMP == 0xce
    goto -1 0 SEEK_CUR
    savepos MYENTRY_OFF

    # offset guessed, this is a work-around used in both quickbms64 and 32
    for
        getdstring DUMMY 0xc
        getdstring SIZE 5
        get SIZE2 threebyte
        getdstring ENTRY_OFF 5
        get ENTRY_OFF2 threebyte    # 40 bits grants over 1500 package.dat
        if SIZE2 == 0 && ENTRY_OFF2 == 0
            break
        endif
        math MYENTRY_OFF -= 1
        goto MYENTRY_OFF
    next
    goto MYENTRY_OFF
   
    # offset guessed, this is a work-around
    for
        getdstring DUMMY 0xc
        get SIZE longlong
        get ENTRY_OFF longlong
        math ENTRY_OFF -= BASE_OFF
        if ENTRY_OFF == 0
            break
        elif ENTRY_OFF == MYENTRY_OFF
            break
        elif ENTRY_OFF u>= FULLSIZE # multi packages
            break
        endif
        math MYENTRY_OFF -= 1
        goto MYENTRY_OFF
    next
    if ENTRY_OFF u>= FULLSIZE
        if FILE_NUM == 0
            if QUICKBMS64 != 0
                math BASE_OFF = ENTRY_OFF
            endif
        endif
    endif
   
    get ZSIZE longlong
    get ZIP long
    getdstring DUMMY 0x10
    savepos OFFSET
    if ZIP == 0
        log "" OFFSET SIZE
    elif ZIP == 1
        clog "" OFFSET ZSIZE SIZE
    else
        # unknown
        log "" OFFSET ZSIZE
    endif
    math OFFSET += ZSIZE
    math FILE_NUM += 1
next



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

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