求大佬帮忙,游戏是亮剑
【超级会员V3】通过百度网盘分享的文件:亮剑.zip
链接:百度网盘 请输入提取码
复制这段内容打开「百度网盘APP 即可获取」
里面文件开头如图
请大佬帮忙看下文件格式内容,帮忙处理解决一下。谢谢
求大佬帮忙,游戏是亮剑
【超级会员V3】通过百度网盘分享的文件:亮剑.zip
链接:百度网盘 请输入提取码
复制这段内容打开「百度网盘APP 即可获取」
里面文件开头如图
帖子莫沉
感觉加密相同。。。。。
另外,不是很懂你们乱顶做什么,如果有人看到了或者感兴趣了会来回复
嗯嗯,好的,后面我会注意。谢谢大佬
失败了,文件删除文件头不行
看起来不同游戏之间还不一样,这个用了双缓冲区
import texture2ddecoder
import lz4.block
import struct
from PIL import Image
class LZ4StreamDecoder:
def __init__(self):
self.dictionary = b""
self.buffer_size = 0x4000
def decompress_continue(self, compressed_data, compressed_size):
if compressed_size == 0:
return b"", True
decompressed = lz4.block.decompress(
compressed_data,
uncompressed_size=self.buffer_size,
dict=self.dictionary
)
self.dictionary = decompressed
return decompressed, True
def block_decompress(stream_decoder, data_ptr, compressed_size_ptr):
if len(data_ptr) < 4:
return b"", 4, False
compressed_size = struct.unpack('<I', data_ptr[:4])[0]
bytes_consumed = 4
if compressed_size == 0:
return b"", bytes_consumed, True
if len(data_ptr) < 4 + compressed_size:
return b"", bytes_consumed, False
compressed_block = data_ptr[4:4 + compressed_size]
bytes_consumed += compressed_size
decompressed_data, success = stream_decoder.decompress_continue(
compressed_block, compressed_size
)
return decompressed_data, bytes_consumed, success
def init_with_lz4_etc2_data(compressed_data):
stream_decoder = LZ4StreamDecoder()
total_uncompressed_size = struct.unpack('<I', compressed_data[4:8])[0]
output_buffer = bytearray()
current_pos = 8
buffer_index = 0
while current_pos < len(compressed_data):
remaining_data = compressed_data[current_pos:]
decompressed_chunk, bytes_consumed, success = block_decompress(
stream_decoder, remaining_data, None
)
current_pos += bytes_consumed
if len(decompressed_chunk) == 0:
break
output_buffer.extend(decompressed_chunk)
buffer_index = (buffer_index + 1) % 2
if len(output_buffer) > total_uncompressed_size:
output_buffer = output_buffer[:total_uncompressed_size]
return bytes(output_buffer)
def get_pkm_width(pkm_data):
if len(pkm_data) < 16:
return 0
return struct.unpack('>H', pkm_data[8:10])[0]
def get_pkm_height(pkm_data):
if len(pkm_data) < 16:
return 0
return struct.unpack('>H', pkm_data[10:12])[0]
def get_pkm_format(pkm_data):
if len(pkm_data) < 16:
return 0
return struct.unpack('>H', pkm_data[6:8])[0]
def init_with_etc2_data(pkm_data, data_size):
width = get_pkm_width(pkm_data)
height = get_pkm_height(pkm_data)
etc_format = get_pkm_format(pkm_data)
if etc_format in [2, 3, 4, 10, 11]:
mode = "RGBA"
decoder_func = texture2ddecoder.decode_etc2a8
elif etc_format in [1, 9]:
mode = "RGB"
decoder_func = texture2ddecoder.decode_etc2
else:
print(f"不支持的ETC格式: {etc_format}")
return None
decoded_pixels = decoder_func(pkm_data[16:], width, height)
image = Image.frombytes(mode, (width, height), decoded_pixels)
return image
def decrypt(input_file, output_file):
with open(input_file, "rb") as f:
compressed_data = f.read()
pkm_data = init_with_lz4_etc2_data(compressed_data)
image = init_with_etc2_data(pkm_data, len(pkm_data))
image.save(output_file, 'PNG')
return True
if __name__ == "__main__":
decrypt("gn_tb_216.png", "dec.png")
Traceback (most recent call last):
File “F:\BaiduNetdiskDownload\亮剑\assets\res\1.py”, line 1, in
import texture2ddecoder
ModuleNotFoundError: No module named ‘texture2ddecoder’
佬,这是脚本反应的内容
非二次元的不是很感兴趣。
能跟我说说怎么成功的吗
ModuleNotFoundError: No module named ‘texture2ddecoder’
你但凡百度一下这个报错,或者:
https://www.deepseek.com/
都不会问出这样的问题
百度了,然后又用这个报错修复的脚本,还是不行
pip install texture2ddecoder
这不是脚本的错误啊,是你没有这个模块
嗯呐,安装了模块了,在想办法把脚本改成批量化的命名规律
通过网盘分享的文件:新建文件夹 (3).zip
链接: 百度网盘 请输入提取码 提取码: gzyn
–来自百度网盘超级会员v3的分享
成功了一部分 剩下的这些却怎么也不好弄了
1.不需要这么多一块传上来,随便几个样本就行
2.在1的基础上不要用百度网盘,下到天荒地老吗?
试了下lz4那块可能还有点问题,能转换出来,但是不完全,so那些我已经删除了,解密转换逻辑在cocos2d::Image::initWithImageData里面的LZ4ETC2加载函数里面,自己修一修
好,下次我换个网盘吧,cocos2d::Image::initWithImageData里面的LZ4ETC2加载函数这个在哪里查看啊?用ida嘛?
我之前跟着论坛学过xxtea.那种,这种的真第一次遇见。知识盲区了属实