You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现EXE文件base64编解码及解码后文件不可用问题求助

问题根因
  • 编码脚本逻辑错误:循环读取exe分片时,每次都以wb(覆盖写)模式打开输出的base64文本文件,若原exe大小超过你设定的75232000字节分片阈值,最终输出的txt里只会保留最后一片的编码结果,前面的所有内容都被覆盖丢失,编码结果本身就是不完整的。
  • 解码脚本逻辑完全错误:
    1. 硬编码解码源为字符串"string",根本没有读取编码生成的testoutput.txt文件内容,解码的源数据和你编码的结果毫无关联。
    2. 输出exe时使用w文本模式写入,还将解码得到的二进制字节强行转为字符串写入,文本模式会自动修改换行符等特殊字节,bytes转str的过程也会因编码不匹配丢失大量二进制信息,直接破坏了exe的可执行结构。
修复后的实现代码

编码脚本

import base64

# 用with语句自动管理文件句柄,避免资源泄漏
with open("test.exe", 'rb') as fr, open('testoutput.txt', 'wb') as fw:
    while True:
        piece = fr.read(75232000)
        if not piece:
            break
        fw.write(base64.b64encode(piece))

解码脚本

import base64

# 先读取编码后的文本内容
with open("testoutput.txt", "rb") as f:
    encoded_content = f.read()
# 解码后直接以二进制模式写入exe文件
decoded_bytes = base64.b64decode(encoded_content)
with open("testoutput1.exe", "wb") as exe:
    exe.write(decoded_bytes)
额外注意

如果你的exe文件本身很大,base64编码后体积会膨胀1/3,要确保磁盘空间足够。编码解码完成后可以对比原exe和解码后exe的MD5/SHA哈希值,确认文件完全一致。

内容的提问来源于stack exchange,提问作者user16838936

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:42:03