如何提取未知的存档文件?(嗯,“我还活着”PC)

逆向工程 开箱
2021-06-12 04:22:12

我正在尝试提取包含纹理、网格等的游戏文件。我想看看制作纹理模型有多难。我只知道从学校和 youtube 教程中编辑图形的知识,我真的很懒惰,放弃了一些非常快的东西,但我想如果我可以从一开始就开始制作这个游戏,拥有我可以制作的完整文件结构感觉(不像 ninjaripper)也许我可以激励自己这样做。我尝试使用 quickbms 脚本以及来自 xentax 和 zenhax 论坛的一些工具,但是 quickbms 给了我错误,并且该工具什么也没做。我完全是逆向工程的初学者,因为我只是接触它,因为我没有太多事情要做。
我有文件的标题,它是 EPCK,然后我猜下一行是解压缩的文件大小(基于 offzip 扫描,看到几乎所有大小为 131072 的文件)我有引用存档中第一个文件的偏移量?这是 29,我有一部分是每个文件的开头?这是“.x”或“x”。我试图理解 quickbms 脚本,看看我是否可以对其进行一些操作,以及出现错误的原因是什么,但即使我知道它生成了存储偏移量的数组,我还是无法理解错误背后的原因. 长话短说,我需要有关解压缩文件的后续步骤的帮助。我想从一开始就完全理解它,这样我就可以帮助其他初学者,或者我可以停止寻求帮助。我猜' 对我来说真的很难理解,因为这个档案可能是加密的。Quickbms 脚本在第 42 行给出错误。
脚本:https
: //drive.google.com/open?id= 1C1cGRsaY4Kx9xgL4Ov- VYA61wNTqtzC0文件:https : //drive.google.com/open? id =1l2eWZmBwxRe6RraLWQRWBTfkz8zW-PRL

idstring "EPCK"
get DUMMY long
get UNPACKED_SIZE long
get OFFSET long
goto OFFSET
get XSIZE long
get SIZE long
get ZSIZE long
savepos OFFSET
#clog MEMORY_FILE OFFSET ZSIZE SIZE  # unused? zlib compression
math OFFSET += XSIZE
goto OFFSET

endian big
comtype xmemdecompress

get EPCK_SIZE asize
putvarchr MEMORY_FILE UNPACKED_SIZE 0
log MEMORY_FILE 0 0
append
for OFFSET = OFFSET < EPCK_SIZE
    math NEXT_OFFSET = OFFSET
    math SIZE = 0
    for STOP = 0 == 0
        goto NEXT_OFFSET
        get CHUNK_ZSIZE byte
        if CHUNK_ZSIZE == 0xFF
            get CHUNK_SIZE short
            get CHUNK_ZSIZE short
            math STOP = 1
        else
            goto NEXT_OFFSET
            get CHUNK_ZSIZE short
            math CHUNK_SIZE = 0x8000
        endif
        math SIZE += CHUNK_SIZE
        savepos NEXT_OFFSET
        math NEXT_OFFSET += CHUNK_ZSIZE
    next
    math NEXT_OFFSET += 5
    xmath ZSIZE "NEXT_OFFSET - OFFSET"
    clog MEMORY_FILE OFFSET ZSIZE SIZE
    math OFFSET = NEXT_OFFSET
next
append

set NAME string "dump_scc_data.bin"
get SIZE asize MEMORY_FILE
goto 0 MEMORY_FILE
findloc OFFSET binary "\0\0\0\0\0\0\0\0" MEMORY_FILE "" 
if OFFSET == ""
    log NAME 0 SIZE MEMORY_FILE
else
    math OFFSET x= 0x10000
    log MEMORY_FILE2 0 OFFSET MEMORY_FILE
    append
    filexor 0xb7
    xmath TMP "SIZE - OFFSET"
    log MEMORY_FILE2 OFFSET TMP MEMORY_FILE
    append
    filexor ""
    log NAME 0 SIZE MEMORY_FILE2
endif

我还活着 压缩包

0个回答
没有发现任何回复~