抱歉这个可能很愚蠢的问题。我是 Angr 的新手,遇到了一个小问题/问题。所以,假设我有一个二进制程序“mybinary”,我在其中输入一些内容,它会执行一些操作并检查它以找到一个标志。(正常的crackme风格。)
但是,程序第一次运行时需要一个字符串 tid 输入。我有 tid,它只是一个 32 位的字母和数字字符串。
因此,要运行它,而不是“./mybinary”,我必须执行“./mybinary 'tid string'”。
在将文件加载到 Angr 项目的上下文中,我该怎么做?
就像,如果我的 angr 代码类似于:
import angr
import claripy
#Whatever variables.
base_addr = #Whatever the base address is.
proj = angr.Project("./mybinary", main_opts={'base_addr': base_addr})
#Some code for defining flag characters.
state = proj.factory.full_init_state(
args=['./mybinary'],
add_options=angr.options.unicorn,
stdin=flag,
)
#Some code to create and run simulation with success and failure.
我如何编辑它以使其运行“./mybinary 'tid string'” 而不仅仅是“./mybinary”?
请并感谢您的帮助!