begin process at 2012 05 27 04:26:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > ALGO DE DECRYPTAGE DE PWD AIM

ALGO DE DECRYPTAGE DE PWD AIM


 Information sur la source

Note :
4 / 10 - par 1 personne
4,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Niveau :Débutant Date de création :14/07/2002 Date de mise à jour :14/07/2002 23:14:10 Vu :6 297

Auteur : Mike

Ecrire un message privé
Site perso
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

 Description

Un petit algorythme pour decrypter les password AIM situé dans le repertoire "HKEY_CURRENT_USER\Software\America Online\AOL Instant Messenger (TM)\CurrentVersion\Users\VotreLogin\Login" de l'editeur de registre. j'ai simplement traduit la version de bigbang originale ecrite en visual basic. Le programme n'est certainement pas optimiser au maximum, donc si vous avez des idée, n'hesitez pas a m'en faire part. le programme est simplement une fonction qu'on appelle decrypt("mdp AIM") et elle retourne le mdp decrypter.

Source

  • #include <iostream.h>
  • char * decrypt(char * PW);
  • int lenght(char * chaine);
  • int ASCII(char lettre);
  • int main()
  • {
  • // ÿÿCMPBGJHHEEHCLC est un pwd coder
  • cout << decrypt("ÿÿCMPBGJHHEEHCLC") << "\n\n" ;
  • return 0;
  • }
  • //////////////// FONCTION /////////////////////
  • char * decrypt(char * password)
  • {
  • const int longueur = lenght(password);
  • char * PW = new char[longueur - 2];
  • int i = 0;
  • while(password[i]!='\0')
  • {
  • PW[i] = password[i+2];
  • i++;
  • }
  • long a;
  • int b,c,d;
  • char temp;
  • int compte = 0;
  • char * pass_finale = new char[(lenght(PW) / 2) - 3];
  • for(a=1;a<=lenght(PW);a = a + 2)
  • {
  • c = (( a / 2) % ( 16 + 1 ) + 1);
  • b = ASCII(PW[a - 1]) - 65;
  • if ( (c==4) || (c==9) || (c==11) || (c==14) )
  • {
  • if ( (b % 2) < 1 )
  • {
  • b = b + 1;
  • }
  • else
  • {
  • b = b - 1;
  • }
  • }
  • if ( (c==5) || (c==10) || (c==15) || (c==16) )
  • {
  • if ( (b % 4) < 2 )
  • {
  • b = b + 2;
  • }
  • else
  • {
  • b = b - 2;
  • }
  • }
  • if ( (c==1) || (c==6) || (c==11) || (c==12) )
  • {
  • if ( (b % 8) < 4 )
  • {
  • b = b + 4;
  • }
  • else
  • {
  • b = b - 4;
  • }
  • }
  • if ( (c==2) || (c==7) || (c==13) || (c==16) )
  • {
  • if ( b < 8 )
  • {
  • b = b + 8;
  • }
  • else
  • {
  • b = b - 8;
  • }
  • }
  • if ( (c==12) || (c==13) || (c==14) || (c==15) )
  • {
  • b = 15 - b;
  • }
  • ////////////////////////////
  • d = b * 16;
  • b = ASCII(PW[a]) - 65;
  • if ( (c==5) || (c==7) || (c==9) || (c==10) || (c==16) )
  • {
  • if ( (b % 2) < 1 )
  • {
  • b = b + 1;
  • }
  • else
  • {
  • b = b - 1;
  • }
  • }
  • if ( (c==1) || (c==6) || (c==9) || (c==11) || (c==12) )
  • {
  • if ( (b % 4) < 2 )
  • {
  • b = b + 2;
  • }
  • else
  • {
  • b = b - 2;
  • }
  • }
  • if ( (c==2) || (c==7) || (c==8) || (c==9) || (c==13) )
  • {
  • if ( (b % 8) < 4 )
  • {
  • b = b + 4;
  • }
  • else
  • {
  • b = b - 4;
  • }
  • }
  • if ( (c==3) || (c==12) || (c==14) )
  • {
  • if ( b < 8 )
  • {
  • b = b + 8;
  • }
  • else
  • {
  • b = b - 8;
  • }
  • }
  • if ( (c==8) || (c==10) || (c==11) )
  • {
  • b = 15 - b;
  • }
  • compte++;
  • temp = (d + b);
  • pass_finale[compte - 1] = temp;
  • }
  • return pass_finale;
  • }
  • int lenght(char * chaine)
  • {
  • int temp = 0;
  • while(chaine[temp]!='\0')
  • {
  • temp++;
  • }
  • return temp - 1;
  • }
  • int ASCII(char lettre)
  • {
  • switch(lettre)
  • {
  • case 'A' : return 65;break;
  • case 'B' : return 66;break;
  • case 'C' : return 67;break;
  • case 'D' : return 68;break;
  • case 'E' : return 69;break;
  • case 'F' : return 70;break;
  • case 'G' : return 71;break;
  • case 'H' : return 72;break;
  • case 'I' : return 73;break;
  • case 'J' : return 74;break;
  • case 'K' : return 75;break;
  • case 'L' : return 76;break;
  • case 'M' : return 77;break;
  • case 'N' : return 78;break;
  • case 'O' : return 79;break;
  • case 'P' : return 80;break;
  • case 'Q' : return 81;break;
  • case 'R' : return 82;break;
  • case 'S' : return 83;break;
  • case 'T' : return 84;break;
  • case 'U' : return 85;break;
  • case 'V' : return 86;break;
  • case 'W' : return 87;break;
  • case 'X' : return 88;break;
  • case 'Y' : return 89;break;
  • case 'Z' : return 90;break;
  • }
  • }
#include <iostream.h>

char * decrypt(char * PW);
int lenght(char * chaine);
int ASCII(char lettre);

int main()
{
    // ÿÿCMPBGJHHEEHCLC est un pwd coder
	cout << decrypt("ÿÿCMPBGJHHEEHCLC") << "\n\n" ;
	return 0;
}

//////////////// FONCTION /////////////////////
char * decrypt(char * password)
{
	const int longueur = lenght(password);
	
	char * PW = new char[longueur - 2];

	int i = 0;
	while(password[i]!='\0')
	{
		PW[i] = password[i+2];
		i++;
	}
	

	long a;
	int b,c,d;
	char temp;
	int compte = 0;
	char * pass_finale = new char[(lenght(PW) / 2) - 3];


	 for(a=1;a<=lenght(PW);a = a + 2)
	 {

		 c = (( a / 2) % ( 16 + 1 ) + 1);
		 b = ASCII(PW[a - 1]) - 65;
		 
		 
		if ( (c==4) || (c==9) || (c==11) || (c==14) )
		{
			if ( (b % 2) < 1 )
			{
				b = b + 1;
			}
			else
			{
				b = b - 1;
			}
		}


		if ( (c==5) || (c==10) || (c==15) || (c==16) )
		{
			if ( (b % 4) < 2 )
			{
				b = b + 2;
			}
			else
			{
				b = b - 2;
			}
		}

		if ( (c==1) || (c==6) || (c==11) || (c==12) )
		{
			if ( (b % 8) < 4 )
			{
				b = b + 4;
			}
			else
			{
				b = b - 4;
			}
		}

		if ( (c==2) || (c==7) || (c==13) || (c==16) )
		{
			if ( b < 8 )
			{
				b = b + 8;
			}
			else
			{
				b = b - 8;
			}
		}

		if ( (c==12) || (c==13) || (c==14) || (c==15) )
		{
		
			b = 15 - b;
		}

		////////////////////////////
		d = b * 16;
		b = ASCII(PW[a]) - 65;


		if ( (c==5) || (c==7) || (c==9) || (c==10) || (c==16) )
		{
			if ( (b % 2) < 1 )
			{
				b = b + 1;
			}
			else
			{
				b = b - 1;
			}
		}

		if ( (c==1) || (c==6) || (c==9) || (c==11) || (c==12) )
		{
			if ( (b % 4) < 2 )
			{
				b = b + 2;
			}
			else
			{
				b = b - 2;
			}
		}

		if ( (c==2) || (c==7) || (c==8) || (c==9) || (c==13) )
		{
			if ( (b % 8) < 4 )
			{
				b = b + 4;
			}
			else
			{
				b = b - 4;
			}
		}
		 
		if ( (c==3) || (c==12) || (c==14) )
		{
			if ( b < 8 )
			{
				b = b + 8;
			}
			else
			{
				b = b - 8;
			}
		}

		if ( (c==8) || (c==10) || (c==11) )
		{
			b = 15 - b;
		}

		compte++;
		temp = (d + b);
		pass_finale[compte - 1] = temp;
	
	 }

	return pass_finale;
}


int lenght(char * chaine)
{
	int temp = 0;
	
	while(chaine[temp]!='\0')
	{
		temp++;
	}
	
	return temp - 1;
}


int ASCII(char lettre)
{
	
	switch(lettre)
	{

	case 'A' : return 65;break;
	case 'B' : return 66;break;
	case 'C' : return 67;break;
	case 'D' : return 68;break;
	case 'E' : return 69;break;
	case 'F' : return 70;break;
	case 'G' : return 71;break;
	case 'H' : return 72;break;
	case 'I' : return 73;break;
	case 'J' : return 74;break;
	case 'K' : return 75;break;
	case 'L' : return 76;break;
	case 'M' : return 77;break;
	case 'N' : return 78;break;
	case 'O' : return 79;break;
	case 'P' : return 80;break;
	case 'Q' : return 81;break;
	case 'R' : return 82;break;
	case 'S' : return 83;break;
	case 'T' : return 84;break;
	case 'U' : return 85;break;
	case 'V' : return 86;break;
	case 'W' : return 87;break;
	case 'X' : return 88;break;
	case 'Y' : return 89;break;
	case 'Z' : return 90;break;

	}
	
} 

 Conclusion

Je remercie BigBang pour l'algorythme


 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

Commentaires et avis

Commentaire de VinceR le 15/07/2002 01:13:39

Salut...
L'algo est ce qu'il est... mais la fonction ASCII ne sert à rien car tu pourrais tout simplement mettre la valeur de PW directement quand tu en as besoin...
Je m'explique: ton PW correspond au code ascii... "A" se lis aussi 65 qu'il soit dans un char, un int ou autre chose. Si tu asvais une erreur, de ce coté là, tu aurais pu mettre un "cast".
Mais là tu as réinventé la pourdre.... ;-)

VinceR

Commentaire de cmarsc le 15/07/2002 09:08:24

TOUT A FAIT THIERRY ET OUI  ET TOC DANS LES DENTS !

cmarsc ;-()

Commentaire de kjus le 15/07/2002 17:02:25

pas mal, mais :
1/ lla fonction ascci effectivement ne sert a rien. (pas grave)
2/ l'on doit recompiler a chaque fois le prog quand on veut décripter un pass
3/ Le prog aurait pu aller chercher par lui-meme la clé ds la base de registre (mais ca c une autre histoire..)

Commentaire de Mike le 15/07/2002 22:36:08

SAlut a tous et merci pour vos remarques. Ouais donc en effet mon truc sert pas a grand chose, je suis debutant alors je fé encore des erreurs. Pour Kjus, le programme vous donne juste la fonction pour decrypter les mdp AIM rien de plus, cette fonction peut être implenter ds n'importe kel programme ( a vous de l'utiliser maintenant ). Pour ceux qui est d'aller le chercher ds la cle de registre, ça sera p'être pour une aute version.
@+ HAVE FUN
WWW.MOTEURPROG.COM

Commentaire de morgandetoi06 le 02/10/2003 21:50:32

rajoute
system ("PAUSE");
apres le cout, c plus pratique ;)

Commentaire de ydblade le 28/02/2004 22:53:25

bon bah j'ai essayé ton algorithme, mais ca marche pas, ça affiche n'importe quoi pour le mot de passe, est ce que c'est parce que une nouvelle version d'AIM est sortit ?
Quelqu'un a un moyen de retrouver le mot de passe avec la nouvelle version svp?

Commentaire de Joky le 07/02/2005 23:08:48

Je vous informe avec grande peine les enfants que le mot de passe placé dans le registre n'est pas décryptable. Tout simplement car ce n'est pas un mot de passe.
C'est un hash. Le md5 je crois bien ;)
Donc chercher longtemp :)
Avec tout mon courage ;)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales