<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>What's My Pass? &#187; Google</title>
	<atom:link href="http://www.whatsmypass.com/tag/google/feed" rel="self" type="application/rss+xml" />
	<link>http://www.whatsmypass.com</link>
	<description>Password Recovery R Us</description>
	<lastBuildDate>Wed, 28 Jul 2010 14:16:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Most Common Hotmail Password Revealed!</title>
		<link>http://www.whatsmypass.com/most-common-hotmail-password-revealed</link>
		<comments>http://www.whatsmypass.com/most-common-hotmail-password-revealed#comments</comments>
		<pubDate>Wed, 07 Oct 2009 04:10:12 +0000</pubDate>
		<dc:creator>Dev Team</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Alberto]]></category>
		<category><![CDATA[Alejandra]]></category>
		<category><![CDATA[AOL]]></category>
		<category><![CDATA[BBC]]></category>
		<category><![CDATA[Bogdan Calin]]></category>
		<category><![CDATA[clipboard site]]></category>
		<category><![CDATA[Comcast]]></category>
		<category><![CDATA[Earthlink]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[online account addresses]]></category>
		<category><![CDATA[researcher]]></category>
		<category><![CDATA[site owner]]></category>
		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://www.whatsmypass.com/most-common-hotmail-password-revealed</guid>
		<description><![CDATA[Follow-up to yesterdays post. A researcher who examined 10,000 Hotmail, MSN and Live.com passwords that were recently exposed online has published an analysis of the list and found that “123456″ was the most commonly used password, appearing 64 times.
Forty-two percent of the passwords used lowercase letters from “a to z”; only 6 percent mixed alpha-numeric [...]]]></description>
			<content:encoded><![CDATA[<p>Follow-up to yesterdays post. A researcher who examined 10,000 Hotmail, MSN and Live.com passwords that were recently exposed online has published an analysis of the list and found that “123456″ was the most commonly used password, appearing 64 times.</p>
<p>Forty-two percent of the passwords used lowercase letters from “a to z”; only 6 percent mixed alpha-numeric and other characters.<br />
<span id="more-769"></span><br />
Many of the top 20 passwords used were Spanish names, such as Alejandra and Alberto, suggesting that the victims were in Spanish-speaking communities. Nearly 2,000 of the passwords were only six characters long. The longest password was 30 characters — lafaroleratropezoooooooooooooo.</p>
<p>The 10,000 passwords and user names, believed to be booty from a phishing attack, were posted over the weekend to the clipboard site PasteBin. The site owner has since removed the list, but Bogdan Calin of Acunetix grabbed the passwords before it disappeared.</p>
<p>The list included only online account addresses that began with “A” or “B,” suggesting that the list was only part of a larger cache of credentials. On Tuesday, the BBC reported that it had viewed a second list of more than 20,000 account credentials that included Gmail, Yahoo and AOL accounts, and that Google had uncovered a third list containing an unknown number of accounts.</p>
<p>Some of the accounts on the list of 20,000 names the BBC saw appeared to be old, unused or fake, though many were genuine. The list also included Comcast and Earthlink accounts.</p>
<p>Both Google and Microsoft, which own Gmail and Hotmail, MSN and Live.com respectively, have taken measures to block use of the exposed accounts until the legitimate users can reset their passwords.</p>
<p>source: <a href="http://www.wired.com/threatlevel/2009/10/10000-passwords/">wired.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.whatsmypass.com/most-common-hotmail-password-revealed/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ChromePasswordDecryptor</title>
		<link>http://www.whatsmypass.com/chromepassworddecryptor</link>
		<comments>http://www.whatsmypass.com/chromepassworddecryptor#comments</comments>
		<pubDate>Thu, 23 Jul 2009 19:48:01 +0000</pubDate>
		<dc:creator>Dev Team</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[manager functionality]]></category>
		<category><![CDATA[Web browser]]></category>

		<guid isPermaLink="false">http://www.whatsmypass.com/chromepassworddecryptor</guid>
		<description><![CDATA[Google Chrome browser is the latest entry into the ongoing web browser&#8217;s war which is mainly ruled by IE and Firefox. The word Google behind the Chrome has given it lot of hype and popularity than any other browser got in such a short duration. However some of the features such as searching from the [...]]]></description>
			<content:encoded><![CDATA[<p>Google Chrome browser is the latest entry into the ongoing web browser&#8217;s war which is mainly ruled by IE and Firefox. The word Google behind the Chrome has given it lot of hype and popularity than any other browser got in such a short duration. However some of the features such as searching from the same address bar, thumbnails of top sites, private browsing etc makes it stand apart from other browsers in the market.</p>
<p>Like other browsers Chrome also has built-in login password manager functionality which keeps track of the login secrets of all visited websites. Whenever user logins to any website, he/she will be prompted to save the credentials for later use and if user chooses so, then the username &#038; passwords will be stored in internal login database. So next time onwards whenever user visits that website, he/she will be automatically logged in using these stored credentials which saves hassle of entering the credentails every time.</p>
<p>ChromePasswordDecryptor is standalone application which does not require any installation and can be directly executed after copying to local system.</p>
<p>    * Launch the ChromePasswordDecryptor on the system.<br />
    * By default it will automatically display the default chrome profile path for current user. However you can change the path using the &#8216;browse&#8217; button besides it.<br />
    * Then you can click on &#8216;Show&#8217; button to decrypt and display all the stored login secrets from Chrome.<br />
    * Next you can click on &#8216;Export&#8217; button to save all the secrets to standard HTML file.<br />
<a href="http://securityxploded.com/download.php#chromepassworddecryptor">Download chromepassworddecryptor</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.whatsmypass.com/chromepassworddecryptor/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Recover Google Passwords via SMS</title>
		<link>http://www.whatsmypass.com/recover-google-passwords-via-sms</link>
		<comments>http://www.whatsmypass.com/recover-google-passwords-via-sms#comments</comments>
		<pubDate>Thu, 25 Jun 2009 19:24:02 +0000</pubDate>
		<dc:creator>Dev Team</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cellular telephone]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[SMS]]></category>

		<guid isPermaLink="false">http://www.whatsmypass.com/?p=686</guid>
		<description><![CDATA[Google just added an SMS option to its accounty recovery system, letting anyone who forgets their passwords, or finds it suspiciously locked, set up a mobile phone number to have a recovery password sent to. U.S.-only for now, but Google says it&#8217;s working to expand the option. Want to add your phone number to an [...]]]></description>
			<content:encoded><![CDATA[<p>Google just added an SMS option to its accounty recovery system, letting anyone who forgets their passwords, or finds it suspiciously locked, set up a mobile phone number to have a recovery password sent to. U.S.-only for now, but Google says it&#8217;s working to expand the option. Want to add your phone number to an existing account? Sign into account management, then head to Change Password Recovery Options.</p>
<p>via <a href="http://googlesystem.blogspot.com/2009/06/google-account-recovery-via-sms.html">Google Operating System</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.whatsmypass.com/recover-google-passwords-via-sms/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>10 ways of resetting a lost linux root password</title>
		<link>http://www.whatsmypass.com/10-ways-of-resetting-a-lost-linux-root-password</link>
		<comments>http://www.whatsmypass.com/10-ways-of-resetting-a-lost-linux-root-password#comments</comments>
		<pubDate>Wed, 22 Apr 2009 15:34:26 +0000</pubDate>
		<dc:creator>Dev Team</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Privilege Escalation]]></category>
		<category><![CDATA[boot manager]]></category>
		<category><![CDATA[boot server]]></category>
		<category><![CDATA[cd/dvd player]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Id]]></category>
		<category><![CDATA[Lilo]]></category>
		<category><![CDATA[Linux system]]></category>
		<category><![CDATA[Most linux installation]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[startup manager]]></category>
		<category><![CDATA[system administrator]]></category>
		<category><![CDATA[Toshiba HD-A1 Player HD-DVD Player]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.whatsmypass.com/?p=602</guid>
		<description><![CDATA[via: handlewithlinux.com
A good password has the problem of being difficult to remember. And sometimes you might need to get in to a system where the root password is long forgotten (or left with the system administrator before you).
Luckily there are ways of getting access to systems without having the password. This is of course in [...]]]></description>
			<content:encoded><![CDATA[<p>via: <a href="http://www.handlewithlinux.com/10-ways-of-resetting-a-lost-linux-root-password">handlewithlinux.com</a></p>
<p>A good password has the problem of being difficult to remember. And sometimes you might need to get in to a system where the root password is long forgotten (or left with the system administrator before you).<br />
Luckily there are ways of getting access to systems without having the password. This is of course in a sense also a security risk. That&#8217;s why you should always be aware that having unattended physical access to a computer system means the same as having root access to the operating system. Unless the information on a system is encrypted, it&#8217;s only as save as the room it&#8217;s in.</p>
<p>The method to use to reset the password if you lost the root (or only) password depends on the configuration of your system. But it mostly comes down to two separate tasks:</p>
<p>- get write access to the root partition</p>
<p>- change the password/circumvent control</p>
<p>Here are some things you can try from easy to more complicated.<span id="more-602"></span></p>
<h2>1.booting into single user mode from the start menu</h2>
<p>Some systems are configured to drop you into root shell without a password if you reboot them in single user mode. If your system has an option called single or recovery mode changes are it will drop you directly to the root prompt or as I know ubuntu does it serves up a menu with &#8216;drop to root shell prompt&#8217; as an option. Sometimes you have to hit escape at startup to enter the boot menu.<br />
Once in the root shell it&#8217;s as easy as typing passwd followed by your username and the passwd program will ask you for the new password. passwd without a name will change the root password.<br />
If you don&#8217;t know the username anymore you can do</p>
<p>#cat /etc/ passwd this prints the password text file where every entry before the : is a valid username</p>
<p>or</p>
<p>#ls /home  which will give you the username of the users on the system with a home directory (if the default home path is used)</p>
<p>If you have a system which has this boot option and you think this is just a to obvious security risk (don&#8217;t want your little sister to change your root password) you can easily remove this option by editing the file /boot/grub/menu.lst (if you use the grub boot loader) or /etc/lilo.conf (if you use lilo)<br />
If you use Ubuntu you can set passwords for the menu options in the startup-manager from the administration menu security tab or remove the option in the advanced tab.<br />
Grub and Lilo both have password options<br />
to password protect grub create a md5 hash of your password ( #/sbin/grub-md5-crypt ) and edit the file /boot/grub/grub.conf add below the line timeout the following line:</p>
<p>password &#8211;md5 password-hash-here</p>
<p>grub configuration should be user root group root and 600 permissions.</p>
<p>to password protect boot menu entries just enter lock below the title line in the /boot/grub/menu.lst file</p>
<p>for protecting lilo edit the /etc/lilo.conf file before the first image stanza place the option</p>
<p>password=clear-text-password</p>
<h2>2. booting into single user mode when there&#8217;s no menu entry at startup</h2>
<p>If there&#8217;s no single or recovery option in the boot menu you can still boot into single mode by editing the startup entry. To do this in grub, while in the menu press &#8216;e&#8217; this will let you edit the menu entries. Just append single to the line starting with kernel. press &#8216;b&#8217; and the system will boot into single mode.<br />
If your boot manager is Lilo you can pass Linux 1 or Linux emergency as boot parameters.<br />
This approach won&#8217;t help you on all systems because many systems will ask you for the root password when booting into single user mode.(Debian does)</p>
<h2>3. boot to root shell by using shell as init</h2>
<p>If the single user mode has been disabled or is password protected just press &#8216;e&#8217; in the grub boot menu and add init=/bin/bash (or any other shell executable) to the kernel line. Press &#8216;b&#8217; to boot and you&#8217;ll get a root shell because the init process is replaced with bash while booting. This gives you a rather limited shell but it&#8217;s good enough, depending on your system configuration you might have to mount the root partition read/write before you can change the password. Do this by entering</p>
<p>#mount -no remount,rw /</p>
<p>After that you can use passwd again as in previous examples.</p>
<p>If your startup manager is Lilo you can give the boot parameters Linux init=/bin/bash</p>
<h2>4. boot from alternative file system</h2>
<p>This method is much less likely to be available as it requires some kind of &#8220;alternative file system&#8221; to be available. If you have non-root access and there is a writable partition (/tmp for instance) and you can place a linux file system relative to that partition for instance by downloading a minimal linux distro and unpacking it you can then give the root= option to grub and set the partition where you placed your own file system as root file system.<br />
Executing the mount command will show the available partitions and how they are mounted. This will only work in very specific circumstances though.</p>
<h2>5. boot from a bootable usb stick</h2>
<p>If you have no way to access single user mode from the boot menu, or if your single user mode is password protected, you can still use an alternative boot medium. Many systems these days provide a boot option for booting from a usb stick. This is actually a very easy method. The access of boot sequence menu differs by system, most systems display a text like press esc to enter boot menu or something like that. Sometimes the system is already configured to try booting from removable medium first. Many systems also allow changing the boot sequence from the bios. Just change the boot sequence of the system to boot from usb or choose that option from the boot menu. This does require you to have a boot-able usb stick of course. There are many ways to make a usb stick boot-able one of them is described in my article about backtrack, which makes a great distro to use for this purpose by the way. Just boot from the usb device, and open a root shell. The next thing you have to do is find out which is the root partition. Use fdisk to list the available partitions:</p>
<p>#fdisk -l</p>
<p>This will show the disks available.<br />
You can mount them with the mount command. First create a directory mkdir /newdir or mount the partition on an existing directory. Then mount the partition you think is the root.</p>
<p>#mount -o,rw /dev/hda1 /newdir</p>
<p>if mount complaints you have to specify partition type, you find the type as a letter/number combination where it says Id. To show a list of partition type name/Id combinations use /sbin/sfdisk -T</p>
<p>in this case use mount with -t option:</p>
<p>#mount -o,rw -t ext3 /dev/hda1 /newdir</p>
<p>check if it&#8217;s the right one with ls:</p>
<p>#ls /newdir  (should list a root filesytem)</p>
<p>if it is the wrong partition, just do umount /newdir to unmount it and redo the previous steps with another partition from the list.</p>
<p>If it is the right partition use chroot:</p>
<p>#chroot /newdir</p>
<p>this will make the newdir your root dir</p>
<p>and then enter passwd to change the root password and reboot your system.</p>
<h2>6. boot from CD</h2>
<p>This is basically the same as option 5 but requires you to have a Linux live-cd or rescue-cd. Most linux installation cd&#8217;s double as recovery cd&#8217;s by giving you a rescue option at boot or some drop to root shell menu option anywhere in the process. You do need to have a cd/dvd player installed to use this option. The method is exactly the same as in option 5. There are a lot more systems that allow booting from cd/dvd (most older pc&#8217;s do) than from usb this makes it a more viable approach.</p>
<h2>7. boot from network</h2>
<p>Difficult to do in many cases, but if you have access to the bios or the system is already configured to try booting from the network, and you have a system which you can configure as a boot server, it&#8217;s more or less the same story as 5 and 6. Boot the system into a OS where you have root access and mount the disk, chroot and you are in.</p>
<p>If you can&#8217;t access the BIOS to change the boot sequence because it&#8217;s password protected, try searching Google for the master password for your BIOS. Or you can try removing the BIOS battery the BIOS battery is located on the motherboard and is there to keep the BIOS memory as the power is taken of the system. Unplug the system, remove the battery and wait for about 120 seconds. Be warned this will flush all BIOS information (configuration) most systems will boot fine when you reload default BIOS settings (not all). Some motherboards have jumpers for resetting BIOS, if you have the motherboard manual you can look it up. Laptops are sometimes equipped with security features which make flushing BIOS impossible or even render the system completely useless when trying to reset BIOS.</p>
<h2>8. place an extra disk in the machine</h2>
<p>In most cases the BIOS will auto-detect a new disk, so if you place a new disk containing a boot-able OS and make it the master and the old disk slave, you can make the system boot from the new disk.</p>
<h2>9. remove the disk and place it in another machine</h2>
<p>If you can&#8217;t do any of the above you can always take out the disk and place it in another Linux system. Than you can mount it, chroot to the disk and again use passwd to change the root password. Place back the disk and start the machine.</p>
<h2>10. Try to gain root trough known vulnerabilities</h2>
<p>If the system has been running for a long time (or not running) without anyone maintaining it, there&#8217;s a change it&#8217;s running a vulnerable service. This would probably take a lot of time to do. Try fingerprinting the system for running network services that have not been security patched. If there is a easy root exploit to run against the machine it might be possible to get in this way.</p>
<h2>Securing your system</h2>
<p>Securing yourself against all these options is very difficult. You can remove all removable medium drives, CD/DVD, diskette, fill your usb ports with glue, passwords on everything. The only real protection is encrypted disks on every device you can&#8217;t keep in a secure environment. If someone gains unattended physical access to your systems they have access to your data.</p>
<p>What you can do is make it very difficult, secure access to your computers as much as you think is appropriate considering the sensitivity of your data. When it comes to mobile devices, laptops netbooks and the like you should carefully consider what would happen if it gets lost or stolen and someone has access to all your data. Very good Encryption programs are freely available for Linux and you can even choose to encrypt your whole system, in some distributions this is an install option.</p>
<p>Think there is more to try? Easier ways? Think there are better ways to protect against it? Mistakes? Leave a comment. It can take a while before comments are published(different time zone)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.whatsmypass.com/10-ways-of-resetting-a-lost-linux-root-password/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Saved Password Locations</title>
		<link>http://www.whatsmypass.com/saved-password-locations</link>
		<comments>http://www.whatsmypass.com/saved-password-locations#comments</comments>
		<pubDate>Tue, 25 Nov 2008 21:12:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Password Info]]></category>
		<category><![CDATA[Trillian]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[America Online]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Internet Explorer stores]]></category>
		<category><![CDATA[Internet ExplorerIntelliFormsStorage2;]]></category>
		<category><![CDATA[LAN]]></category>
		<category><![CDATA[Messenger]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Microsoft Windows]]></category>
		<category><![CDATA[Passport.Net]]></category>
		<category><![CDATA[Registry Editor]]></category>
		<category><![CDATA[Web browser]]></category>
		<category><![CDATA[Web Data;]]></category>
		<category><![CDATA[Windows NT]]></category>
		<category><![CDATA[XML;]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://www.whatsmypass.com/?p=405</guid>
		<description><![CDATA[Many people ask about the location in the Registry or file system that applications store the passwords. Here is a list of password storage locations for popular applications compiled by Nir Sofer.
Be aware that even if you know the location of the saved password, it doesn&#8217;t mean that you can move it from one computer [...]]]></description>
			<content:encoded><![CDATA[<p>Many people ask about the location in the Registry or file system that applications store the passwords. Here is a list of password storage locations for popular applications compiled by Nir Sofer.<br />
Be aware that even if you know the location of the saved password, it doesn&#8217;t mean that you can move it from one computer to another. many applications store the passwords in a way that prevent you from moving them to another computer or user profile.<span id="more-405"></span></p>
<ul>
<li><span style="color: #3333ff;">Internet Explorer 4.00 &#8211; 6.00:</span> The passwords are stored in a secret location in the Registry known as the &#8220;Protected Storage&#8221;.<br />
The base key of the Protected Storage is located under the following key:<br />
&#8220;HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System Provider&#8221;.<br />
You can browse the above key in the Registry Editor (RegEdit), but you won&#8217;t be able to watch the passwords, because they are encrypted.<br />
Also, this key cannot easily moved from one computer to another, like you do with regular Registry keys.</p>
</li>
<li><span style="color: #3333ff;">Internet Explorer 7.00 &#8211; 8.00:</span> The new versions of Internet Explorer stores the passwords in 2 different locations.<br />
AutoComplete passwords are stored in the Registry under HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2.<br />
HTTP Authentication passwords are stored in the Credentials file under Documents and Settings\Application Data\Microsoft\Credentials , together with login passwords of LAN computers and other passwords.</p>
<p><a href="http://www.nirsoft.net/utils/internet_explorer_password.html">IE PassView</a> can be used to recover these passwords.</li>
<li><span style="color: #3333ff;">Firefox:</span> The passwords are stored in one of the following filenames: signons.txt, signons2.txt, and signons3.txt (depends on Firefox version)<br />
These password files are located inside the profile folder of Firefox, in [Windows Profile]\Application Data\Mozilla\Firefox\Profiles\[Profile Name]<br />
Also, key3.db, located in the same folder, is used for encryption/decription of the passwords.</li>
<li><span style="color: #3333ff;">Google Chrome Web browser:</span> The passwords are stored in [Windows Profile]\Local Settings\Application Data\Google\Chrome\User Data\Default\Web Data<br />
(This filename is SQLite database which contains encrypted passwords and other stuff)</li>
<li><span style="color: #3333ff;">Opera:</span> The passwords are stored in wand.dat filename, located under [Windows Profile]\Application Data\Opera\Opera\profile</li>
<li><span style="color: #3333ff;">Outlook Express (All Versions):</span> The POP3/SMTP/IMAP passwords Outlook Express are also stored in the Protected Storage, like the passwords of old versions of Internet Explorer.
</li>
<li><span style="color: #3333ff;">Outlook 98/2000:</span> Old versions of Outlook stored the POP3/SMTP/IMAP passwords in the Protected Storage, like the passwords of old versions of Internet Explorer.
<p>Both <a href="http://www.nirsoft.net/utils/mailpv.html">Mail PassView</a> and <a href="http://www.nirsoft.net/utils/pspv.html">Protected Storage PassView</a> utilities can recover these passwords.</li>
<li><span style="color: #3333ff;">Outlook 2002-2008:</span> All new versions of Outlook store the passwords in the same Registry key of the account settings.<br />
The accounts are stored in the Registry under HKEY_CURRENT_USER\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\[Profile Name]\9375CFF0413111d3B88A00104B2A6676\[Account Index]<br />
If you use Outlook to connect an account on Exchange server, the password is stored in the Credentials file, together with login passwords of LAN computers.</p>
</li>
<li><span style="color: #3333ff;">Windows Live Mail:</span> All account settings, including the encrypted passwords, are stored in [Windows Profile]\Local Settings\Application Data\Microsoft\Windows Live Mail\[Account Name]<br />
The account filename is an xml file with .oeaccount extension.
</li>
<li><span style="color: #3333ff;">ThunderBird:</span> The password file is located under [Windows Profile]\Application Data\Thunderbird\Profiles\[Profile Name]<br />
You should search a filename with .s extension.</li>
<li><span style="color: #3333ff;">Google Talk:</span> All account settings, including the encrypted passwords, are stored in the Registry under HKEY_CURRENT_USER\Software\Google\Google Talk\Accounts\[Account Name]</li>
<li><span style="color: #3333ff;">Google Desktop:</span> Email passwords are stored in the Registry under HKEY_CURRENT_USER\Software\Google\Google Desktop\Mailboxes\[Account Name]</li>
<li><span style="color: #3333ff;">MSN/Windows Messenger version 6.x and below:</span> The passwords are stored in one of the following locations:
<ol>
<li>Registry Key: HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger</li>
<li>Registry Key: HKEY_CURRENT_USER\Software\Microsoft\MessengerService</li>
<li>In the Credentials file, with entry named as &#8220;Passport.Net\\*&#8221;. (Only when the OS is XP or more)</li>
</ol>
</li>
<li><span style="color: #3333ff;">MSN Messenger version 7.x:</span> The passwords are stored under HKEY_CURRENT_USER\Software\Microsoft\IdentityCRL\Creds\[Account Name]</li>
<li><span style="color: #3333ff;">Windows Live Messenger version 8.x/9.x:</span> The passwords are stored in the Credentials file, with entry name begins with &#8220;WindowsLive:name=&#8221;.
</li>
<li><span style="color: #3333ff;">Yahoo Messenger 6.x:</span> The password is stored in the Registry, under HKEY_CURRENT_USER\Software\Yahoo\Pager<br />
(&#8221;EOptions string&#8221; value)</li>
<li><span style="color: #3333ff;">Yahoo Messenger 7.5 or later:</span> The password is stored in the Registry, under HKEY_CURRENT_USER\Software\Yahoo\Pager &#8211; &#8220;ETS&#8221; value.<br />
The value stored in &#8220;ETS&#8221; value cannot be recovered back to the original password.</li>
<li><span style="color: #3333ff;">AIM Pro:</span> The passwords are stored in the Registry, under HKEY_CURRENT_USER\Software\AIM\AIMPRO\[Account Name]</li>
<li><span style="color: #3333ff;">AIM 6.x:</span> The passwords are stored in the Registry, under HKEY_CURRENT_USER\Software\America Online\AIM6\Passwords</li>
<li><span style="color: #3333ff;">ICQ Lite 4.x/5.x/2003:</span> The passwords are stored in the Registry, under HKEY_CURRENT_USER\Software\Mirabilis\ICQ\NewOwners\[ICQ Number]<br />
(MainLocation value)</li>
<li><span style="color: #3333ff;">ICQ 6.x:</span> The password hash is stored in [Windows Profile]\Application Data\ICQ\[User Name]\Owner.mdb (Access Database)<br />
(The password hash cannot be recovered back to the original password)</li>
<li><span style="color: #3333ff;">Digsby:</span> The main password of Digsby is stored in [Windows Profile]\Application Data\Digsby\digsby.dat<br />
All other passwords are stored in Digsby servers.</li>
<li><span style="color: #3333ff;">PaltalkScene:</span> The passwords are stored in the Registry, under HKEY_CURRENT_USER\Software\Paltalk\[Account Name].</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.whatsmypass.com/saved-password-locations/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Google Clear-Text passwords</title>
		<link>http://www.whatsmypass.com/google-clear-text-passwords</link>
		<comments>http://www.whatsmypass.com/google-clear-text-passwords#comments</comments>
		<pubDate>Mon, 06 Oct 2008 11:52:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Password Info]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[Administrator]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Microsoft Vista]]></category>

		<guid isPermaLink="false">http://www.whatsmypass.com/?p=275</guid>
		<description><![CDATA[Chrome stores saves passwords in CLEAR TEXT.
1 ] Go to any site that allows you to sign in ex. webmail.pair.com
2 ] Enter your fake username. Enter a false (incorrect) password
3 ] Allow Chrome to save password ( It will prompt below the address bar)
4 ] Close Chrome
5 ] Locate and change directory using the command [...]]]></description>
			<content:encoded><![CDATA[<p>Chrome stores saves passwords in CLEAR TEXT.</p>
<p>1 ] Go to any site that allows you to sign in ex. webmail.pair.com</p>
<p>2 ] Enter your fake username. Enter a false (incorrect) password</p>
<p>3 ] Allow Chrome to save password ( It will prompt below the address bar)</p>
<p>4 ] Close Chrome</p>
<p>5 ] Locate and change directory using the command prompt to the path below</p>
<p>%:\Documents and Settings\%user name%\Local Settings\Application Data\Google\Chrome\User Data\Default\Current Session ( Path might be different in Vista )</p>
<p>6 ] Note that the &#8220;Current Session&#8221; file needs to be present in your<br />
&#8220;\Application Data\Google\Chrome\User Data\Default\&#8221; directory</p>
<p>7 ] Type this command in cmd : find &#8220;&#038;secret&#8221; &#8220;Current Session&#8221;</p>
<p>8 ] You can see that its stored in clear text.<br />
example:<br />
C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\C<br />
hrome\User Data\Default>find &#8220;&#038;secret&#8221; &#8220;Current Session&#8221;</p>
<pre>
---------- CURRENT SESSION
login_username=FakeUser&#038;secretkey=FakePass&#038;x=18&#038;y=8B</pre>
<p></P></p>
<p>Need to secure your usb drive? <a href="http://xillwillx.securestix.hop.clickbank.net/?tid=1" target="_top">Click Here!</a>  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.whatsmypass.com/google-clear-text-passwords/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How Google Chrome Stores Passwords</title>
		<link>http://www.whatsmypass.com/how-google-chrome-stores-passwords</link>
		<comments>http://www.whatsmypass.com/how-google-chrome-stores-passwords#comments</comments>
		<pubDate>Mon, 15 Sep 2008 08:42:56 +0000</pubDate>
		<dc:creator>Dev Team</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[form_manager]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[manager]]></category>
		<category><![CDATA[Microsoft Windows]]></category>
		<category><![CDATA[pretty straight forward]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[web_data_service]]></category>

		<guid isPermaLink="false">http://www.whatsmypass.com/?p=151</guid>
		<description><![CDATA[Every browser released in the last decade has some sort of password management system, and Google Chrome is no different. Sift through the Chrome source code, released under the open source project Chromium, and you&#8217;ll found out how they do it.
Let&#8217;s start at the top and work our way down.  Any time a password [...]]]></description>
			<content:encoded><![CDATA[<p>Every browser released in the last decade has some sort of password management system, and Google Chrome is no different. Sift through the Chrome source code, released under the open source project <a href="http://code.google.com/chromium/">Chromium</a>, and you&#8217;ll found out how they do it.</p>
<p>Let&#8217;s start at the top and work our way down.  Any time a password is saved, you&#8217;re first prompted with the save password bar.<br />
<span id="more-151"></span></p>
<p><img style="border: 1px solid #000000;" src="http://blog.paranoidferret.com/files/Tutorials/Chrome/Passwords/save_password.jpg" alt="Google Chrome save password prompt" /></p>
<p>In Chrome, this object is called <code>PasswordManager</code>.  This object is responsible for a lot of stuff, but what we really care about is what happens when you click &#8220;Save Password&#8221;.</p>
<p><img style="border: 1px solid #000000;" src="http://blog.paranoidferret.com/files/Tutorials/Chrome/Passwords/save_password_buttons.jpg" alt="Google Chrome save password buttons" /></p>
<p>When you click the save button, it calls the following function:</p>
<div class="syntax_hilite">
<div id="csharp-1">
<div class="csharp"><span style="color: #0000ff;">void</span> PasswordManager::<span style="color: #2b91af;">SavePasswordBar</span>::<span style="color: #2b91af;">OKButtonPressed</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span> <span style="color: #000000;">{</span><br />
form_manager_-&gt;Save<span style="color: #000000;">(</span><span style="color: #000000;">)</span>;<br />
BeginClose<span style="color: #000000;">(</span><span style="color: #000000;">)</span>;<br />
<span style="color: #000000;">}</span></div>
<div class="csharp"></div>
</div>
</div>
<table border="0">
<tbody>
<tr>
<td style="padding-left: 10px;" valign="top"><code>form_manager</code> is another object, PasswordFormManager, that sits between the user interface and the database. All this function does is call that object&#8217;s <code>Save</code> method.  It then instructs the save password prompt to close.  Here&#8217;s what the <code>Save</code> function looks like.</td>
</tr>
</tbody>
</table>
<div class="syntax_hilite">
<div id="csharp-2">
<div class="csharp"></div>
<div class="csharp"><span style="color: #0000ff;">void</span> PasswordFormManager::<span style="color: #2b91af;">Save</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span> <span style="color: #000000;">{</span><br />
DCHECK_EQ<span style="color: #000000;">(</span>state_, POST_MATCHING_PHASE<span style="color: #000000;">)</span>;<br />
DCHECK<span style="color: #000000;">(</span>!profile_-&gt;IsOffTheRecord<span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;</div>
<div class="csharp">
<p><span style="color: #0000ff;">if</span> <span style="color: #000000;">(</span>IsNewLogin<span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span><br />
SaveAsNewLogin<span style="color: #000000;">(</span><span style="color: #000000;">)</span>;<br />
<span style="color: #0000ff;">else</span><br />
UpdateLogin<span style="color: #000000;">(</span><span style="color: #000000;">)</span>;<br />
<span style="color: #000000;">}</span></div>
</div>
</div>
<p>Again, pretty straight forward. The first two items will log information for debugging purposes and aren&#8217;t compiled in release mode. It then checks if it is adding a new password or updating an existing one. For the purposes of this tutorial, let&#8217;s look at adding a new password.</p>
<div class="syntax_hilite">
<div id="csharp-3">
<div class="csharp"></div>
<div class="csharp"><span style="color: #0000ff;">void</span> PasswordFormManager::<span style="color: #2b91af;">SaveAsNewLogin</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span> <span style="color: #000000;">{</span><br />
DCHECK_EQ<span style="color: #000000;">(</span>state_, POST_MATCHING_PHASE<span style="color: #000000;">)</span>;<br />
DCHECK<span style="color: #000000;">(</span>IsNewLogin<span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;<br />
<span style="font-style: italic; color: #007f00;">// The new_form is being used to sign in, so it is preferred.</span><br />
DCHECK<span style="color: #000000;">(</span>pending_credentials_.<span style="color: #2b91af;">preferred</span><span style="color: #000000;">)</span>;<br />
<span style="font-style: italic; color: #007f00;">// new_form contains the same basic data as observed_form_ (because its the</span><br />
<span style="font-style: italic; color: #007f00;">// same form), but with the newly added credentials.</span></div>
<div class="csharp">
<p>DCHECK<span style="color: #000000;">(</span>!profile_-&gt;IsOffTheRecord<span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;</p>
<p>WebDataService* web_data_service =<br />
profile_-&gt;GetWebDataService<span style="color: #000000;">(</span>Profile::<span style="color: #2b91af;">IMPLICIT_ACCESS</span><span style="color: #000000;">)</span>;<br />
<span style="color: #0000ff;">if</span> <span style="color: #000000;">(</span>!web_data_service<span style="color: #000000;">)</span> <span style="color: #000000;">{</span><br />
NOTREACHED<span style="color: #000000;">(</span><span style="color: #000000;">)</span>;<br />
<span style="color: #0000ff;">return</span>;<br />
<span style="color: #000000;">}</span><br />
pending_credentials_.<span style="color: #2b91af;">date_created</span> = Time::<span style="color: #2b91af;">Now</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;<br />
web_data_service-&gt;AddLogin<span style="color: #000000;">(</span>pending_credentials_<span style="color: #000000;">)</span>;<br />
<span style="color: #000000;">}</span></div>
</div>
</div>
<p>Most of this function is debug code.  What we care about is the call to <code>AddLogin</code>.  The <code>WebDataService</code> object is responsible for meta data associated with a web page.</p>
<div class="syntax_hilite">
<div id="csharp-4">
<div class="csharp"></div>
<div class="csharp"><span style="color: #0000ff;">void</span> WebDataService::<span style="color: #2b91af;">AddLogin</span><span style="color: #000000;">(</span><span style="color: #0000ff;">const</span> PasswordForm&amp; form<span style="color: #000000;">)</span> <span style="color: #000000;">{</span><br />
GenericRequest&lt;PasswordForm&gt;* request =<br />
<span style="color: #0000ff;">new</span> GenericRequest&lt;PasswordForm&gt;<br />
<span style="color: #000000;">(</span><span style="color: #0000ff;">this</span>, GetNextRequestHandle<span style="color: #000000;">(</span><span style="color: #000000;">)</span>, <span style="color: #0000ff;">NULL</span>, form<span style="color: #000000;">)</span>;<br />
RegisterRequest<span style="color: #000000;">(</span>request<span style="color: #000000;">)</span>;<br />
ScheduleTask<span style="color: #000000;">(</span>NewRunnableMethod<br />
<span style="color: #000000;">(</span><span style="color: #0000ff;">this</span>, &amp;WebDataService::<span style="color: #2b91af;">AddLoginImpl</span>, request<span style="color: #000000;">)</span><span style="color: #000000;">)</span>;<br />
<span style="color: #000000;">}</span></div>
</div>
</div>
<p>Now we&#8217;re getting a little more complicated. Adding a password is done asynchronously and this function handles scheduling that task. It seemed to be very important that nothing interrupt Chrome&#8217;s user interface &#8211; this keeps it feeling fast and responsive. Now let&#8217;s take a look at what happens when this task is run.</p>
<div class="syntax_hilite">
<div id="csharp-5">
<div class="csharp"></div>
<div class="csharp"><span style="color: #0000ff;">void</span> WebDataService::<span style="color: #2b91af;">AddLoginImpl</span><span style="color: #000000;">(</span><br />
GenericRequest&lt;PasswordForm&gt;* request<span style="color: #000000;">)</span> <span style="color: #000000;">{</span><br />
<span style="color: #0000ff;">if</span> <span style="color: #000000;">(</span>db_ &amp;&amp; !request-&gt;IsCancelled<span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span> <span style="color: #000000;">{</span><br />
<span style="color: #0000ff;">if</span> <span style="color: #000000;">(</span>db_-&gt;AddLogin<span style="color: #000000;">(</span>request-&gt;GetArgument<span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span><br />
ScheduleCommit<span style="color: #000000;">(</span><span style="color: #000000;">)</span>;<br />
<span style="color: #000000;">}</span><br />
request-&gt;RequestComplete<span style="color: #000000;">(</span><span style="color: #000000;">)</span>;<br />
<span style="color: #000000;">}</span></div>
</div>
</div>
<p>We&#8217;re almost at the heart of it all.  The important call here is <code>AddLogin</code>, so let&#8217;s dive into that.</p>
<div class="syntax_hilite">
<div id="csharp-6">
<div class="csharp"></div>
<div class="csharp"><span style="color: #0000ff;">bool</span> WebDatabase::<span style="color: #2b91af;">AddLogin</span><span style="color: #000000;">(</span><span style="color: #0000ff;">const</span> PasswordForm&amp; form<span style="color: #000000;">)</span> <span style="color: #000000;">{</span><br />
SQLStatement s;<br />
std::<span style="color: #0000ff;">string</span> encrypted_password;<br />
<span style="color: #0000ff;">if</span> <span style="color: #000000;">(</span>s.<span style="color: #2b91af;">prepare</span><span style="color: #000000;">(</span>db_,<br />
<span style="color: #a31515;">&#8220;INSERT OR REPLACE INTO logins &#8220;</span><br />
<span style="color: #a31515;">&#8220;(origin_url, action_url, username_element, username_value, &#8220;</span><br />
<span style="color: #a31515;">&#8221; password_element, password_value, submit_element, &#8220;</span><br />
<span style="color: #a31515;">&#8221; signon_realm, ssl_valid, preferred, date_created, &#8220;</span><br />
<span style="color: #a31515;">&#8221; blacklisted_by_user, scheme) &#8220;</span><br />
<span style="color: #a31515;">&#8220;VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)&#8221;</span><span style="color: #000000;">)</span> != SQLITE_OK<span style="color: #000000;">)</span> <span style="color: #000000;">{</span><br />
NOTREACHED<span style="color: #000000;">(</span><span style="color: #000000;">)</span> &lt;&lt;<span style="color: #a31515;">&#8220;Statement prepare failed&#8221;</span>;<br />
<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span>;<br />
<span style="color: #000000;">}</span></div>
<div class="csharp">
<p>s.<span style="color: #2b91af;">bind_string</span><span style="color: #000000;">(</span><span style="color: #ff0000;">0</span>, form.<span style="color: #2b91af;">origin</span>.<span style="color: #2b91af;">spec</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;<br />
s.<span style="color: #2b91af;">bind_string</span><span style="color: #000000;">(</span><span style="color: #ff0000;">1</span>, form.<span style="color: #2b91af;">action</span>.<span style="color: #2b91af;">spec</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;<br />
s.<span style="color: #2b91af;">bind_wstring</span><span style="color: #000000;">(</span><span style="color: #ff0000;">2</span>, form.<span style="color: #2b91af;">username_element</span><span style="color: #000000;">)</span>;<br />
s.<span style="color: #2b91af;">bind_wstring</span><span style="color: #000000;">(</span><span style="color: #ff0000;">3</span>, form.<span style="color: #2b91af;">username_value</span><span style="color: #000000;">)</span>;<br />
s.<span style="color: #2b91af;">bind_wstring</span><span style="color: #000000;">(</span><span style="color: #ff0000;">4</span>, form.<span style="color: #2b91af;">password_element</span><span style="color: #000000;">)</span>;<br />
Encryptor::<span style="color: #2b91af;">EncryptWideString</span><span style="color: #000000;">(</span>form.<span style="color: #2b91af;">password_value</span>, &amp;encrypted_password<span style="color: #000000;">)</span>;<br />
s.<span style="color: #2b91af;">bind_blob</span><span style="color: #000000;">(</span><span style="color: #ff0000;">5</span>, encrypted_password.<span style="color: #2b91af;">data</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>,<br />
static_cast&lt;int&gt;<span style="color: #000000;">(</span>encrypted_password.<span style="color: #2b91af;">length</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;<br />
s.<span style="color: #2b91af;">bind_wstring</span><span style="color: #000000;">(</span><span style="color: #ff0000;">6</span>, form.<span style="color: #2b91af;">submit_element</span><span style="color: #000000;">)</span>;<br />
s.<span style="color: #2b91af;">bind_string</span><span style="color: #000000;">(</span><span style="color: #ff0000;">7</span>, form.<span style="color: #2b91af;">signon_realm</span><span style="color: #000000;">)</span>;<br />
s.<span style="color: #2b91af;">bind_int</span><span style="color: #000000;">(</span><span style="color: #ff0000;">8</span>, form.<span style="color: #2b91af;">ssl_valid</span><span style="color: #000000;">)</span>;<br />
s.<span style="color: #2b91af;">bind_int</span><span style="color: #000000;">(</span><span style="color: #ff0000;">9</span>, form.<span style="color: #2b91af;">preferred</span><span style="color: #000000;">)</span>;<br />
s.<span style="color: #2b91af;">bind_int64</span><span style="color: #000000;">(</span><span style="color: #ff0000;">10</span>, form.<span style="color: #2b91af;">date_created</span>.<span style="color: #2b91af;">ToTimeT</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;<br />
s.<span style="color: #2b91af;">bind_int</span><span style="color: #000000;">(</span><span style="color: #ff0000;">11</span>, form.<span style="color: #2b91af;">blacklisted_by_user</span><span style="color: #000000;">)</span>;<br />
s.<span style="color: #2b91af;">bind_int</span><span style="color: #000000;">(</span><span style="color: #ff0000;">12</span>, form.<span style="color: #2b91af;">scheme</span><span style="color: #000000;">)</span>;<br />
<span style="color: #0000ff;">if</span> <span style="color: #000000;">(</span>s.<span style="color: #2b91af;">step</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span> != SQLITE_DONE<span style="color: #000000;">)</span> <span style="color: #000000;">{</span><br />
NOTREACHED<span style="color: #000000;">(</span><span style="color: #000000;">)</span>;<br />
<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span>;<br />
<span style="color: #000000;">}</span><br />
<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span>;<br />
<span style="color: #000000;">}</span></div>
</div>
</div>
<p>We&#8217;ve finally reached the end of the line. This function actually builds the SQL statement for adding a new password to Chrome&#8217;s SQLite database. Of course, the password isn&#8217;t stored in plain text so Chrome has an <code>Encryptor</code> object responsible for encrypting the password first.  Let&#8217;s take a look at that.</p>
<div class="syntax_hilite">
<div id="csharp-7">
<div class="csharp"></div>
<div class="csharp"><span style="color: #0000ff;">bool</span> Encryptor::<span style="color: #2b91af;">EncryptString</span><span style="color: #000000;">(</span><span style="color: #0000ff;">const</span> std::<span style="color: #2b91af;">string</span>&amp; plaintext,<br />
std::<span style="color: #0000ff;">string</span>* ciphertext<span style="color: #000000;">)</span> <span style="color: #000000;">{</span><br />
DATA_BLOB input;<br />
input.<span style="color: #2b91af;">pbData</span> = const_cast&lt;BYTE*&gt;<span style="color: #000000;">(</span><br />
reinterpret_cast&lt;const <span style="color: #0000ff;">BYTE</span>*&gt;<span style="color: #000000;">(</span>plaintext.<span style="color: #2b91af;">data</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;<br />
input.<span style="color: #2b91af;">cbData</span> = static_cast&lt;DWORD&gt;<span style="color: #000000;">(</span>plaintext.<span style="color: #2b91af;">length</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;</div>
<div class="csharp">
<p>DATA_BLOB output;<br />
<span style="color: #0000ff;">BOOL</span> result = CryptProtectData<span style="color: #000000;">(</span>&amp;input, L<span style="color: #a31515;">&#8220;&#8221;</span>, <span style="color: #0000ff;">NULL</span>, <span style="color: #0000ff;">NULL</span>, <span style="color: #0000ff;">NULL</span>,<br />
<span style="color: #ff0000;">0</span>, &amp;output<span style="color: #000000;">)</span>;<br />
<span style="color: #0000ff;">if</span> <span style="color: #000000;">(</span>!result<span style="color: #000000;">)</span><br />
<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span>;</p>
<p><span style="font-style: italic; color: #007f00;">// this does a copy</span><br />
ciphertext-&gt;assign<span style="color: #000000;">(</span>reinterpret_cast&lt;std::<span style="color: #0000ff;">string</span>::<span style="color: #2b91af;">value_type</span>*&gt;<br />
<span style="color: #000000;">(</span>output.<span style="color: #2b91af;">pbData</span><span style="color: #000000;">)</span>, output.<span style="color: #2b91af;">cbData</span><span style="color: #000000;">)</span>;</p>
<p>LocalFree<span style="color: #000000;">(</span>output.<span style="color: #2b91af;">pbData</span><span style="color: #000000;">)</span>;<br />
<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span>;<br />
<span style="color: #000000;">}</span></div>
</div>
</div>
<p>The important piece here is <code><a href="http://msdn.microsoft.com/en-us/library/aa380261.aspx">CryptProtectData</a></code>, which is a Windows API function for encrypting data. Data encrypted with this function is pretty solid. It can only be decrypted on the same machine and by the same user that encrypted it in the first place.</p>
<p>So what&#8217;d we learn by investigating Chrome&#8217;s password management system? Well, we learned that Google uses SQLite as the storage mechanism for passwords and other web page related data. We also see that Google has done a great job extracting Windows specific code from the cross-platform stuff. The only Windows specific code here is the encryption function, which can easily be ported by creating a different Encryptor object for each OS.</p>
<p>Credits to: <a href="http://blog.paranoidferret.com">http://blog.paranoidferret.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.whatsmypass.com/how-google-chrome-stores-passwords/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Reveal Google Chrome Passwords</title>
		<link>http://www.whatsmypass.com/reveal-google-chrome-passwords</link>
		<comments>http://www.whatsmypass.com/reveal-google-chrome-passwords#comments</comments>
		<pubDate>Mon, 08 Sep 2008 23:54:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.whatsmypass.com/?p=117</guid>
		<description><![CDATA[Being a new browser most people don&#8217;t know where to find their stored passwords. To reveal your passwords

Open your Google Chrome browser, click on the Wrench icon in the upper right corner of the screen, then click Options.


In the Options window click the Minor Tweaks tab.



Make sure that &#8220;Offer to save passwords&#8221; is selected.



On the [...]]]></description>
			<content:encoded><![CDATA[<p>Being a new browser most people don&#8217;t know where to find their stored passwords. To reveal your passwords</p>
<p><span id="more-117"></span></p>
<p>Open your Google Chrome browser, click on the Wrench icon in the upper right corner of the screen, then click Options.<br />
<image src="http://www.whatsmypass.com/files/GCPwrench.jpg"><br />
</p>
<p>In the Options window click the Minor Tweaks tab.<br />
<br />
<image src="http://www.whatsmypass.com/files/GCPAsswords1_Full.jpg"><br />
</p>
<p>Make sure that &#8220;Offer to save passwords&#8221; is selected.<br />
<br />
<image src="http://www.whatsmypass.com/files/GCPAsswords2_Full.jpg"><br />
<br />
On the Passwords window select the website from which you want to retrieve the password, then click the &#8220;Show Password&#8221; button. The password will appear below the button and the button will now read &#8220;Hide Password.&#8221;<br />
<br />
<image src="http://www.whatsmypass.com/files/GCPAsswords3_Full.jpg"><br /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.whatsmypass.com/reveal-google-chrome-passwords/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
