Crack-wifi.com FORUM

LE FORUM DU SITE

Wifi, Backtrack, crack WEP et WPA...

Vous n'êtes pas identifié(e).  

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

#1 09-04-2011 13:39:25

kcdtv
Membre d'honneur
Lieu : Internacionaluña
Inscription : 31-03-2010
Messages : 4 246

Comment limiter la répétition des caractères?

Je cherche depuis quelques jours et je n'arrive pas à trouver comment limiter la répéticion des caractères dans un diccionaire.
Je voudrais créer un dico pour reds orange_xxxx d'Espagne où on ne retrouve pas plus de 3 fois le même caractère dans un pass.
J'ai essayé avec Crunch 2,9 mais je n'arrive pas à rencontrer une façon de le faire.
Je cherche aussi la façon de procédé pour que si un caractères se répète 3 fois, les combinaisons où les trois sont côte à côte soient éliminées.
Pensez vous qu'avec crunch c'est possible?
Sinon quel programe devrais-je utiliser?

Hors Ligne

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

#2 09-04-2011 14:03:10

antares145
Membre d'honneur
Inscription : 29-09-2009
Messages : 5 199
Site Web

Re : Comment limiter la répétition des caractères?

Avec Crunch en tout cas ce n'est pas possible (enfin, pas à ma connaissance). Tu peux utiliser Sed pour ça, mais la seule façon que je connaisse est un peu... compliquée :

cat dico.txt | sed -e '/\([A-Z,0-9]\)\1\{3,\}/d' >> dico_modified.txt
#Remplacer le "3" par le nombre maximum de répétitions autorisées

Avec cette commande, tu lis le fichier dico.txt et tu élimines toutes les lignes qui ont 3 caractères (majuscules ou chiffres) qui se répètent côté à côté + de 3 fois. Tu peux adapter le nombre de répétitions, et aussi utiliser ceci directement avec un pipe :

./crunch 4 4 ABCD | sed -e '/\([A-Z,0-9]\)\1\{2,\}/d'

Par contre, vérifier le nombre de répétitions totales (non successives) c'est sûrement possible mais beaucoup moins facile (puisqu'il faut comparer chaque caractère à tous les autres). Je pense que Sed ou Perl peuvent faire ça, mais je ne sais pas comment et ça risque d'être long...

Hors Ligne

#3 09-04-2011 16:23:06

kcdtv
Membre d'honneur
Lieu : Internacionaluña
Inscription : 31-03-2010
Messages : 4 246

Re : Comment limiter la répétition des caractères?

Merci Antares...
Si je trouve ub moyen de pouvoir limiter la repetition des carchteres dans les pass, je vous fais signe car il me semble que c'est une vraiment une bonne methode pour alleger les diccionaires.

Hors Ligne

#4 12-04-2011 15:39:56

kcdtv
Membre d'honneur
Lieu : Internacionaluña
Inscription : 31-03-2010
Messages : 4 246

Re : Comment limiter la répétition des caractères?

Je viens de rencontrer un script en perl qui me parrait très, très bien. Il permet de limiter la répéticion d'un caractère, il permet aussi de supprimer les pass avec des symboles qui se suivent...
Il est l'oeuvre de Matteo Redaelli.
Il faut que vous ayez perl installé (vous le trouverez dans le gestauer de paquets synaptic)

#!/usr/bin/perl

=head1 NAME

wg.pl


=head1 AUTHOR

Matteo Redaelli
E-MAIL: [email protected]
WEB:    http://digilander.iol.it/reda


=head1 DESCRIPTION

This is a Word Generator: you can apply some useful options to filter the
words

=head1 USAGE

type   perl wg.pl -h


=head1 HISTORY


2000-01-06: the first lines of this script

2000-01-11 added getopt

2000-01-21: adjusted default parameters

2002-03-05: new option -n

2002-03-06: new option -s

2002-03-07: reorganization of all source code, more documentation



=head1 LICENSE

This package is free software; you can redistribute it and/or
modify it under the same terms as Perl itself, i.e., under the
terms of the "Artistic License" or the "GNU General Public License".


=head1 DISCLAIMER

This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

See the "GNU General Public License" for more details.


=cut

use Getopt::Std;
use strict;
#use integer;

sub char2string
{
# string generator: if I pass 'a' and 5, I'll get 'aaaaa'
        sprintf "%s", @_[0]  x @_[1];
}

sub occurs
{
  my $pat = @_[0];
  my $astring = @_[1];

  my $tot = $astring =~ s/$pat//g;

#       print "tot $tot\n";
#
  return $tot;
}

sub few_repeatitions
{
   my $astring = @_[0];
   my $max = @_[1];
   my $len =  length( $astring );
   my $tot = 0;

   my $mid = int( $len / 2);


   for ( my $step = 2; $step <= $mid; $step++) {
      for ( 0 .. $len - $step ) {
        my $letters = substr( $astring, $_, $step);
#       print "$letters\n";
        $tot = occurs( $letters, $astring);
        return $tot if $tot > $max;
     }
   }
   return 0;
}

sub nple
{
        my $astring = @_[0];
        my $len = length( $astring );
        my $tot = 0;
        my $in = 0;
        my $last = ' ';



       for ( 0 .. $len - 1) {
               my $letter = substr( $astring, $_, 1);

#       print "$astring  $letter $last\n";
                if ( ($letter cmp $last)  == 0) {
#                       print "$letter =  $last, $in, $tot";
                        if ($in == 0) {
                                $in = 1;
                                $tot++;
                        }

                } else {
                        $in = 0;
                }

                $last = $letter;
       }
        return $tot;

}

sub substring
{
        my $string1 = @_[0];
        my $string2 = @_[1];

        $_ = $string2;

        if ( /$string1/ ) {
                return 0;
        }
        else {
                return 1;
        }
}



my %opts;

getopts('a:c:ehl:n:o:r:tu:v:z:',  \%opts);


usage(0) if $opts{'h'};
$opts{'u'} and $opts{'v'} or usage(1);

# setup parameters

my $va_list = $opts{'v'};
my @va_list = split( //, $va_list ); # convert string to an array


my $min_depth = $opts{'l'} ? int($opts{'l'}) : 1;
my $max_depth = $opts{'u'} ? int($opts{'u'}) : 1;

usage(2) if $min_depth > $max_depth;

my $prefix = $opts{'a'} ? $opts{'a'} : '';
my $postfix = $opts{'z'} ? $opts{'z'} : '';
my $max_occurs = $opts{'o'} ? int($opts{'o'}) : $opts{'u'};
my $max_cons = $opts{'c'} ? int($opts{'c'}) : $opts{'u'};
my $max_nple =  $opts{'n'};
my $max_reps =  $opts{'r'};

usage(3) if $min_depth < 1 ||
        $max_depth < 1 ||
        $max_occurs < 1 ||
        $max_cons < 1 ||
        $max_nple < 0 ||
        $max_reps < 0;

if ($opts{'t'}) {
        print "Options:\n";
        foreach my $key (sort keys %opts)
                { print "$key -> $opts{$key}\n"; }
        print "Global vars:\n";
        print_vars();
}


for ($min_depth..$max_depth) {
        wg( $_, "");
}

sub print_vars
{
        print "min_depth = $min_depth\n";
        print "max_depth =  $max_depth\n";
        print "max_occurs = $max_occurs\n";
        print "max_cons = $max_cons\n";
        print "max_nple = $max_nple\n";
        print "max_reps = $max_reps\n";
}

#
# word generator
#
sub wg
{
        my $max_depth = @_[0];
        my $myprefix = @_[1];
        my $elem;
        if ($max_depth == 0 ) {
                print "$prefix$myprefix$postfix\n";
                if ( $opts{e} == 1) {
                        system "$prefix$myprefix$postfix\n";
                }
        }
        else {
#               print " n = $opts{'n'} r = $opts{'r'} \n";
#


#               suggestion: the generation of the words is more variuos if
#               I change the order of the list of the letters (@va_list)

                foreach $elem (@va_list) {

                        my $newstring = "$myprefix$elem";

                        return if ( $opts{'c'} &&
                                 substring(char2string( $elem , $max_cons), $myprefix ) == 0);
                        return if(  $opts{'n'} && nple( $newstring ) > $max_nple);
                        return if(  $opts{'r'} &&
                                few_repeatitions( $newstring, $max_reps) != 0  );
                        return if ( $opts{'o'} && occurs( "$elem", $newstring) > $max_occurs );

                        wg( $max_depth -1, "$myprefix$elem");
                }
        }
}

sub usage
{
        my $rc = @_[0];

        die <<END_USAGE

USAGE: perl $0 options

options are:
        -a string: prefix
        -c number: max consecutive letters (how many consecutive 'a' do you want?)
        -e : submit the output string to the operating system
        -h : help
        -l number: min length of the word
        -o number: max number of occurrencies of a letter
        -n number: max number of n-ple  (AA, BBB, CCC, DDDD)
        -r number: max number of repeatitions (ABCABABBCDBCD has 5 repeatitions: 3 reps of AB and 2 of BCD)
        -t : trace on
        -u number: max length of the word
        -v string: list of valid characters (es, "01" "abcdef")
        -z string: postfix

possible return code are:
        0, ok
        1, not all parameters
        2, min length (-l) is greater than max lenght (-u)
        3, at least one parameter is lower than 1
Return code: $rc
END_USAGE

}

Je l'ai lançé il y a une heure pour un dico de 10 caractères hex avec un maximum de 3 répéticion et de 2 caracteres identiques côtes à côte... ça avance pas mal...
Voici les options qu'il comporte

USAGE: perl wg.pl options

options are:
        -a string: prefix
        -c number: max consecutive letters (how many consecutive 'a' do you want?)
        -e : submit the output string to the operating system
        -h : help
        -l number: min length of the word
        -o number: max number of occurrencies of a letter
        -n number: max number of n-ple  (AA, BBB, CCC, DDDD)
        -r number: max number of repeatitions (ABCABABBCDBCD has 5 repeatitions: 3 reps of AB and 2 of BCD)
        -t : trace on
        -u number: max length of the word
        -v string: list of valid characters (es, "01" "abcdef")
        -z string: postfix

possible return code are:
        0, ok
        1, not all parameters
        2, min length (-l) is greater than max lenght (-u)
        3, at least one parameter is lower than 1
Return code: 1
lenny creadores de diccionarios #

Hors Ligne

#5 15-04-2011 11:58:06

kcdtv
Membre d'honneur
Lieu : Internacionaluña
Inscription : 31-03-2010
Messages : 4 246

Re : Comment limiter la répétition des caractères?

Le script marche bien, le seul problème: le résultat sort en console et on ne peut copier que les 1000 et quelques derniers pass...
Je vous laisse un script modifié pour que le &#341;esultat soit gardés dans un fichier appelé dico.txt qui se situe dans le dossier où vous avez mis le script.
Faîtes attention: lorsque vous relancez le script il écrit directement dans ce fichier. Pour gardez vos dictionaires, renommez vos diccionaires lorsqu'ils sont finis!

#!/usr/bin/perl

=head1 NAME

wg.pl


=head1 AUTHOR

Matteo Redaelli
E-MAIL: [email protected]
WEB: http://digilander.iol.it/reda


=head1 DESCRIPTION

This is a Word Generator: you can apply some useful options to filter the
words

=head1 USAGE

type perl wg.pl -h


=head1 HISTORY


2000-01-06: the first lines of this script

2000-01-11 added getopt

2000-01-21: adjusted default parameters

2002-03-05: new option -n

2002-03-06: new option -s

2002-03-07: reorganization of all source code, more documentation



=head1 LICENSE

This package is free software; you can redistribute it and/or
modify it under the same terms as Perl itself, i.e., under the
terms of the "Artistic License" or the "GNU General Public License".


=head1 DISCLAIMER

This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

See the "GNU General Public License" for more details.


=cut

use Getopt::Std;
use strict;
#use integer;

sub char2string
{
# string generator: if I pass 'a' and 5, I'll get 'aaaaa'
sprintf "%s", @_[0] x @_[1];
}

sub occurs
{
my $pat = @_[0];
my $astring = @_[1];

my $tot = $astring =~ s/$pat//g;

# print "tot $tot\n";
#
return $tot;
}

sub few_repeatitions
{
my $astring = @_[0];
my $max = @_[1];
my $len = length( $astring );
my $tot = 0;

my $mid = int( $len / 2);


for ( my $step = 2; $step <= $mid; $step++) {
for ( 0 .. $len - $step ) {
my $letters = substr( $astring, $_, $step);
# print "$letters\n";
$tot = occurs( $letters, $astring);
return $tot if $tot > $max;
}
}
return 0;
}

sub nple
{
my $astring = @_[0];
my $len = length( $astring );
my $tot = 0;
my $in = 0;
my $last = ' ';



for ( 0 .. $len - 1) {
my $letter = substr( $astring, $_, 1);

# print "$astring $letter $last\n";
if ( ($letter cmp $last) == 0) {
# print "$letter = $last, $in, $tot";
if ($in == 0) {
$in = 1;
$tot++;
}

} else {
$in = 0;
}

$last = $letter;
}
return $tot;

}

sub substring
{
my $string1 = @_[0];
my $string2 = @_[1];

$_ = $string2;

if ( /$string1/ ) {
return 0;
}
else {
return 1;
}
}



my %opts;

getopts('a:c:ehl:n:o:r:tu:v:z:', \%opts);


usage(0) if $opts{'h'};
$opts{'u'} and $opts{'v'} or usage(1);

# setup parameters
open (Basededatos,">dico.txt");
my $va_list = $opts{'v'};
my @va_list = split( //, $va_list ); # convert string to an array


my $min_depth = $opts{'l'} ? int($opts{'l'}) : 1;
my $max_depth = $opts{'u'} ? int($opts{'u'}) : 1;

usage(2) if $min_depth > $max_depth;

my $prefix = $opts{'a'} ? $opts{'a'} : '';
my $postfix = $opts{'z'} ? $opts{'z'} : '';
my $max_occurs = $opts{'o'} ? int($opts{'o'}) : $opts{'u'};
my $max_cons = $opts{'c'} ? int($opts{'c'}) : $opts{'u'};
my $max_nple = $opts{'n'};
my $max_reps = $opts{'r'};

usage(3) if $min_depth < 1 ||
$max_depth < 1 ||
$max_occurs < 1 ||
$max_cons < 1 ||
$max_nple < 0 ||
$max_reps < 0;

if ($opts{'t'}) {
print "Options:\n ";
foreach my $key (sort keys %opts)
{ print "$key -> $opts{$key}\n "; }
print "Global vars:\n";
print_vars();
}


for ($min_depth..$max_depth) {
wg( $_, "");
}

sub print_vars
{
print "min_depth = $min_depth\n";
print "max_depth = $max_depth\n";
print "max_occurs = $max_occurs\n";
print "max_cons = $max_cons\n";
print "max_nple = $max_nple\n";
print "max_reps = $max_reps\n";
}

#
# word generator
#
sub wg
{
my $max_depth = @_[0];
my $myprefix = @_[1];
my $elem;
if ($max_depth == 0 ) {
print "$prefix$myprefix$postfix\n";
print Basededatos "$prefix$myprefix$postfix\n";
if ( $opts{e} == 1) {
system "$prefix$myprefix$postfix\n";
}
}
else {
# print " n = $opts{'n'} r = $opts{'r'} \n";
#


# suggestion: the generation of the words is more variuos if
# I change the order of the list of the letters (@va_list)

foreach $elem (@va_list) {

my $newstring = "$myprefix$elem";

return if ( $opts{'c'} &&
substring(char2string( $elem , $max_cons), $myprefix ) == 0);
return if( $opts{'n'} && nple( $newstring ) > $max_nple);
return if( $opts{'r'} &&
few_repeatitions( $newstring, $max_reps) != 0 );
return if ( $opts{'o'} && occurs( "$elem", $newstring) > $max_occurs );

wg( $max_depth -1, "$myprefix$elem");
}
}
}

sub usage
{
my $rc = @_[0];

die <<END_USAGE

USAGE: perl $0 options

options are:
-a string: prefix
-c number: max consecutive letters (how many consecutive 'a' do you want?)
-e : submit the output string to the operating system
-h : help
-l number: min length of the word
-o number: max number of occurrencies of a letter
-n number: max number of n-ple (AA, BBB, CCC, DDDD)
-r number: max number of repeatitions (ABCABABBCDBCD has 5 repeatitions: 3 reps of AB and 2 of BCD)
-t : trace on
-u number: max length of the word
-v string: list of valid characters (es, "01" "abcdef")
-z string: postfix

possible return code are:
0, ok
1, not all parameters
2, min length (-l) is greater than max lenght (-u)
3, at least one parameter is lower than 1
Return code: $rc
END_USAGE

}

Dernière modification par kcdtv (15-04-2011 12:04:51)

Hors Ligne

#6 09-09-2011 00:08:00

kcdtv
Membre d'honneur
Lieu : Internacionaluña
Inscription : 31-03-2010
Messages : 4 246

Re : Comment limiter la répétition des caractères?

Voici une nouvelle version de Bentosouto du forum lampiweb.com
Le générateur va plus vite (pas de sortie en console) et on peut ajouter l'option -w pour définir nom et location du fichier

#!/usr/bin/perl

=head1 NAME

wg.pl


=head1 AUTHOR

Matteo Redaelli
E-MAIL: [email protected]
WEB: http://digilander.iol.it/reda


=head1 DESCRIPTION

This is a Word Generator: you can apply some useful options to filter the
words

=head1 USAGE

type perl wg.pl -h


=head1 HISTORY


2000-01-06: the first lines of this script

2000-01-11 added getopt

2000-01-21: adjusted default parameters

2002-03-05: new option -n

2002-03-06: new option -s

2002-03-07: reorganization of all source code, more documentation

2011-08-15: Modificado en el foro lampiweb.com/foro para poder guardar el diccionario con un nombre elegido. Opción -w


=head1 LICENSE

This package is free software; you can redistribute it and/or
modify it under the same terms as Perl itself, i.e., under the
terms of the "Artistic License" or the "GNU General Public License".


=head1 DISCLAIMER

This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

See the "GNU General Public License" for more details.


=cut

use Getopt::Std;
use strict;
#use integer;

sub char2string
{
# string generator: if I pass 'a' and 5, I'll get 'aaaaa'
sprintf "%s", @_[0] x @_[1];
}

sub occurs
{
my $pat = @_[0];
my $astring = @_[1];

my $tot = $astring =~ s/$pat//g;

# print "tot $tot\n";
#
return $tot;
}

sub few_repeatitions
{
my $astring = @_[0];
my $max = @_[1];
my $len = length( $astring );
my $tot = 0;

my $mid = int( $len / 2);


for ( my $step = 2; $step <= $mid; $step++) {
for ( 0 .. $len - $step ) {
my $letters = substr( $astring, $_, $step);
# print "$letters\n";
$tot = occurs( $letters, $astring);
return $tot if $tot > $max;
}
}
return 0;
}

sub nple
{
my $astring = @_[0];
my $len = length( $astring );
my $tot = 0;
my $in = 0;
my $last = ' ';



for ( 0 .. $len - 1) {
my $letter = substr( $astring, $_, 1);

# print "$astring $letter $last\n";
if ( ($letter cmp $last) == 0) {
# print "$letter = $last, $in, $tot";
if ($in == 0) {
$in = 1;
$tot++;
}

} else {
$in = 0;
}

$last = $letter;
}
return $tot;

}

sub substring
{
my $string1 = @_[0];
my $string2 = @_[1];

$_ = $string2;

if ( /$string1/ ) {
return 0;
}
else {
return 1;
}
}



my %opts;

getopts('a:c:ehl:n:o:r:tu:v:w:z:', \%opts);


usage(0) if $opts{'h'};
$opts{'u'} and $opts{'v'} or usage(1);

my $nome = $opts{'w'};
# setup parameters
open (Basededatos,">$nome");
my $va_list = $opts{'v'};
my @va_list = split( //, $va_list ); # convert string to an array

my $min_depth = $opts{'l'} ? int($opts{'l'}) : 1;
my $max_depth = $opts{'u'} ? int($opts{'u'}) : 1;

usage(2) if $min_depth > $max_depth;

my $prefix = $opts{'a'} ? $opts{'a'} : '';
my $postfix = $opts{'z'} ? $opts{'z'} : '';
my $max_occurs = $opts{'o'} ? int($opts{'o'}) : $opts{'u'};
my $max_cons = $opts{'c'} ? int($opts{'c'}) : $opts{'u'};
my $max_nple = $opts{'n'};
my $max_reps = $opts{'r'};

usage(3) if $min_depth < 1 ||
$max_depth < 1 ||
$max_occurs < 1 ||
$max_cons < 1 ||
$max_nple < 0 ||
$max_reps < 0;

if ($opts{'t'}) {
print "Options:\n ";
foreach my $key (sort keys %opts)
{ print "$key -> $opts{$key}\n "; }
print "Global vars:\n";
print_vars();
}


for ($min_depth..$max_depth) {
wg( $_, "");
}

sub print_vars
{
print "min_depth = $min_depth\n";
print "max_depth = $max_depth\n";
print "max_occurs = $max_occurs\n";
print "max_cons = $max_cons\n";
print "max_nple = $max_nple\n";
print "max_reps = $max_reps\n";
}

#
# word generator
#
sub wg
{
my $max_depth = @_[0];
my $myprefix = @_[1];
my $elem;
if ($max_depth == 0 ) {
print "$prefix$myprefix$postfix\n";
print Basededatos "$prefix$myprefix$postfix\n";
if ( $opts{e} == 1) {
system "$prefix$myprefix$postfix\n";
}
}
else {
# print " n = $opts{'n'} r = $opts{'r'} \n";
#


# suggestion: the generation of the words is more variuos if
# I change the order of the list of the letters (@va_list)

foreach $elem (@va_list) {

my $newstring = "$myprefix$elem";

return if ( $opts{'c'} &&
substring(char2string( $elem , $max_cons), $myprefix ) == 0);
return if( $opts{'n'} && nple( $newstring ) > $max_nple);
return if( $opts{'r'} &&
few_repeatitions( $newstring, $max_reps) != 0 );
return if ( $opts{'o'} && occurs( "$elem", $newstring) > $max_occurs );

wg( $max_depth -1, "$myprefix$elem");
}
}
}

sub usage
{
my $rc = @_[0];

die <<END_USAGE

USAGE: perl $0 options

options are:
-a string: prefix
-c number: max consecutive letters (how many consecutive 'a' do you want?)
-e : submit the output string to the operating system
-h : help
-l number: min length of the word
-o number: max number of occurrencies of a letter
-n number: max number of n-ple (AA, BBB, CCC, DDDD)
-r number: max number of repeatitions (ABCABABBCDBCD has 5 repeatitions: 3 reps of AB and 2 of BCD)
-t : trace on
-u number: max length of the word
-v string: list of valid characters (es, "01" "abcdef")
-w Filename
-z string: postfix

possible return code are:
0, ok
1, not all parameters
2, min length (-l) is greater than max lenght (-u)
3, at least one parameter is lower than 1
Return code: $rc
END_USAGE

}

Changelog
=head1 HISTORY


2000-01-06: the first lines of this script

2000-01-11 added getopt

2000-01-21: adjusted default parameters

2002-03-05: new option -n

2002-03-06: new option -s

2002-03-07: reorganization of all source code, more documentation

2011-08-15: Modificado en el foro lampiweb.com/foro para poder guardar el diccionario con un nombre elegido. Opción -w
Modificated in the forum lampiweb in order to save the files with a choosen name
Option -w

Le script va assez bien et le fait qu'il limite la répéticion des caractères est un grand avantage, ça peut enlever un bon 20% (par exemple avec 3 comme max)

Hors Ligne

#7 09-09-2011 08:33:31

vances1
Membre Indispensable
Inscription : 20-03-2011
Messages : 530
Site Web

Re : Comment limiter la répétition des caractères?

Jolie trouvaille smile

Je suis en train de le tester avec des critères de filtrage assez serré et en 10 mn il n'y à pas de clé se qui est plutôt bon signe.
A mon avis avec un peu de patiente, il y à moyen de se sortir un dico assez efficace merci à toi et à Bentosouto  wink

EDIT

Juste une petite remarque mais je peux me tromper dans les commandes, toujours sur le même script on ne peux filtrer les suites de lettres si elle ne sont pas typé repetition (je viens de voir passer une clé avec 9 lettres à la chaine ce qui risque pas d'arriver).

Dans le même registre il n'a pas limité la longueur de chiffre maximal possible avant une lettre, le probleme est que cela fait de gros "paquets" groupé de chiffre et lettre smile

Dernière modification par vances1 (09-09-2011 09:13:58)


Gagner de l'argent en Bourse https://www.youtube.com/watch?v=mq96BGWfE4U
Travailler à domicile Sondage rémunéré http://www.avis-sondages.fr/
Méthode et solution pour gagner de l'argent sur internet http://www.methodeargent.net/

Hors Ligne

#8 09-09-2011 13:52:08

kcdtv
Membre d'honneur
Lieu : Internacionaluña
Inscription : 31-03-2010
Messages : 4 246

Re : Comment limiter la répétition des caractères?

En effet il n'y a pas de commandes pour différencier chiffres et lettres.
Tout ce que tu dis pourrait se faire avec -o et -c si le script pourrait faire la différence entre chiffre et lettres...
Le truc c'est que Bentosouto, mak74 et moi nous n'avons aucne connaissance que ce soit en Perl. Zero de chez zéro. Ajouter l'option -w, c'est plus facile et moins périlleux pour le code que d'implanter une telle option.
Peut être on y arrive... sinon libre a vous d'essayer, c'est du pur code libre et gratuit et qui a besoin d'être ameillore.
Je connais rien en Perl mais ca a l'air bien sympat et puissant et dans les deux cas auxquels nous nous sommes confrontes (premièrement comment garder le résultat dans un fichier, deuxièmement comment pouvoir les nommer) les solutions etaient simples (ou pas bien compliquees)

Hors Ligne

#9 09-09-2011 23:30:54

vances1
Membre Indispensable
Inscription : 20-03-2011
Messages : 530
Site Web

Re : Comment limiter la répétition des caractères?

Comme tu là dit c'est pas evident ... moi je parle mais ne sais pas le faire smile

Y à qu'à voir comme il épure, clair que c'est du bon, d'ailleur j'ai lancé la commande seed sur pipe que antares à donné plus haut crunch | seed mais sur 26 26. Apres un petit somme bien mérité (quelques heures) je vois que le fichier de sortie est toujours vide. Je n'avais pas mentionner de startblock sur crunch expres puisque de toute maniére le premier caractere de la clé devra en toute logique tourner de 13 à 16 fois ce qui alligne quoi qu'il advienne à un moment ou un autre 26 characteres succesif à fltrer du dico. (au réveil je sais pas si c'est tres clair smile )

Le cummule des regles que l'on à plus ou moin mis en evidence allié à un bon filtrage pourrait s'averer payant mais le probleme maintenant c'est de le sortir ce dico ^^


Gagner de l'argent en Bourse https://www.youtube.com/watch?v=mq96BGWfE4U
Travailler à domicile Sondage rémunéré http://www.avis-sondages.fr/
Méthode et solution pour gagner de l'argent sur internet http://www.methodeargent.net/

Hors Ligne

#10 26-09-2011 01:09:54

KeyGen
Nouveau membre
Inscription : 06-07-2011
Messages : 8

Re : Comment limiter la répétition des caractères?

Bonsoir à vous,

Merci à kcdtv d'avoir lancer ce topic car je cherchais également le moyen de créer un dico en retirant certaines lettres identiques et se suivant. J'ai donc tester ce script, ou du moins essayer, pardonner mon ignorance mais pouvez vous me confirmer qu'il faut simplement copier coller le dernier script (la nouvelle version) dans un fichier pour qu'il soit reconnu directement en tant que script Perl ? Car c'est ce que j'ai fait, et une fois placer dans un répertoire je l'ai lancer via une console avec ceci : perl dico -c 3 -l 8 -o 3 -u 8 -v AZERTYUIOPMLKJHGFDSQWXCVBN
En gros je souhaitais avoir un dico de 8 lettres minimum et maximum en majuscule seulement avec maximum 3
fois la même lettre, mais après avoir lancer le script j'ai cette erreur :

syntax error at dico line 63, near "use Getopt::Std"
BEGIN not safe after errors--compilation aborted at dico line 64

Pourtant j'ai été voir aux ligne 63 et 64 et elles sont identique à celle présente dans ce topic, je n'ai fait qu'un copier coller d'ailleurs donc je ne comprend pas bien ou est mon erreur.
Je précise aussi que j'ai installer perl, enfin en fait je l'avais déjà visiblement inclu dans Backtrack 5 RC1, si vous pouviez partager votre lumière je vous en serais reconnaissant smile
Un grand merci et une bonne fin de soirée.

Dernière modification par KeyGen (26-09-2011 01:11:31)

Hors Ligne

#11 26-09-2011 10:58:33

kcdtv
Membre d'honneur
Lieu : Internacionaluña
Inscription : 31-03-2010
Messages : 4 246

Re : Comment limiter la répétition des caractères?

Je me rend compte que je l'ai mis sans plus d'explication, je profite de ta question pour explquer comment vous l'installez et pour vous donner un exemple d'usage (on mettre le dico que tu veux génerer Keygen)
Donc premièrement installez perl.
Pour ubuntu et compagnie vous le trouverez dans le gesteur de paquets synaptic. Pour windows il y a "active perl" qui va très bien (et gratuit...)
Une fois perl installé, vous copiez le code et vous le collez dans un éditeur de texte simple (Gedit, Kedit, celui que vous voulez). Vous sauvegardez le code dans un fichier que vous nommez wg.pl
Vous placez ce fichier dans votre dossier personnel (par exemple)
Si votre compte d'utilisateur c'est kcdtv, pour pouvoir exécuter le script la syntaxe serait la sui vante.

perl /home/kcdtv/wg.pl options_que_nous_voulons_activer -w nom_du_fichier_dico_que_nous_voulons_générer

Reprenons donc en exemple ton idée (8 caractères, lettres majuscules de A à Z avec limitation à trois de la répétition d'un même symbole) en imaginant que ton compte d'utilisateur soit appelé kcdtv et que tu veuilles nommer ton dictionnaire dico.txt

perl /home/kcdtv/wg-pl -l 8 -o 3 -u 8 -v ABCDEFGHIJKLMNOPQRSTUVWXYZ -w dico.txt

En mettant l'option -w, tu vois en console ce qui est en train de se générer.
Si tu ne veux pas le voir et aller plus vite en ´genérant le dico, remplace le -w par >, sans espace entre > et le nom de ton fichier. Exemple:

perl /home/kcdtv/wg-pl -l 8 -o 3 -u 8 -v ABCDEFGHIJKLMNOPQRSTUVWXYZ >dico.txt

Le gain de vitesse est notable, il dépendra de votre CPU, sur un ordinateur un peu old school, on gébère un dico de 2gb en 15 minutes, c'est pas très rapide si on compare avec du C# mais c'est largement satisfaisant si on pense au temps que ça prend passer 2Gb de dico avec aircrack-ng
J'espère que maintenant ça marche.

Hors Ligne

#12 26-09-2011 12:24:18

KeyGen
Nouveau membre
Inscription : 06-07-2011
Messages : 8

Re : Comment limiter la répétition des caractères?

Un grand merci pour tes explications kcdtv, je ne manquerai pas de tester ça des ce soir et faire un petit feedback smile
Effectivement je n'avais pas utiliser la bonne syntaxe d'ou sans doute, venait mon erreur.

Hors Ligne

#13 26-09-2011 17:01:36

KeyGen
Nouveau membre
Inscription : 06-07-2011
Messages : 8

Re : Comment limiter la répétition des caractères?

Je viens de restester et au final ça semble fonctionner ! Je pense que mon erreur était toute simple, j'avais laisser la balise "Code:" au début de mon fichier perl xD
Je l'ai retirer, et visiblement ça fonctionne je n'ai plus l'erreur à la ligne 63 et 64.
J'ai lancé le script qui tournera le plus longtemps possible, il écrit +/- a 1.5Mb seconde, on verra demain ou il en sera smile
Je me demandais cependant si il était possible de stopper le script ou il est arrivé, et le relancer plus tard pour qu'il continue ou il était précédemment ?
Encore merci !

Dernière modification par KeyGen (26-09-2011 17:03:19)

Hors Ligne

#14 18-10-2011 00:31:51

kcdtv
Membre d'honneur
Lieu : Internacionaluña
Inscription : 31-03-2010
Messages : 4 246

Re : Comment limiter la répétition des caractères?

Non, mais c'est en effet une option que l'on devrait implanter... et aussi implanter une autre permettant de garder le dico en parties plus petites (moins de 2 GB pour qu'aircrack-ng puisse les passer). D'ailleur si tu le relance sans changer le nom du fichier dicctionaire, tu vas effacer le dico que tu as fait avant parceque le script le remplacera par le nouveau...
PS: n'uoblie pas qu'avec 8 caracetres seulement lettres majuscules et en allant a 20.000 pass segondes (c'est beaucoup), ça te prendrais 5 mois en entiers pour passer ton dicctionaire. Et je ne te parrle pas du temps pour le créer et du coup de chaud que va se manger dans les dents ta CPU...

Hors Ligne

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

Pied de page des forums


Le coin des bonnes affaires, achats informatiques:


|   Alfa 1000 mW AWUS036H   |    Linksys WRT54GL   |    Misco, informatique   |   
 |    Ebay   |    PC portables   |    PC Gamers & Tuning   |    Cles USB   |   
|   Disques durs externes 2 To   |   
|   Wifi-highpower.com   |   


Server Stats - [ Generated in 0.032 seconds ]   Forum Stat - [ Most users ever online on the forum was : 150 on 20-09-2009 17:06:59 ]