hit - heroes of incredible 0.hrs can/t unpack!!

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
JackDev
Posts: 39
Joined: Tue Dec 26, 2017 6:36 am

hit - heroes of incredible 0.hrs can/t unpack!!

Post by JackDev »

The game is hit - heroes of incredible, the bms used is 0.8.1, bms script is unreal_tournament_4.bms, unzip the object is 0.hrs, but the error, see the picture. How to solve,plz? :o
error.png
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: hit - heroes of incredible 0.hrs can/t unpack!!

Post by aluigi »

I have updated the script to 0.4.12, try it.
JackDev
Posts: 39
Joined: Tue Dec 26, 2017 6:36 am

Re: hit - heroes of incredible 0.hrs can/t unpack!!

Post by JackDev »

aluigi wrote:I have updated the script to 0.4.12, try it.


thanks bro! but where can i find the script of 0.4.12,I searched for the forum and did not see it!
JackDev
Posts: 39
Joined: Tue Dec 26, 2017 6:36 am

Re: hit - heroes of incredible 0.hrs can/t unpack!!

Post by JackDev »

aluigi wrote:I have updated the script to 0.4.12, try it.


i find the 0.4.12 script,but also the problem!


QuickBMS generic files extractor and reimporter 0.8.1
by Luigi Auriemma
e-mail: me@aluigi.org
web: aluigi.org
(Sep 9 2017 - 00:45:49)

quickbms.aluigi.org Homepage
zenhax.com ZenHAX Forum
@zenhax Twitter & Scripts

- GUI mode activated, remember that the tool works also from command-line
where are available various options like folder scanning, filters and so on

- select the BMS script to use
- select the input archives/files to extract, type * or "" for whole folder and
subfolders
- select the output folder where extracting the files
- open input file F:\0.hrs
- open script D:\unreal_tournament_4.bms
- set output folder F:\UE4Game\123

offset filesize filename
--------------------------------------
00000038 882 Engine/Plugins/2D/Paper2D/Paper2D.uplugin

Error: the compressed zlib/deflate input is wrong or incomplete (-3)
Info: algorithm 1
offset 00000038
input size 0x00000180 384
output size 0x00000372 882
result 0xffffffff -1

Error: the uncompressed data (-1) is bigger than the allocated buffer (882)

Last script line before the error or that produced the error:
153 clog NAME OFFSET ZSIZE SIZE

Press ENTER or close the window to quit
godskin
Posts: 192
Joined: Sun Oct 04, 2015 2:27 am

Re: hit - heroes of incredible 0.hrs can/t unpack!!

Post by godskin »

you worng working for me
JackDev
Posts: 39
Joined: Tue Dec 26, 2017 6:36 am

Re: hit - heroes of incredible 0.hrs can/t unpack!!

Post by JackDev »

godskin wrote:you worng working for me



Have you solved it?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: hit - heroes of incredible 0.hrs can/t unpack!!

Post by aluigi »

That error is strange because nobody reported problems till now.
Anyway use this script on 0.hrs to generate 2 files and upload them:
http://aluigi.org/bms/filecutter.bms
JackDev
Posts: 39
Joined: Tue Dec 26, 2017 6:36 am

Re: hit - heroes of incredible 0.hrs can/t unpack!!

Post by JackDev »

aluigi wrote:That error is strange because nobody reported problems till now.
Anyway use this script on 0.hrs to generate 2 files and upload them:
http://aluigi.org/bms/filecutter.bms


thanks ,bro! i update the 2 files by this link:https://www.dropbox.com/s/sfbg478lto8c5rh/hrs.zip?dl=0
godskin
Posts: 192
Joined: Sun Oct 04, 2015 2:27 am

Re: hit - heroes of incredible 0.hrs can/t unpack!!

Post by godskin »

aluigi wrote:That error is strange because nobody reported problems till now.
Anyway use this script on 0.hrs to generate 2 files and upload them:
http://aluigi.org/bms/filecutter.bms



That Worknig

Code: Select all

# Unreal Engine 4 - Unreal Tournament 4 (*WindowsNoEditor.pak) (script 0.4.3b)
# script for QuickBMS http://quickbms.aluigi.org

# set your AES_KEY here as text or C string ("\x11\x22...")
set AES_KEY binary ""
putarray 10 -1 "KIWIKIWIKIWIKIWIKIWIKIWIKIWIKIWI"   # first beta of Street Fighter V
putarray 10 -1 "_aS4mfZK8M5s5KWC2Lz2VsFnGKI7azgl"   # current version of Street Fighter V
putarray 10 -1 "bR!@nbR0wnc@rychR!$d@nd@v3d3R3kj!mj0$hk3v!nm!ch@3lm!k3s3@nst3v3t!m" # Victory: The Culling
putarray 10 -1 "casd#55@#$%323!$^#b%05sa5W|hhaf4365s52ss51|55m!|{55s^@@36f233|-|0w@%3g8hssDk35/!Nm|_|%ds23%a32d5&23as3%12p|-|y$t3ds562d23fav3c@dyw38#49" # Victory: The Culling
putarray 10 -1 "C8C4847F3B4FA52D4AAD57A52358CDBC"   # Injustice 2 (iOS)
putarray 10 -1 ""
math AES_KEY_IS_SET = 0

# 1 = HIT
math WORKAROUND = 0

goto -0x2c
get MAGIC long  #idstring "\xe1\x12\x6f\x5a" # 0x5a6f12e1
if MAGIC == 0x5a6f12e1
    # ok
elif MAGIC == 0xe1126f5a
    endian big
else
    # HIT game 0x1233a
    math WORKAROUND = 1
endif
get VERSION long
get OFFSET longlong
get SIZE longlong
getdstring HASH 20
if WORKAROUND == 1
    math VERSION = 3
endif

goto OFFSET
callfunction GET_NAME 1
get FILES long

for i = 0 < FILES
    callfunction GET_NAME 1
    savepos TMP_OFF

    get OFFSET longlong
    get ZSIZE longlong
    get SIZE longlong
    get ZIP long
    if WORKAROUND == 1
        getdstring HASH 20
    elif VERSION <= 1
        get TSTAMP longlong
    endif
    getdstring HASH 20
    math CHUNKS = 0
    math ENCRYPTED = 0
    if VERSION >= 3
        if ZIP != 0
            get CHUNKS long
            for x = 0 < CHUNKS
                get CHUNK_OFFSET longlong
                get CHUNK_END_OFFSET longlong
                putarray 0 x CHUNK_OFFSET
                putarray 1 x CHUNK_END_OFFSET
            next x
        endif
        get ENCRYPTED byte
        get CHUNK_SIZE long
    endif
    if WORKAROUND == 1
        math ENCRYPTED = 0
    endif

    comtype copy    # for AES
    if ZIP & 1
        comtype zlib
    elif ZIP & 2
        comtype gzip
    elif ZIP & 4
        comtype snappy
    endif

    if CHUNKS > 0
        putvarchr MEMORY_FILE SIZE 0
        log MEMORY_FILE 0 0
        append
        for x = 0 < CHUNKS
            getarray CHUNK_OFFSET 0 x
            getarray CHUNK_END_OFFSET 1 x
            math CHUNK_ZSIZE = CHUNK_END_OFFSET
            math CHUNK_ZSIZE - CHUNK_OFFSET
            if ENCRYPTED != 0
                callfunction SET_AES_KEY 1
                math CHUNK_ZSIZE x 16
            endif
            clog MEMORY_FILE CHUNK_OFFSET CHUNK_ZSIZE CHUNK_SIZE
        next x
        append
        encryption "" ""
        log NAME 0 SIZE MEMORY_FILE
    else
        # the file offset points to an entry containing
        # the "same" OFFSET ZSIZE SIZE ZIP HASH ZERO fields,
        # just an additional backup... so let's skip them
        savepos BASE_OFF
        math BASE_OFF - TMP_OFF
        math OFFSET += BASE_OFF
        if ENCRYPTED != 0
            callfunction SET_AES_KEY 1
            math ZSIZE x 16
        endif
        clog NAME OFFSET ZSIZE SIZE
        encryption "" ""
    endif
next i

startfunction SET_AES_KEY_ASK
    math AES_KEY_IS_SET = 1
    print "The archive is encrypted, select the number of the key to use or type yours:"
    for z = 0
        getarray KEY 10 z
        if KEY == ""
            break
        endif
        print "%z%: %KEY%"
    next z
        print "%z%: press RETURN for no encryption (Lineage 2 Revolution)"
    set KEY unknown "???"
    strlen TMP KEY
    if KEY == ""
        math AES_KEY_IS_SET = -1
        set AES_KEY string "no key, encryption disabled"
    elif TMP <= 2
        getarray AES_KEY 10 KEY
    else
        set AES_KEY binary KEY
    endif
    print "KEY: %AES_KEY%"
endfunction

startfunction SET_AES_KEY
    if AES_KEY_IS_SET == 0
        callfunction SET_AES_KEY_ASK 1
    endif
    if AES_KEY_IS_SET > 0
        encryption aes AES_KEY "" 0 32
    endif
endfunction

startfunction GET_NAME
    get NAMESZ signed_long
    if NAMESZ >= 0
        getdstring NAME NAMESZ
    else
        math NAMESZ n NAMESZ
        math NAMESZ * 2
        getdstring NAME NAMESZ
        set NAME unicode NAME
    endif
endfunction
JackDev
Posts: 39
Joined: Tue Dec 26, 2017 6:36 am

Re: hit - heroes of incredible 0.hrs can/t unpack!!

Post by JackDev »

godskin wrote:
aluigi wrote:That error is strange because nobody reported problems till now.
Anyway use this script on 0.hrs to generate 2 files and upload them:
http://aluigi.org/bms/filecutter.bms



That Worknig

Code: Select all

# Unreal Engine 4 - Unreal Tournament 4 (*WindowsNoEditor.pak) (script 0.4.3b)
# script for QuickBMS http://quickbms.aluigi.org

# set your AES_KEY here as text or C string ("\x11\x22...")
set AES_KEY binary ""
putarray 10 -1 "KIWIKIWIKIWIKIWIKIWIKIWIKIWIKIWI"   # first beta of Street Fighter V
putarray 10 -1 "_aS4mfZK8M5s5KWC2Lz2VsFnGKI7azgl"   # current version of Street Fighter V
putarray 10 -1 "bR!@nbR0wnc@rychR!$d@nd@v3d3R3kj!mj0$hk3v!nm!ch@3lm!k3s3@nst3v3t!m" # Victory: The Culling
putarray 10 -1 "casd#55@#$%323!$^#b%05sa5W|hhaf4365s52ss51|55m!|{55s^@@36f233|-|0w@%3g8hssDk35/!Nm|_|%ds23%a32d5&23as3%12p|-|y$t3ds562d23fav3c@dyw38#49" # Victory: The Culling
putarray 10 -1 "C8C4847F3B4FA52D4AAD57A52358CDBC"   # Injustice 2 (iOS)
putarray 10 -1 ""
math AES_KEY_IS_SET = 0

# 1 = HIT
math WORKAROUND = 0

goto -0x2c
get MAGIC long  #idstring "\xe1\x12\x6f\x5a" # 0x5a6f12e1
if MAGIC == 0x5a6f12e1
    # ok
elif MAGIC == 0xe1126f5a
    endian big
else
    # HIT game 0x1233a
    math WORKAROUND = 1
endif
get VERSION long
get OFFSET longlong
get SIZE longlong
getdstring HASH 20
if WORKAROUND == 1
    math VERSION = 3
endif

goto OFFSET
callfunction GET_NAME 1
get FILES long

for i = 0 < FILES
    callfunction GET_NAME 1
    savepos TMP_OFF

    get OFFSET longlong
    get ZSIZE longlong
    get SIZE longlong
    get ZIP long
    if WORKAROUND == 1
        getdstring HASH 20
    elif VERSION <= 1
        get TSTAMP longlong
    endif
    getdstring HASH 20
    math CHUNKS = 0
    math ENCRYPTED = 0
    if VERSION >= 3
        if ZIP != 0
            get CHUNKS long
            for x = 0 < CHUNKS
                get CHUNK_OFFSET longlong
                get CHUNK_END_OFFSET longlong
                putarray 0 x CHUNK_OFFSET
                putarray 1 x CHUNK_END_OFFSET
            next x
        endif
        get ENCRYPTED byte
        get CHUNK_SIZE long
    endif
    if WORKAROUND == 1
        math ENCRYPTED = 0
    endif

    comtype copy    # for AES
    if ZIP & 1
        comtype zlib
    elif ZIP & 2
        comtype gzip
    elif ZIP & 4
        comtype snappy
    endif

    if CHUNKS > 0
        putvarchr MEMORY_FILE SIZE 0
        log MEMORY_FILE 0 0
        append
        for x = 0 < CHUNKS
            getarray CHUNK_OFFSET 0 x
            getarray CHUNK_END_OFFSET 1 x
            math CHUNK_ZSIZE = CHUNK_END_OFFSET
            math CHUNK_ZSIZE - CHUNK_OFFSET
            if ENCRYPTED != 0
                callfunction SET_AES_KEY 1
                math CHUNK_ZSIZE x 16
            endif
            clog MEMORY_FILE CHUNK_OFFSET CHUNK_ZSIZE CHUNK_SIZE
        next x
        append
        encryption "" ""
        log NAME 0 SIZE MEMORY_FILE
    else
        # the file offset points to an entry containing
        # the "same" OFFSET ZSIZE SIZE ZIP HASH ZERO fields,
        # just an additional backup... so let's skip them
        savepos BASE_OFF
        math BASE_OFF - TMP_OFF
        math OFFSET += BASE_OFF
        if ENCRYPTED != 0
            callfunction SET_AES_KEY 1
            math ZSIZE x 16
        endif
        clog NAME OFFSET ZSIZE SIZE
        encryption "" ""
    endif
next i

startfunction SET_AES_KEY_ASK
    math AES_KEY_IS_SET = 1
    print "The archive is encrypted, select the number of the key to use or type yours:"
    for z = 0
        getarray KEY 10 z
        if KEY == ""
            break
        endif
        print "%z%: %KEY%"
    next z
        print "%z%: press RETURN for no encryption (Lineage 2 Revolution)"
    set KEY unknown "???"
    strlen TMP KEY
    if KEY == ""
        math AES_KEY_IS_SET = -1
        set AES_KEY string "no key, encryption disabled"
    elif TMP <= 2
        getarray AES_KEY 10 KEY
    else
        set AES_KEY binary KEY
    endif
    print "KEY: %AES_KEY%"
endfunction

startfunction SET_AES_KEY
    if AES_KEY_IS_SET == 0
        callfunction SET_AES_KEY_ASK 1
    endif
    if AES_KEY_IS_SET > 0
        encryption aes AES_KEY "" 0 32
    endif
endfunction

startfunction GET_NAME
    get NAMESZ signed_long
    if NAMESZ >= 0
        getdstring NAME NAMESZ
    else
        math NAMESZ n NAMESZ
        math NAMESZ * 2
        getdstring NAME NAMESZ
        set NAME unicode NAME
    endif
endfunction



thanks bro! it's worked!
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: hit - heroes of incredible 0.hrs can/t unpack!!

Post by aluigi »

Script 0.4.13 fixes the problem.
JackDev
Posts: 39
Joined: Tue Dec 26, 2017 6:36 am

Re: hit - heroes of incredible 0.hrs can/t unpack!!

Post by JackDev »

aluigi wrote:Script 0.4.13 fixes the problem.

thanks ,bro!
WollieWoltaz
Posts: 41
Joined: Mon Dec 04, 2017 5:48 pm

Re: hit - heroes of incredible 0.hrs can/t unpack!!

Post by WollieWoltaz »

Could someone upload the newest .hrs file after the latest update?
Would really appreciate it,

Thanks,