gpt4 book ai didi

python - 如何使用 python 提取 exe-archive 的内容?

转载 作者:太空宇宙 更新时间:2023-11-03 14:55:59 27 4
gpt4 key购买 nike

我有一个 .exe 安装程序,可以很容易地用 7zip 打开;无需安装即可提取其内容。

我正在使用预编译的 7z.exe 和 python 的 subprocess 来提取它。

import os, subprocess
subprocess.call(r'"7z.exe" x ' + "Installer.exe" + ' -o' + os.getcwd())

但是现在我正在寻找一种纯代码且不依赖于任何外部可执行文件的方法,以提取打包的 exe 的内容。

我试过像 tarfile、PyLZMA、py7zlib 这样的库,但是它们无法提取 exe,或者会提示文件格式无效等。

最佳答案

自解压文件只是一个可执行文件,末尾有一个 7zip 文件。您可以查找存档的所有可能开头并尝试从那里开始解压缩文件句柄:

HEADER = b'7z\xBC\xAF\x27\x1C'

def try_decompressing_archive(filename):
with open(filename, 'rb') as handle:
start = 0

# Try decompressing the archive at all the possible header locations
while True:
handle.seek(start)

try:
return decompress_archive(handle)
except SomeDecompressionException:
# We find the next instance of HEADER, skipping the current one
start += handle.read().index(HEADER, 1)

关于python - 如何使用 python 提取 exe-archive 的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42551098/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com