|   | 
	
	
	
		|  Exposing the Password Secrets of Miranda  | 
	
	
	
	   |  	
  
  			|   
		
		
		
			 |    
	
	  |  	
	
	
	
	
		
	
		  |  	
		
	
		| 
		
	 | 
	
	
		|   | 
	
	
		
	
	
	
		 | 
	
	
		|   | 
	
	
		
	
		  |  	
	
		
			Miranda is 
			open source based Messenger which has become more popular in the 
			recent times. It's simple interface makes it very easier and faster. 
			It is universal messenger which supports multiple IM protocols 
			including Yahoo, MSN, GTalk, Jabber, Facebook IRC, AIM, ICQ, 
			Gadu-Gadu etc.  
			
			 
 
			
			 | 
		
	
	|   | 
	
	
		|   | 
	
	
		
	
		
		
		  | 
	
	
		Like most instant messengers, 
			Miranda also stores the all user account information including 
			passwords in the profile location. This is to prevent the user from 
			entering the passwords each time. 
  Latest version of Miranda 
			(v0.9.10) stores the user account & password in the profile file at 
			following location  | 
	
		  |  	
	
		[Windows XP] 
		C:\Documents and Settings\<user_name>\Application 
		Data\Miranda\%profile_name%\%profile_name%.dat
  [Windows Vista & 
		Windows 7] 
		C:\Users\<username>\AppData\Roaming\Miranda\%profile_name%\%profile_name%.dat | 
	
	
		  |  	
		 User can have multiple profiles specific 
			to office or home environment and corresponding account information 
			is stored in the respective profile file.
  Initial versions of 
			Miranda stored all account information in .dat file directly within 
			the base location as shown below, |  	
		
  |  	
		 
			[Windows XP] 
			C:\Documents and Settings\<user_name>\Application 
			Data\Miranda\%profile_name%.dat
  [Windows Vista & Windows 7] 
			C:\Users\<username>\AppData\Roaming\Miranda\%profile_name%.dat |  	
			
  |  	
		 | Miranda uses modified version of ICQ database format to store all the account details and all of these versions used the same format 
			to store the account information in the .DAT file.  |  	
		
  | 
	
		
		|   | 
	
		
		|   | 
	
	
		
	
		  |  	
	
		As explained in earlier section, 
			Miranda stores the account information including passwords in an 
			proprietary format in .DAT files. Typical information include 
			protocol name, username, password in encoded format, email etc. 
			 Each of the account information begins with keyword 
			'AM_BASEPROTO'. Then follows the protocol and other relevant 
			information. 
  General structure for each account information 
			is in below shown format 
		  | 
	
  |  	
	
		struct Miranda_Account
		 { //protocol char strProtoID[]="AM_BaseProto"; char 
		seperator=0xff; short protoLength; //2 bytes char varProtoName[]; 
		"AIM" "YAHOO" "JABBER" "MSN" etc
  //username byte 
		usernameFieldLength; char varUserNameField; char seperator=0xff; 
		short usernameLength; char varUserName[usernameLength];
  
		//<Other Fields> ... ...
 
  //password byte 
		passFieldLength; char varPassField; // 'Password' or 'LoginPassword' 
		for Jabber char seperator=0xff; short passwordLength; char 
		varEncPassword[passwordLength];
  ... ... } | 
	
  |  	
	
		This is common structure for most of the protocols but for some 
		protocols such as IRC, IRQ or Gadu-Gadu it differs slightly around the 
		username. 
  Password for each account begins with keyword 
		'Password' (except for Jabber protocol it is 'LoginPassword') and then 
		follows the actual password in encoded format. 
  | 
	
	
		|   | 
	
	
		|   | 
	
	
		
	
		  |  	
	
		Miranda uses simple encryption 
			algorithm with simple maths to cryptize the password from the spying 
			eyes. For all protocols except Jabber it uses common algorithm to 
			encrypt the password.
  In this simple encryption mechanism, 
			Miranda adds the magic number 5 to each character in the password to 
			encode it and then stores into the profile file. 
  Here is the 
			simple decryption mechanism for all protocols (except Jabber) 
			supported by Miranda 
		  | 
	
	  | 
	
 
		for(int i=0; i<PasswordLength; i++) { 
		  
		clearPassword[i] = encryptedPassword[i]-5; } |  	
  |  	
	 For Jabber protocol (as per version v0.9.10) it 
		uses XOR based encoding algorithm using the magic number 0xC3 to secure 
		the password, Here is the decryption algorithm for the Jabber Protocol
  |  	
	
  |  	
	 
		for(int i=0; i<PasswordLength; i++) { 
		  
		clearPassword[i] = encryptedPassword[i] ^ 0xC3; }
  |  	
	
  |  	
	 | On completion of the above operation with those 
		magic numbers, you will have the secret in your hands ! |  	
	
  |  	
	 
		|   | 
	
	
		
	
	  | 
	
		
		
		 
		
			
		     
		 | 
		
			
			MirandaPasswordDecryptor is a dedicated tool to 
			instantly recover Miranda account passwords. It can automatically 
			detect the currently installed version of Miranda and recover the 
			passwords for all stored accounts.   | 
		
	
		 
		 
		
		 | 
	
	  |  	
	
	
		
		
		
		 
		
		 | 
	
	  |  	
	
	
		| MirandaPasswordDecryptor is portable tool which can be directly run 
		from portable devices. It also comes with Installer for complete support 
		for Installation and Uninstallation. You can also use our other tool,
		IMPasswordDecryptor 
		to recover the Miranda passwords along with passwords stored by other 
		Instant Messengers.   | 
	
	
		|   | 
	
	
		|   | 
	
	
		
	
		  | 
	
		Above article explains how Miranda stores the account password using 
		its own proprietary encryption algorithm and shows how one can manually 
		decrypt such password to recover the original password.
  Note that 
		it does not mean lapse on Miranda Security as only authorized user can 
		view and decrypt the stored passwords. But due to nature of its password 
		storage mechanism, you are advised to exercise caution while handing 
		over your system to amigos.  | 
	
	
		|   | 
	
	
		|   | 
	
	
		
	
		  |  	
		
	
		| 
		
	 | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
		|   |