Bonjour à tous,
Dans le cadre d'un challenge, qui consiste à trouver un login, j'ai fait un script pour tester plusieurs combinaisons (26^5 combinaisons).
Novice, et constatant que ça prenait un temps fou je me pose les questions suivantes:
1) 26^5 combinaisons, ça fait beaucoup pour un processeur ? (désolé pour ma naïveté )
2) Le fait de faire des threads me permettra t'il de diviser le temps de calcul ?
3) Comment m'y prendre si je veux "partager les calculs" dans mes threads, ie: comment réservé un jeu de combinaison pour le thread1 et un autre jeu de combinaisons pour un thread2
4) Si je fais des threads, puis-je écrire dans le même fichiers mes résultats ?
Voilà le script, sans thread.
nb: j'avais commencé sur 26^6 combinaisons mais après une nuit, j'étais qu'à 0,2% d'avancement
Merci pour vos réponses !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91 #!c:\perl\bin\perl.exe use String; @charset; $CHECKSUM="3696619"; my $Tab=new String(" azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789_$&#@"); $PASSWORD="souris"; while($i!=26) { $charset[$i]=chr($i+97); $charset[$i+26]=chr($i+65); $i++; } $i=0; #push(@charset,chr(95)); #push(@charset,chr(36)); #push(@charset,chr(38)); #push(@charset,chr(35)); #push(@charset,chr(64)); $total=($#charset+1)*($#charset+1)*($#charset+1)*($#charset+1)*($#charset+1); #$total=($#charset+1)*($#charset+1); $compteur=0; $lastpourcent; for(my $i=0;$i<=$#charset;$i++) { for(my $j=0;$j<=$#charset;$j++) { for(my $k=0;$k<=$#charset;$k++) { for(my $l=0;$l<=$#charset;$l++) { for(my $m=0;$m<=$#charset;$m++) { #for(my $n=0;$n<=$#charset;$n++) #{ $login=$charset[$i].$charset[$j].$charset[$k].$charset[$l].$charset[$m]; &Check($login); $pourcent=sprintf("%.2f",($compteur/$total*100)); $compteur++; if($pourcent ne $lastpourcent) { print "$pourcent %\n"; $lastpourcent=$pourcent; } #} } } } } } sub Check() { my $login=shift; for($no=0;$no<length($CHECKSUM);$no++) { $nblog=length($login); $nbpass=length($PASSWORD); my $sum=1; if($nblog>$nbpass) { $n=$nblog; } else { $n=$nbpass; } for (my $i=0;$i<$n;$i++) { my $pos1=$Tab->indexOf(substr($login,$i,1)); my $pos2=$Tab->indexOf(substr($PASSWORD,$i,1)); my $index1=$pos1+10; my $index2=$pos2+10; $sum=$sum+(($index1*$n*($i+1))*($index2*($i+1)*($i+1))); } if($sum==$CHECKSUM) { open(fic,">>newbie_brutforce.txt"); print fic "$login : $sum\n"; close(fic); } } }
Partager