Click here to Skip to main content
Click here to Skip to main content
Go to top

Protected Storage

, 23 Feb 2004
Rate this:
Please Sign up or sign in to vote.
This program wil reveal Outlook Passwords, Deleted Outlook Account passwords, IE:Password-Protected sites passwords, MSN Explorer Signup passwords, IE AutoComplete Passwords, IE Auto Complete Fields , and in 9x it will show the cached dialup passwords


Passwords are stored using Protected Storage in Windows 2k and XP. This program will reveal :-

  1. Outlook Passwords
  2. Deleted Outlook Account passwords
  3. IE : Password-Protected sites passwords
  4. MSN Explorer Signup passwords
  5. IE AutoComplete Passwords
  6. IE Auto Complete Fields in 9x it will show the cached dialup passwords


There is a tool called Protected storage Explorer at CodeProject itself but it does not have source code. I tried to do what this program does by looking at that tool without any source code - lol - and that tool helped me to do this program.

Using the code

This Program first enumerates the outlook accounts from registry located at HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Account Manager\\Accounts first and then storing it in a structure.

SMTP Password2 - this string value contains the corresponding ItemName of protected storage data password of that account, then it continues enumerating the protected storage; loads the pstorec.dll and gets the address of function "PStoreCreateInstance". Then it calls PStoreCreateInstance to get an instance of IPStore, then it will enumerate the protected storage passwords. It will also enumerate cashed passwords in Win 9x.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Comments and Discussions

GeneralNice but... PinmemberY_R3-Sep-05 0:54 
GeneralWonderful job.....Well done PinmemberNagareshwar5-Jul-05 10:09 
GeneralOulook Interface 22:50 
GeneralUnhandled COM exception Pinmembercodeproject4sba17-May-05 4:20 
I compiled the code, and at one point at runtime PStore->ReadItem() raises an unhandled exception because the underlying COM invocation fails with HR=-2146697215:
     kernel32.dll!_RaiseException@16()   + 0x52    
     ProtectedStorage.exe!_CxxThrowException(void * pExceptionObject=0x0012e308, const _s__ThrowInfo * pThrowInfo=0x0041a904)   + 0x39     C++
     ProtectedStorage.exe!_com_raise_error(HRESULT hr=-2146697215, IErrorInfo * perrinfo=0x00000000)   Line 19     C++
     ProtectedStorage.exe!_com_issue_errorex(HRESULT hr=-2146697215, IUnknown * punk=0x0097356c, const _GUID & riid={...})   Line 67     C++
>     ProtectedStorage.exe!IPStore::ReadItem(unsigned long Key=0, _GUID * pItemType=0x0012f7dc, _GUID * pItemSubtype=0x0012eb74, unsigned short * szItemName=0x00154de0, unsigned long * pcbData=0x0012e678, unsigned char * * ppbData=0x0012e684, _PST_PROMPTINFO * pPromptInfo=0x00000000, unsigned long dwFlags=0)   Line 185     C++
     ProtectedStorage.exe!EnumPStorage(int Save=0)   Line 215 + 0x3a     C++
     ProtectedStorage.exe!DLgProc(HWND__ * hDlg=0x001310e4, unsigned int message=272, unsigned int wParam=1773814, long lParam=0)   Line 415 + 0x7     C++
     user32.dll!_InternalCallWinProc@20()   + 0x28    
     user32.dll!_UserCallDlgProcCheckWow@32()   + 0x50e    
     user32.dll!_DefDlgProcWorker@20()   + 0x7f    
     user32.dll!_DefDlgProcA@16()   + 0x22    
     user32.dll!_InternalCallWinProc@20()   + 0x28    
     user32.dll!_UserCallWinProcCheckWow@32()   + 0xb7    
     user32.dll!_SendMessageWorker@20()   + 0xc8    
     user32.dll!_InternalCreateDialog@28()   + 0x4d2    
     user32.dll!_InternalDialogBox@24()   + 0xa3    
     user32.dll!_DialogBoxIndirectParamAorW@24()   + 0x36    
     user32.dll!_DialogBoxParamA@20()   + 0x4c    
     ProtectedStorage.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x00141f15, int nCmdShow=1)   Line 483 + 0x17     C++
     ProtectedStorage.exe!WinMainCRTStartup()   Line 251 + 0x30     C
     kernel32.dll!_BaseProcessStart@4()   + 0x23    

Any clue?
How can I work around this exception?

Generalcompiled code detected as trojan Pinmemberantifumo1-Dec-04 20:35 
QuestionWhat About ... Pinmemberqcha0s28-Feb-04 7:40 
AnswerRe: What About ... PinmemberY_R22-Sep-05 2:45 
GeneralRe: What About ... PinmemberJeroen-bart Engelen22-Sep-05 23:04 
GeneralRe: What About ... PinmemberY_R24-Sep-05 0:31 
GeneralRe: What About ... PinmemberJeroen-bart Engelen24-Sep-05 2:52 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.140916.1 | Last Updated 24 Feb 2004
Article Copyright 2004 by Hirosh Joseph
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid