Так что я написал эту программу, чтобы BruteForce почтовый файл в Python:Bruteforcing зип файл дает странные результаты
def Main():
parser = argparse.ArgumentParser()
parser.add_argument("zfile", help = "The encrypted zip file you wish to crack")
parser.add_argument("length", help="Define the max length of password combinations you want to bruteforce")
args = parser.parse_args()
zFile = zipfile.ZipFile(args.zfile)
keywords = [''.join(i) for i in itertools.product(ascii_lowercase, repeat = int(args.length))]
for i in keywords:
print "[*] Testing password: "+i
try:
zFile.extractall(pwd = str(i))
print "[+] Password Found: "+i
break
except:
pass
if __name__ == '__main__':
Main()
Но это необычно ведет себя .... У меня есть архив, в котором установлен пароль «собака», и когда я запускаю программу, он находит целую кучу паролей, которые якобы «работают», но на самом деле не работают. Если я вручную введу эти пароли в zip-файл, он извлечет поврежденный файл. Программа говорит, что пароли, такие как «aqw», будут работать, и их было немало. Самая странная часть заключалась в том, что программа не выйдет из цикла for после того, как она сообщит, что один из этих неработающих паролей будет работать.
Я понятия не имею, что происходит!
У меня есть два вопроса об этом предложении: «Если я ввожу вручную такие пароли в zip-файл, он извлекает поврежденный файл». (1) что вы подразумеваете, введя пароль в zip-файл? Я бы подумал, что пароль вводится в программу, а не в zip-файл; программа извлекает данные из файла. Какой программой ты пользуешься? (2) Что такое «это», которое извлекает поврежденный файл? Ваша программа, указанная в списке, ничего не печатает, когда пробный пароль выходит из строя. Вы уверены, что это когда-нибудь случится? –
Хорошо, позвольте мне перефразировать все это. У меня есть архив, и когда я пытаюсь распаковать его с помощью Stuffit Expander, он запрашивает у меня пароль. Я знаю, что пароль «собака». Однако, когда я запускаю свой скрипт, он выводит несколько других паролей, таких как «aqw» или «how» (например, программа будет печатать «[+] Password Found: how»), заявив, что они будут работать, когда я попытаюсь разверните zip-файл. Когда я ввожу эти пароли в Stuffit Expander, они фактически извлекут zip-файл, но извлеченный файл будет поврежден. Извините, я сделал эту массивную опечатку –
, спасибо, имеет смысл сейчас. Я не уверен, что у вас проблема с Python, поскольку Stuffit Expander и Python совместимы: ни один из них не дает вам неверный результат пароля, когда он должен. Я посмотрел на zipfile.py-код (стандартная библиотека Python), и он использует что-то, называемое _ZipDecrypter, написанное на чистом Python. Когда он терпит неудачу, вы получаете RuntimeException («Плохой пароль для файла»), но он не очень сложный. Возможно, просмотр источника библиотеки даст вам ключ. Странная проблема. –