为什么带有 "open" 的精确副本不能生成有效的二进制文件?
why an exact copy with "open" doesn't produce a valid binary file?
我注意到 *.exe 文件的精确副本无法按预期打开二进制文件:
with open("input.exe", "rb") as f1:
bs = f1.read()
with open("output.exe", "wb") as f2:
# Copy byte by byte
f2.write(bs)
生成的“output.exe”在启动时崩溃。
我知道我在这里很含糊,但从理论的角度来看,我是否遗漏了什么?我什至检查过,两个文件的 md5 校验和相同,但仍然“input.exe”运行,而“output.exe”不运行。
P.S。一开始我想将“input.exe”编码为一个txt文件,然后将其解码回二进制文件,但最后问题归结为上面的代码。
P.S 相同的代码适用于其他文件类型,例如图像 (*.jpg)
我发现了问题,输出文件名应该有一个特定的名称。
我注意到 *.exe 文件的精确副本无法按预期打开二进制文件:
with open("input.exe", "rb") as f1:
bs = f1.read()
with open("output.exe", "wb") as f2:
# Copy byte by byte
f2.write(bs)
生成的“output.exe”在启动时崩溃。 我知道我在这里很含糊,但从理论的角度来看,我是否遗漏了什么?我什至检查过,两个文件的 md5 校验和相同,但仍然“input.exe”运行,而“output.exe”不运行。
P.S。一开始我想将“input.exe”编码为一个txt文件,然后将其解码回二进制文件,但最后问题归结为上面的代码。
P.S 相同的代码适用于其他文件类型,例如图像 (*.jpg)
我发现了问题,输出文件名应该有一个特定的名称。