想修改SWF文件的时候,突然发现全是压缩过的字符,完全不好改,于是只好自己写了个解压脚本。。。
import zlib
# 3个字节(文件标志,CWS 压缩文件,FWS 未压缩文件):43 57 53
# 1个字节(文件版本号):06
# 4个字节(未压缩文件长度):1A 99 D0 00
# 后面全是压缩后的文件
swf_file_name = "./上古神器2完美版.swf"
decompress_swf_file_name = "./上古神器2完美版_decompress.swf"
def decompress_swf(file_name):
decompress_bytes = bytearray()
decompress_bytes.extend(b"\x46\x57\x53")
decompress_bytes.extend(b"\x06")
with open(file_name, "rb") as f:
decompress = zlib.decompressobj()
f.read(4)
decompress_bytes.extend(f.read(4))
file_bytes = f.read(1024)
while file_bytes:
decompress_bytes.extend(decompress.decompress(file_bytes))
file_bytes = f.read(1024)
decompress_bytes.extend(decompress.flush())
with open(decompress_swf_file_name, "wb") as f:
f.write(decompress_bytes)
decompress_swf(swf_file_name)