我正在尝试在 Python 中使用 r2pipe 摄取二进制文件。通常要做到这一点,你会使用r2pipe.open('file_path')
. 但是我已经将二进制文件加载到内存中(用于其他目的)。有没有办法 r2pipe 可以从内存中摄取二进制文件,而不是从文件路径中读取它?虽然我可以从文件路径中执行此操作,但我已经在内存中有 bin,因此重新加载它似乎是多余的。
下面是我拥有的代码的模型。
import r2pipe
def get_bin(path: str) -> bytes:
with open(path, 'rb') as f:
data = f.read()
return data
def ingest_bin(binary: bytes) -> None:
default_options = ["-e", "bin.cache=true"]
r2 = r2pipe.open(binary, default_options) # This wants a file address not a binary.
r2.cmd('aaa')
def do_stuff_with_bin(binary: bytes) -> None:
pass # irrelevant
if __name__ == '__main__':
binary = get_bin('/bin/ls')
do_stuff_with_bin(binary)
ingest_bin(binary)