Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 31/03/2014, à 11:08

Bybeu

[résolu] Modif de nasty

Bonjour
Je voudrais modifier le programme nasty de récupération de clé gnupg pour l'accélérer:
Dans le code on peut lui dire de tester avec des plages de caractères 0-9 et/ou a-z et/ou A-Z ou ascii imprimables 32-126 ou tous les ascii 32-255.

Je voudrais modifier la plage 32-126 pour la décomposer en une plage avec des plages de trous.
L'original :

...
void add_charset_range(int start, int end)
{
	int loop;

	for(loop=start; loop<=end; loop++)
	{
		charset[charset_n++] = (unsigned char)loop;
	}
}

....

case 'c':
			for(loop=0; loop<strlen(optarg); loop++)
			{
				if (optarg[loop] == 'a')
					add_charset_range('a', 'z');
				else if (optarg[loop] == 'A')
					add_charset_range('A', 'Z');
				else if (optarg[loop] == '0')
					add_charset_range('0', '9');
				else if (optarg[loop] == '.')
				  	add_charset_range(32, 126);
				else if (optarg[loop] == '+')
					add_charset_range(32, 255);
				else
....

Ma modif de naïf qui morch pô (c'est la première fois que j'essaye de programmer):

				else if (optarg[loop] == '.')
				  	add_charset_range(32, 33 - 35, 38 - 40, 43 - 45, 46 - 48, 122);
				...

J'ai déjà cherché des exemples et le sens de la commande add_charset_range, mais rien de lumineux, gougleu ne trouve que 3 réponses qui n'ont rien à voir avec le C !
J'ai essayé avec d'autres séparateurs que le "-" et aussi de mettre 5 lignes de sous-plages avec ou sans le point-virgule aux 4 premières, avec toujours des erreurs de compilation sad

Merci pour les astuces

Dernière modification par Bybeu (Le 31/03/2014, à 17:43)

Hors ligne

#2 Le 31/03/2014, à 11:51

pingouinux

Re : [résolu] Modif de nasty

Bonjour,
Je ne connais pas le sujet, mais peut-être ceci ?

                                else if (optarg[loop] == '.') {
                                        add_charset_range( 32,  32);
                                        add_charset_range( 33,  35);
                                        add_charset_range( 38,  40);
                                        add_charset_range( 43,  45);
                                        add_charset_range( 46,  48);
                                        add_charset_range(122, 122);
                                }

Édité : Correction de la syntaxe

Dernière modification par pingouinux (Le 31/03/2014, à 12:28)

Hors ligne

#3 Le 31/03/2014, à 17:43

Bybeu

Re : [résolu] Modif de nasty

Merci pengouinux, ça marche. j'ai pas essayé tes (32, 32), mais c'est les accolades qui ont résolu le problème. Avé smile

Hors ligne