Advertisement
AldenirLyiz

Multiprocess_Bruteforce.zip

Jun 18th, 2022
764
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.84 KB | None | 0 0
  1. import pyzipper as pz
  2. import os
  3. import multiprocessing
  4. from multiprocessing import Process, Pipe
  5. from time import sleep
  6. from timeit import timeit
  7. from datetime import datetime
  8.  
  9. def checkzip(nome, i_index, f_index, passo, seq, conn):
  10.    
  11.     pid = os.getpid()
  12.     ziper = pz.AESZipFile(nome, 'r', compression=pz.ZIP_DEFLATED, encryption=pz.WZ_AES)
  13.     sequence = seq[i_index: f_index: passo]
  14.     print('PID>>', pid, flush=True)
  15.     for x in sequence:
  16.         try:
  17.             ziper.pwd = str.encode(x)
  18.             ziper.testzip()
  19.             conn.send(x)
  20.             conn.close()
  21.             del(sequence)
  22.             return x
  23.         except:
  24.             continue
  25.     else:
  26.         conn.send('}{')
  27.         conn.close()
  28.         return
  29.  
  30. def ret_perm(t_min, t_max, nome):
  31.     chars = ''
  32.     for c_index in range(26):
  33.         chars += chr(c_index+97)
  34.     for index in range(t_max):
  35.         sequencias = [x for x in chars]
  36.         for subindex in range(index):
  37.             sequencias = [x + i for i in chars for x in sequencias]
  38.  
  39.         if len(sequencias[-1]) >= t_min:
  40.             resultado = mapper(sequencias, nome)
  41.             if 'ok' in str(resultado):
  42.                 return
  43.             else:
  44.                 continue
  45.         else:
  46.             continue
  47.     else: return
  48.  
  49. def mapper(sequencias, nome) -> bool:
  50.     processos = os.cpu_count()
  51.     parent_conn, child_conn = Pipe()
  52.     t_g= len(sequencias)
  53.     t_c= len(sequencias[-1])
  54.     timer = datetime.strftime(datetime.now(), "%H:%M:%S")
  55.     print( f'{timer} \n>> Processando {t_g} Combinacoes de {t_c} digitos')
  56.     container = dict()
  57.    
  58.  
  59.     inicial = 0
  60.     for n in range(processos):
  61.         container[n] = Process( target=checkzip, args=( nome,inicial,-1,processos,sequencias,child_conn))
  62.         inicial += 1
  63.        
  64.     for processo in container.values():
  65.         processo.start()
  66.    
  67.     senha = str(parent_conn.recv())
  68.     if '}' not in senha:
  69.         timer = datetime.strftime(datetime.now(), "%H:%M:%S")
  70.         print(f'{timer} \n>> Senha encontrada: {senha}' )
  71.         for processo in container.values():
  72.             processo.terminate()
  73.         return 'ok'
  74.         wait = multiprocessing.connection.wait()
  75.     else:
  76.         if '}{' in senha:
  77.             timer = datetime.strftime(datetime.now(), "%H:%M:%S")
  78.             print(f'{timer}\nNenhuma combinacao de {t_c} digitos correspondeu.\nEsvaziando Buffer! aguarde...')
  79.             sleep(10)
  80.             return 'continue'
  81.  
  82.  
  83. if __name__ == '__main__':
  84.     timer = timeit( 'ret_perm(4, 5, "master.zip")', setup='from __main__ import ret_perm', number=1 )
  85.     if timer < 60.0:
  86.         print( f'Tempo de Execução: {timer:.2f} Segundos' )
  87.     elif timer >= 3600.0:
  88.         print( f'Tempo de Execução: {timer/60:.2f} Horas' )
  89.     else:
  90.         print( f'Tempo de Execução: {timer/60:.2f} Minutos' )
  91.  
  92.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement