有一个正常运行的 r2pipe 脚本,但需要点击 crtl-c 以在断点附近继续(不是主要问题),但是当破解程序要求用户输入时,脚本不会像在常规 r2 命令行中那样暂停输入. 将输入发送到二进制文件的最佳方式是什么?在可执行文件的末尾附近需要此输入树。即使是第一个也无法管理它来提示。除了输入问题外,脚本没有问题。
import r2pipe
r = r2pipe.open('crackme, flags=['-d'])
r.cmd('e dbg.profile=robot.rr2')
r.cmd('db 0x080486d8;')
print(r.cmd('dc'))
print(r.cmd('dc'))
sep=' '
value1=int(r.cmd('? [ebp+0xc];').split(sep, 1)[0])
value2=int(r.cmd('? [ebp+0x10];').split(sep, 1)[0])
hex_operator=r.cmd('dr eax')
operator=r.cmd('? '+(hex_operator))
if '+' in operator:
answer=value1+value2
elif '-' in operator:
answer=value1-value2
print(r.cmd('dc'))
应该在此处提示输入,但执行仅在“密码是什么”之后结束,或者如果我输入没有 r2pipe 开头的 r2 命令: r2 -d crackme -c "e dbg.profile=robot.rr2" 它确实提示我输入但 rr2 仍然没有输入 input.txt 中的内容
在我的 .rr2 中:
#!/usr/bin/rarun2
试过
input=input.txt
和
stdin=input.txt
input.txt 只是一个字符串
是否可能 rarun 的输入或标准输入指令不兼容或什么的?