Binary 如何从二进制可执行文件中提取位

Binary 如何从二进制可执行文件中提取位,binary,executable,cat,Binary,Executable,Cat,对于一个研究项目,我需要散列应用程序的“可执行足迹”。我在这个领域没有广泛的知识基础。 例如,我尝试了catbash,stdout打印了gobbledygook。 如何将可执行文件读取为普通的1和0?如果您想从文件中获取二进制表示为位,可以使用以下python脚本调用它,使用python to_binary.py name_of_file import sys def bin(x): return "".join(x & (1 << i) and "1" or "0

对于一个研究项目,我需要散列应用程序的“可执行足迹”。我在这个领域没有广泛的知识基础。 例如,我尝试了
catbash
,stdout打印了gobbledygook。
如何将可执行文件读取为普通的1和0?

如果您想从文件中获取二进制表示为位,可以使用以下python脚本调用它,使用
python to_binary.py name_of_file

import sys

def bin(x):
    return "".join(x & (1 << i) and "1" or "0" for i in range(7,-1,-1)) 

file = open(sys.argv[1], "rb")
contents = file.read()
file.close()

for byte in contents:
    sys.stdout.write(bin(ord(byte)))
sys.stdout.write("\n")
导入系统 def箱(x):
return.“.join(x&(1)可执行文件不包含“正常的1和0”(顺便说一句,称为
二进制)。您必须读取单个字节(现代操作系统上为8位),并将其转换为二进制表示形式以供人眼使用。可执行文件不“可读”像一本书或一个文本文件。看看
uuencode
,它可能会为您的二进制文件提供一个更易于管理的表示(即纯文本)。当然,这是否有用取决于您所说的“可执行封装外形”是什么意思。我尝试了你的代码,它似乎工作正常,当然,尽管我不能确定。我是否正确地假设此脚本每次在同一文件上运行时将返回相同的二进制序列,并且每个可执行文件将返回不同的二进制序列?是的,代码为文件生成位流。对于不同的文件内容,dif已经生成了ferent stream。谢谢。它太完美了。