WPE|52wpe|我爱WPE

 找回密码
 注册会员
搜索
  • 2573查看
  • 20回复

主题

好友

142

积分

注册会员

发表于 2011-8-17 19:10:52 |显示全部楼层
在qq对应号码目录下user.db文件从800h起20字节为与密码相关数据,其中后16个字节和Hash后摘要有关.这20个字节后4个字节是qq号码。

下列是一些常用的Hash算法(从微软加密头文件中提取出来的)

#define CALG_MD2 1 MD2算法

#define CALG_MD4 2 MD4算法

#define CALG_MD5 3 MD5算法

#define CALG_SHA 4 SHA算法

#define CALG_SHA1 4 SHA1算法

#define CALG_MAC 5 MAC算法

#define ALG_SID_RIPEMD 6 RIPEMD算法

#define ALG_SID_RIPEMD160 7 RIPEMD160算法

#define ALG_SID_SSL3SHAMD5 8 SSL3SHAMD5算法

#define CALG_HMAC 9 HMAC算法


而MD5算法中需要使用下面几个初始值

context->state[0] = 0x67452301;

context->state[1] = 0xefcdab89;

context->state[2] = 0x98badcfe;

context->state[3] = 0x10325476;

呵呵,在qq中一搜索,果然几个特征值赫然在目。但是显然qq使用了上述20个字节中的前四个字节对MD5密文又做了处理,我跟了两天还是没有头绪(头晕脑胀)。但是我发现把这四个字节改成00 00 00 00,然后登陆输入正确密码,仍然会提示密码不一致是否到服务器验证,选择是,然后验证成功后,这20个字节的后16个字节恰好就是密码的MD5密文。有兴趣的高手可以继续看看奥(其中密码比较函数地址为:004A7E0C)

例:

1B D5 01 00 5D D7 87 19 0D 92 6D E2 0A 56 E9 19 63 0F 5A E1 DF CA 20 05

DF CA 20 05即是我的qq号。不过可不要暴力破解我的奥:)

1B D5 01 00 5D D7 87 19 0D 92 6D E2 0A 56 E9 19 63 0F 5A E1就是和口令相关的数据

如果把1B D5 01 00改为00 00 00 00,然后按上述步骤登陆后,5D D7 87 19 0D 92 6D E2 0A 56 E9 19 63 0F 5A E1即变为口令的MD5密文。


算法源代码如下:

头文件:


// Decrypt.h: interface for the CDecrypt class.

//

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

#define AFX_DECRYPT_H__916D97B8_C120_4435_BE23_2CF35B8763A2__INCLUDED_


#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000


#define _WIN32_WINNT 0x0400

#include

#include


class CDecrypt

{

public:

BOOL EncryptMessage(const TCHAR *Message,TCHAR *pHashData,int *pHashLen,int Algorithm);

CDecrypt();

virtual ~CDecrypt();


};


#endif // !defined(AFX_DECRYPT_H__916D97B8_C120_4435_BE23_2CF35B8763A2__INCLUDED_)


CPP文件:

// Decrypt.cpp: implementation of the CDecrypt class.

//

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


#include stdafx.h

#include Decrypt.h


#ifdef _DEBUG

#undef THIS_FILE

static char THIS_FILE[]=__FILE__;

#define new DEBUG_NEW

#endif


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

// Construction/Destruction

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


CDecrypt::CDecrypt()

{


}


CDecrypt::~CDecrypt()

{


}


BOOL CDecrypt::EncryptMessage(const TCHAR *Message,TCHAR *pHashData,int *pHashLen,int Algorithm)

{

BOOL bResult = TRUE;


HCRYPTPROV hProv = NULL;

HCRYPTKEY hKey = NULL;

HCRYPTKEY hXchgKey = NULL;

HCRYPTHASH hHash = NULL;

DWORD dwLength;

// Get handle to user default provider.

if (CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0))

{

// Create hash object.

if (CryptCreateHash(hProv, Algorithm, 0, 0, &hHash))

{

// Hash password string.

dwLength = sizeof(TCHAR)*_tcslen(Message);

if (CryptHashData(hHash, (BYTE *)Message, dwLength, 0))

{

CryptGetHashParam(hHash,2,(BYTE*)pHashData,(DWORD*)pHashLen,0);

}

else

{

// Error during CryptHashData!

bResult = FALSE;

}

CryptDestroyHash(hHash); // Destroy session key.

}

else

{

// Error during CryptCreateHash!

bResult = FALSE;

}

CryptReleaseContext(hProv, 0);

}


return bResult;

}



使用:

TCHAR Hash[255];

int Len=-1;

CString Message=Your Message;

m_decrypt.EncryptMessage((LPCSTR)(Message),Hash,&Len,CALG_MD5);

Hash中存放的就是MD5密文。你可以使用上述算法

#define CALG_MD2 1 MD2算法

#define CALG_MD4 2 MD4算法

#define CALG_MD5 3 MD5算法

#define CALG_SHA 4 SHA算法

来替换CALG_MD5参数

主题

好友

2080

积分

禁止访问

发表于 2011-8-17 19:19:58 |显示全部楼层
不懂。、、、
回复

使用道具 举报

主题

好友

7164

积分

骨灰级元老

发表于 2011-8-17 22:55:55 |显示全部楼层
不懂,看不懂。。。
回复

使用道具 举报

主题

好友

2586

积分

金牌会员

发表于 2011-8-17 23:14:14 |显示全部楼层
太麻烦 。。看不懂
回复

使用道具 举报

主题

好友

2232

积分

金牌会员

发表于 2011-8-18 06:31:51 |显示全部楼层
是啊,看不懂。。。
回复

使用道具 举报

主题

好友

12

积分

新手上路

发表于 2011-8-20 13:54:52 |显示全部楼层
新来小白,急需权限,看帖就回~~
回复

使用道具 举报

主题

好友

1140

积分

金牌会员

发表于 2011-8-26 05:50:32 |显示全部楼层
太深奥了。看不懂、。
回复

使用道具 举报

主题

好友

2720

积分

荣誉贵宾

发表于 2011-9-10 22:51:25 |显示全部楼层
。。。晕。你是研究生嘛。。。这么难。。。。
回复

使用道具 举报

主题

好友

574

积分

高级会员

发表于 2011-9-10 23:49:11 |显示全部楼层
一个MD5密码不知道要破解到什么时候!晕
回复

使用道具 举报

主题

好友

1116

积分

金牌会员

发表于 2011-12-20 01:44:32 |显示全部楼层
路过,拿分,走人!!
回复

使用道具 举报

主题

好友

100

积分

注册会员

发表于 2011-12-20 18:10:46 |显示全部楼层
回去慢慢研究是什么东西,不明白
回复

使用道具 举报

主题

好友

2

积分

新手上路

发表于 2011-12-20 20:17:58 |显示全部楼层
kan bu diong
回复

使用道具 举报

主题

好友

2

积分

新手上路

发表于 2011-12-20 20:19:15 |显示全部楼层
dfgsdfggsdg
回复

使用道具 举报

主题

好友

1178

积分

金牌会员

发表于 2011-12-21 15:49:44 |显示全部楼层
太深奥了。看不懂、。
回复

使用道具 举报

主题

好友

2544

积分

金牌会员

发表于 2012-1-3 16:33:07 |显示全部楼层
这麽复杂啊
回复

使用道具 举报

主题

好友

44

积分

新手上路

发表于 2012-2-12 15:28:08 |显示全部楼层
我把文件给你发过去,能帮我破解一下吗?
回复

使用道具 举报

主题

好友

40

积分

新手上路

发表于 2012-2-15 23:43:10 |显示全部楼层
作为一个新人,我发现要看到更有用的帖子,必须权限要高,所以我每看一个帖子,都会顶一下,这样权限就慢慢的高了
回复

使用道具 举报

主题

好友

1478

积分

金牌会员

发表于 2012-6-18 15:52:50 |显示全部楼层
够深奥的,不明白
回复

使用道具 举报

主题

好友

34

积分

新手上路

发表于 2012-6-21 09:57:11 |显示全部楼层
权限权限权限
回复

使用道具 举报

主题

好友

20

积分

新手上路

发表于 2012-6-21 13:08:42 |显示全部楼层
这都是神马 啊啊
回复

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册会员

手机版|Archiver|WPE|52wpe|我爱WPE ( 闽ICP备15009081号 )

GMT+8, 2024-6-26 21:37 , Processed in 0.077260 second(s), 16 queries .

返回顶部