Traduction source c en VB.Net (Algo Bruteforce)

Redman31100 Messages postés 167 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 11 février 2009 - 26 mars 2008 à 18:31
Redman31100 Messages postés 167 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 11 février 2009 - 5 sept. 2008 à 00:45
    Bonjour j'ai essayé de mettre ce code : http://www.cppfrance.com/codes/ALGORITHME-BRUTE-FORCE_41911.aspx en VB.Net mais quand j'ai fait le test j'ai une boucle que d'un seul caractere et non pas jusq'au nombre de caractere maximal(longueur du mot).

Si quelqu'un pouvez me le traduire SVP ca serait bien, j'en ai besoin pour une alternative de générateur de mot de passe, par exemple on prend un nombre aléatoire et a x boucle on prend le mot.

Merci d'avance.

Redman

12 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 mars 2008 à 05:17
c'est pas d'une grande complexité, me semble...


void BruteForce(int LongMin, int LongMax)
{
const char ALL[105] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz1234567890<>,?;.:/!§*µù%$£¤¨+=})]à@ç^\\_`è|-[({'#"é~&";
int Lg = LongMin - 1;
int i, x, y;

char* Buff = (char*) malloc(Lg); // Creer le Buff de Lg octet
while(Lg != LongMax)
{
realloc(Buff, Lg); // Augmente la taille du buff
int Nchar[Lg];
for(i=0; i<=Lg; i++)
{
Buff[i] = ALL[0]; // Remplie le Buff du premier char
Nchar[i] = 0; // Initialise le tableau de int a 0
}
while(Nchar[0] != 105)
{
for(x=0; x<=105; x++)
{
Buff[Lg] = ALL[x];
Nchar[Lg] = x;
printf("%s \n", Buff);
nbMDP++;
}
for(y=Lg; y>=0; y--)
{
if((Nchar[y] == 105)&&(Nchar[0]!= 105))
{
Nchar[y] = 0;
Nchar[y-1]++;
}
Buff[y] = ALL[Nchar[y]];
}
}
Lg++;
}
free(Buff);// Libere la memoire
}



qu'as tu obtenu comme code, pour le moment ?
0
Redman31100 Messages postés 167 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 11 février 2009
28 mars 2008 à 09:19
Zut je suis sur un autre ordi je l'ai pas mis sur ma clé USB :/

Bon ben va falloir attendre Lundi :/ Désolé

Redman
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 mars 2008 à 09:22
"désolé" ^^

je ne suis dans l'attente de rien, tu sais... c'est toi qui es bloqué, pour le moment.
0
Redman31100 Messages postés 167 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 11 février 2009
28 mars 2008 à 09:33
Je sais que je suis bloqué mais tu me demande ce que je trouve ^^

Redman
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 mars 2008 à 10:58
Traduire.... le tout est de comprendre l'algo.

je dirai (gaffe, je suis pas expert .Net... ca fonctionne, mais y'a peut etre plus direct.

Private Function BruteForce(ByVal vnLongMin As Integer, ByVal vnLongMax As Integer) As String()
Dim Caractères() As Char = New String("ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz1234567890<>,?;.:/!§*µù%$£¤¨+=})]à@ç^\\_`è|-[({'#""é~&").ToCharArray()
Dim Lg As Integer = vnLongMin - 1
Dim y As Integer
Dim xsRet As Stack(Of String) = New Stack(Of String)

Erase BruteForce
'// Creer le Buff de Lg caractères
For Lg = vnLongMin - 1 To vnLongMax - 1
Dim Buff() As Char = New String("A", Lg + 1).ToCharArray
Dim nChar(Lg) As Integer
Do
For Each c As Char In Caractères
Buff(Lg) = c
xsRet.Push(New String(Buff))
Next c
For y = Lg - 1 To 0 Step -1
nChar(y) += 1
If nChar(y) > Caractères.GetUpperBound(0) Then
nChar(y) = 0
Buff(y) = Caractères(0)
If y = 0 Then
Exit Do
End If
Else
Buff(y) = Caractères(nChar(y))
Exit For
End If
Next y
Loop
Next Lg
ReDim BruteForce(xsRet.Count - 1)
xsRet.CopyTo(BruteForce, 0)
End Function
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 mars 2008 à 11:16
j'ai également effectué des optimisations, j'arretes là, mais y'a quelques petites choses a faire...
(réutiliser les resultats deja trouvés, etc)
0
Redman31100 Messages postés 167 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 11 février 2009
28 mars 2008 à 12:18
Merci, je vais essayer par contre je vois pas de retour de valeur, c'est normal ? ^^

Redman
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 mars 2008 à 12:24
de valeur de retour ?

ben je modifie le tableau BruteForce
0
Redman31100 Messages postés 167 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 11 février 2009
28 mars 2008 à 12:31
De plus il y a un Loop Do sans fin, et y ne sera jamais égal a 0 car ca va de -1 a 0 step -1 donc ca fait une boucle sans fin.

Redman
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 mars 2008 à 12:36
boucle sans fin ??

y'a des
Exit Do

concernant l'autre boucle, c'est pas de -1 à 0 step -1 mais bien Lg - 1 à 0 Step -1

-1 à 0 step -1 ne ferait de toute facon pas une boucle sans fin, il n'entrerait pas dedans du tout
0
Redman31100 Messages postés 167 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 11 février 2009
17 juil. 2008 à 01:35
Ca fait un moment que je suis pas passé ici, je vais revoir cela le plus vite possible.

Redman
0
Redman31100 Messages postés 167 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 11 février 2009
5 sept. 2008 à 00:45
J'ai testé, ça ne marche pas car ça me dit "L'index se trouve en dehors des limites du tableau." à la ligne Buff(Lg) = c

Redman
0
Rejoignez-nous