转一个获取MSN口令的代码

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情
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

rgds,
Gregory R. Panakkal
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 密码获取

 **** 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.

1157

Enumerating Windows credentials with CredEnumerate function (Windows XP/2003 Only)

The following code sample enumerates all credentials of the current logged on user, and dump them into the standard output.First, the CWinCredentials class encapsulates the calls to credentials API

1861

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

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

weixin_30820151的博客 595

Trickbot***又开始造作了,VNC、RDP等远程工具凭证都是它的目标

在2018年11月份,趋势科技发现了一个带有密码抓取模块的Trickbot***变种,它可以从大量的应用程序中窃取凭证。在今年1月份,趋势科技继续观察到了Trickbot的多个变种(如TrojanSpy.Win32.TRICKBOT.AZ和Trojan.Win32.MERETAM.AD),它们或多或少都具备一些新的能力。显然,Trickbot的开发者并没有停止对它的更新。最近...

weixin_34228662的博客 218

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

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

onefish的专栏 1738

从注册表中还原MSNMessenger口令

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

yztgx的专栏 1336

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
上一篇: 家乡 二 十 四 桥的介绍
下一篇: 装修终于接近尾声了
yztgx
博客等级 码龄25年 2粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值