Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Douglas Giorgio Fim em (última atualização em 11/03/2010)   [ 4707 hits ]

Login: douglas.giorgio, 357815 pontos

Homepage: http://freebsdwallpapers.blogspot.com/   


Descrição

Este script foi desenvolvido para fazer todas as combinações possíveis de a-z A-Z 0-9 e espaço.

O script está em desenvolvimento, mas está em uma versão estável.

Para o script funcionar corretamente, o nome tem que prevalecer o mesmo, "dgfbrute.py", não que eu queira proteger o nome do script, mas é que ele faz uma verificação antes da execução para verificar os parâmetros.

Uso muito em brute force, pois você não precisa armazenar as senhas em arquivos, que em muitas combinações ocupam muito espaço.

Veja o manual do script chamando o mesmo sem parâmetros:

$ python dgfbrute.py

[ Download: dgfbrute.py ]   [ Enviar nova versão ]

Versões atualizadas deste script (NOVO)
Linux user

Publicado por Douglas Giorgio Fim em 06/03/2010

Changelog: Este script foi desenvolvido para fazer todas as combinações possíveis de a-z A-Z 0-9 e espaço.

O script está em desenvolvimento, mas está em uma versão estável.

Para o script funcionar corretamente, o nome tem que prevalecer o mesmo, "dgfbrute.py", não que eu queira proteger o nome do script, mas é que ele faz uma verificação antes da execução para verificar os parâmetros.

Uso muito em brute force, pois você não precisa armazenar as senhas em arquivos, que em muitas combinações ocupam muito espaço.

Veja o manual do script chamando o mesmo sem parâmetros:

$ python dgfbrute.py

(versão 2)

 

[ Esconder código-fonte ]

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# ______________________________________________________________________
# - Feito por: Douglas Giorgio Fim -                           |
# - E-mail: dgf_skt@hotmail.com -                              |
# - MSN: dgf_skt@hotmail.com -                                 |
# - Programa: dgfbrute.py -                                    |
# - Versao: 1.0 FINAL -                                     |
# -  -                                                   |
# - Este script pode ser alterado e distribuido por qualquer pessoa, -   |
# - desde que este quadro se mantenha inalterado! -                  |
# -  -                                                   |
# - Obs.: Este script foi desenvolvido para gerar todas as -         |
# - combinações possiveis de a-z A-Z 0-9 e espaços. -               |
# ______________________________________________________________________|

import sys

# Exibição do manual
def manual():
   print 'DGF sistens'
   print 'dgfbrute 1.0 FINAL'
   print 'Usage: dgfbrute.py <option> <repetition>'
   print ''
   print ' OPTIONS:'
   print '   1 = a-z'
   print '   2 = A-Z'
   print '   4 = 0-9'
   print '   8 = space'
   print ''
   print '      To make the combinations, you should add the numbers <options> you want to combine'
   print ''
   print '   Ex:'
   print '     For the combination of a-z and A-Z calculate the numbers of options chosen'
   print '      1 + 2 = 3 for a-z and A-Z'
   print '      2 + 4 = 6 for A-Z and 0-9'
   print ''
   print '     For all possible combinations choose the number 15'
   print ''
   print ''
   print ' REPETITION:'
   print ''
   print '   Repetition is the number of columns'
   print '   Ex:'
   print '     $ python dgfbrute.py 4 2'
   print '      0'
   print '      00'
   print '      01'
   print '      02'
   print '      03'
   print '      04'
   print '      05'
   print '      06'
   print '      07'
   print '      08'
   print '      09'
   print '      10'
   print '      11'
   print '      12'
   print '      13'
   print '      14'
   print '      15'
   print '      .'
   print '      .'
   print '      .'
   print '      '
   print 'CREATED BY: Douglas Giorgio Fim      '
   print ''

## Definição das variaveis
# VALOR: 1
letra1 = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
# VALOR: 2
letra2 = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
# VALOR: 4
letra3 = ['0','1','2','3','4','5','6','7','8','9']
# VALOR: 8
letra4 = [' ']

caractere=['']
volta=1
programa=(sys.argv)

# Verifica a existencia da <option> e <repetition>
if sys.argv == ['dgfbrute.py']:
   manual()
   sys.exit()
else:
   try:
      argumento=int(sys.argv[1])
      try:
         repeticao=int(sys.argv[2])
      except:
         sys.exit()
   except:
      print 'Wrong Parameter'
      sys.exit()

# E aqui onde faz as combinações
def funcao(arg1,arg2):
   ANTERIOR=arg1
   TOTAL=arg2
   TOTAL=TOTAL-1
   for num in range(volta):
      for LETRA in caractere[num]:
         MOSTRA=ANTERIOR+LETRA
         print MOSTRA
         if (TOTAL != 0):
            funcao(MOSTRA,TOTAL) # E aqui a chamada da recursividade
# E aqui onde verifica as <options>
if argumento <= 15:
   if argumento == 15:
      caractere=letra1+letra2+letra3+letra4
      volta=63
   else:
      if argumento >= 8:
         caractere=letra4+caractere
         volta=volta+1
         argumento=argumento-8
         if argumento >= 4:
            caractere=letra3+caractere
            volta=volta+10
            argumento=argumento-4
            if argumento >= 2:
               caractere=letra2+caractere
               volta=volta+26
               argumento=argumento-2
               if argumento == 1:
                  caractere=letra1+caractere
                  volta=volta+26
            else:
               if argumento == 1:
                  caractere=letra1+caractere
                  volta=volta+26
         else:
            if argumento >= 2:
               caractere=letra2+caractere
               volta=volta+26
               argumento=argumento-2
               if argumento == 1:
                  caractere=letra1+caractere
                  volta=volta+26
            else:
               if argumento == 1:
                  caractere=letra1+caractere
                  volta=volta+26
      else:
         if argumento >= 4:
            caractere=letra3+caractere
            volta=volta+10
            argumento=argumento-4
            if argumento >= 2:
               caractere=letra2+caractere
               volta=volta+26
               argumento=argumento-2
               if argumento == 1:
                  caractere=letra1+caractere
                  volta=volta+26
            else:
               if argumento == 1:
                  caractere=letra1+caractere
                  volta=volta+26
         else:
            if argumento >= 2:
               caractere=letra2+caractere
               volta=volta+26
               argumento=argumento-2
               if argumento == 1:
                  caractere=letra1+caractere
                  volta=volta+26
            else:
               if argumento == 1:
                  caractere=letra1+caractere
                  volta=volta+26
else:
   print 'Invalid <option> number'

# Chama a função 'funcao' com os valores <repetition>
if repeticao != 0:
   funcao("",repeticao)

Scripts recomendados
   Script Linux recomendado Python, GKT e Konachan.com
   Script Linux recomendado Um Script basico que tenho
   Script Linux recomendado Virus, trojan, sei la o que é isso
   Script Linux recomendado votacao.py 2
   Script Linux recomendado Expressões numéricas

Comentários
[1] Comentário enviado por rafael.alencar em 20/02/2010 - 12:14h:

Olá Douglas,

Você pode obter mais desempenho e um código mais limpo e elegante utilizando o método permutations, que se encontra no módulo itertools, da biblioteca padrão:

http://docs.python.org/library/itertools.html

Abraço.

[2] Comentário enviado por douglas.giorgio em 20/02/2010 - 13:17h:

wow, bacana msm, mas acho que o mais ideal seriao o product

é que na verdade eu tinha isso em shell script, ai portei tudo para python, a logica ainda prevaleceu a mesma

vou dar uma mechida e fazer uns testes de desempenho

vlw

[3] Comentário enviado por douglas.giorgio em 06/03/2010 - 21:53h:

rafael:
modifiquei meu script, agr tem a opção de utilizar o project() mas msm assim a direrença de desempenho foi de alguns milezimos, isso é pq o project() nao faz todas as combinações igual o script que coloquei

acredito que o project é nada mais que uma função, cujo o conteudo seja igual a esse script, a logica deve ser semelhante

soh vou fazer alguns ajustes a mais e ja atualizarei aki no VOL

flw

[4] Comentário enviado por SMarcell em 11/03/2010 - 10:03h:

Só complementando...

Não há necessidade de se utilizar essa quantidade mostruosa de prints, use docstrings

def testaDocStrings():
............... """
............... Estou sendo impresso sem a necessidade de inúmeros prints
............... Use docstrings para auto-documentar módulos, funções, métodos e classes
............... etc... etc...
............... """

Agora basta um:

print testaDocStrings.__doc__

[5] Comentário enviado por douglas.giorgio em 11/03/2010 - 11:46h:

vou dar uma olhada nisso xD, vlw

[6] Comentário enviado por FIx3r em 12/03/2010 - 09:32h:

SMarcell, tentei testar o docstrings que você comentou aqui só que não funcionou.
Tem alguma restrição em relação à versões no python?

[7] Comentário enviado por douglas.giorgio em 23/08/2010 - 12:02h:

tinha feito algumas modificações e iria colocar aki, mas acabou surgindo novas ideias e parei na metade, darei sequencia no script com mais funções


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.