• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Странная ошибка zipfile

Vlg

Green Team
02.11.2019
117
1
BIT
19
Hello, world! Я делал брут для зипа и он вроде как работает но! есть какая-то фигнюшка которуюю я не могу объяснить
вот код
Python:
import zipfile
f=open(r'errors.txt','w')
tpas=open(r'passwords.txt','a')
def zipbrut():
      filepath=openfile()
      passwords=genpas()
      for i in passwords:
          print('Try:',i)
          try:
              zipfile.ZipFile(filepath).extractall(pwd=i)
              tpas.write(i)
              rpas.close()
              f.close()
              return print('Password is: ',i)
          except Exception as e:
              if type(e)!=RuntimeError:
                    l=(str(e),i)
                    f.write(str(l))
                    continue
              print(e)
              print('Fuck!')
              continue
          
def genpas():
     passwords=list()
     print('What is range? \n 1.range 0-10000 \n 2.range 999-10000 \n 3.range 0-100000 \n 4.My range(x-x)')
     p=input('Num:')
     if int(p)==1:
         rpas=[0,10000]
         passwords=[str(i).encode() for i in range(rpas[0],rpas[1])]
         return passwords
     elif int(p)==2:
         rpas=[999,10000]
         passwords=[str(i).encode() for i in range(rpas[0],rpas[1])]
         return passwords
     elif int(p)==3:
         rpas=[0,100000]
         passwords=[str(i).encode() for i in range(rpas[0],rpas[1])]
         return passwords
     elif int(p)==4:
         rpas=input('Write like:x-x \nWrite:').split('-')
         passwords=[str(i).encode() for i in range(int(rpas[0]),int(rpas[1]))]
         return passwords

def openfile():
      while True:
       filepath=input('Path: ')
       if zipfile.is_zipfile(filepath)==True:
            print('Well done')
            return filepath
       else:
             print('File not found or not is zip')
             continue
zipbrut()

повторюсь вроде все работает но...
он выдает ошибки
Error -3 while decompressing data: invalid distance too far back
b'62' - это значение пароля
Error -3 while decompressing data: invalid stored block lengths
b'452'
Error -3 while decompressing data: invalid distance too far back
b'558'
Error -3 while decompressing data: invalid code lengths set
b'778'
Error -3 while decompressing data: invalid code lengths set
b'892'
загадочно...
оу! мне еще кое что нужно
процесс распоковки архива очень долгий а в нем всего то один трек весом менее 8мб
 

Crazy Jack

Well-known member
08.07.2017
573
89
BIT
35
ZipFile.extractall(path=None, members=None, pwd=None)

зачем тебе все распаковывать, тесть на 1 файле
ZipFile.extract(member, path=None, pwd=None)
 

Vlg

Green Team
02.11.2019
117
1
BIT
19
ZipFile.extractall(path=None, members=None, pwd=None)

зачем тебе все распаковывать, тесть на 1 файле
ZipFile.extract(member, path=None, pwd=None)
По идее мне неизвестно сколько там файлов находится, но это не проблема. Вопрос другой. Когда я перебираю пароль для файла, то при одном и том же значениях выводится ошибка.
Как видишь я написал при каких паролях выходит неизвестная мне ошибка(62,452,558 и др. значения паролей выводят ошибку)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!