Как передать несколько строк в программу Python

1

Просто для удовольствия я сделал очень простую программу Python:

var = "bello"
pas = raw_input("insert password\n")
if(pas==var):
    print("\naccess granted\n")
    print("\ncool information")
else:
    print("\naccess denied")

Теперь я попытался получить доступ к принудительному доступу, используя хруст, с оболочкой на терминале ubuntu:

crunch 1 5 | python pex.py

pex.py - это имя программы. Но это не работает, я подозреваю, что выполнение программы не повторяется, но я не знаю, как заставить эту грубую силу атаковать работу. Вы можете мне помочь? Лучше с полным объяснением.

Теги:

2 ответа

0
Лучший ответ

Первый выход в файл. Это имеет побочное преимущество, которое вы можете проверить, какой хруст сгенерирован. Однако вы можете пропустить файл.

crunch 1 5 >> pas.txt

Загрузите файл в массив окружения (пример BASH 4)

readarray pas_a < ./pas.txt

Выполнять один раз за пароль

   for pas in "${pas_a[@]}"
   do
       ./python pex.py "$pas" &
   done < ./pas.txt

Удалите &, чтобы сделать ее последовательной, а не параллельной.

Очищайте массив из среды, если хотите.

1

Вместо того, чтобы брать raw_input, получите аргументы, переданные при вызове программы с помощью sys.argv.

pas = argv[1]

Затем, когда вы вызываете python pex.py <password>, pas получит значение <password>.

Заметка

Если пароль несколько слов, это не сработает. Вам нужно будет присоединиться к содержимому sys.argv (исключая 0-й элемент, имя программы) с помощью ' '.join().

pas = ' '.join(argv[1:])
  • 0
    Python не должен редактироваться. Питон является поддельным примером. OP намерение состоит в том, чтобы брутить программу. Вы не можете редактировать программу, чтобы сделать ее настраиваемой. Цель состоит в том, чтобы найти способ ввода одного пароля и повторения.
  • 0
    да, я предпочитаю, чтобы вы не редактировали мою программу, чтобы сделать ее более жестокой, это немного похоже на мошенничество

Ещё вопросы

Сообщество Overcoder
Наверх
Меню