运行在蛮子程序上强行使用python的python脚本

问题描述 投票:0回答:2

我正在尝试编写一个暴力破解ELF程序的python脚本。我需要在此ELF程序中输入非常大的数字才能使其正常工作。我当前的脚本是:

for x in range(10000000000000,100000000000000000):
        print(x)

然后在命令行上:

python script.py | ./program

我已经确定了2个错误,首先是由于数字的大小,这给了我一个内存错误。第二个是输入后程序继续运行。我需要它输入到程序中,然后结束程序并输入下一个值。

必须保留数字的大小,输入低数字不会破解程序。

python out-of-memory elf brute-force
2个回答
0
投票

我将在Python 3中执行此操作,并使用subprocess子模块:

import subprocess


for x in range(10000000000000, 100000000000000000):
    subprocess.run(f'./program {x}', shell=True)

简单地运行为:

python3 script.py

0
投票

首先生成所有这些数字,将它们连接成一个大字符串(由print隐式添加的换行符分隔,然后最终将此single巨大字符串通过管道传输到程序中。

由于您生成的字符串不适合内存,您的内存不足了。

我猜您想分别测试每个数字,一个接一个。您可以使用python(使用subprocess模块)执行此操作。但是使用bash则简单得多:

for ((a=10000000000000; a <= 100000000000000000 ; a++)); do
    echo $a | ./program
done
© www.soinside.com 2019 - 2024. All rights reserved.