论坛风格切换切换到宽版
  • 899阅读
  • 7回复

盜QQ号方法,一般人我不告诉他 [复制链接]

上一主题 下一主题
 
只看楼主 倒序阅读 使用道具 楼主  发表于: 2008-12-11
近有朋友哭诉,QQ被盗,并產生极大的报復心理,也想盗几个QQ号! p&B98c  
本人第一善良,倡导和為贵,第二菜鸟,不懂高深的编程知识。為应付某些朋友的纠缠,想到以下方法应付他: p&B98c  
p&B98c  
一、观察法: p&B98c  
初级:站在别人的身后看著他输入密码。成功率73% p&B98c  
高级:买通网吧管理员,在网吧装上摄象机。成功率100% p&B98c  
p&B98c  
二、收买法: p&B98c  
初级:随便抓一个上网的人,掏出一万人民币 ,叫他说出亲朋好友的一个QQ密码。成功率71% p&B98c  
高级:收购腾讯公司,要什麼号码有什麼号码。成功率100%。 p&B98c  
p&B98c  
三、威逼法 p&B98c  
初级:拿把菜刀、砍刀之类架在上网人的脖子上逼他说出密码。成功率100% p&B98c  
高级:叫来自己的部下道:『俺看见你上班上网,说出密码。』成功率100% p&B98c  
p&B98c  
四、诱惑法: p&B98c  
初级:准备毛巾、纸巾若乾,在网吧做痛苦欲绝状,并做好持久、连续做战准备。成功率31% p&B98c  
高级:找一个看得顺眼的上网人,发展成為丈夫、妻子、情人之类的角色,怕他(她)不把密码双手奉  上? 成功率100%。 p&B98c  
p&B98c  
五、瞎蒙法: p&B98c  
初级:闭上眼睛,乱敲键盘,看自己的运气。成功率0.00181%。 p&B98c  
高级:出钱雇民工敲键盘。成功率0.0181% p&B98c  
只看该作者 沙发  发表于: 2008-12-12
    

只看该作者 板凳  发表于: 2008-12-12

只看该作者 地板  发表于: 2008-12-12
我到是有个科学的方法....... 7=vYO|a/4  
学会QQ密码的算法~你就可以破解任何一个QQ密码!
[ 此帖被光辉在2008-12-12 09:33重新编辑 ]
红黄蓝绿系统

只看该作者 4楼 发表于: 2008-12-12
在QQ对应号码目录下user.db文件从800h起20字节为与密码相关数据,其中后16个字节和Hash后摘要有关.这20个字节后4个字节是QQ号码。 7=vYO|a/4  
7=vYO|a/4  
下列是一些常用的Hash算法(从微软加密头文件中提取出来的) 7=vYO|a/4  
7=vYO|a/4  
#define CALG_MD2 1 MD2算法 7=vYO|a/4  
7=vYO|a/4  
#define CALG_MD4 2 MD4算法 7=vYO|a/4  
7=vYO|a/4  
#define CALG_MD5 3 MD5算法 7=vYO|a/4  
7=vYO|a/4  
#define CALG_SHA 4 SHA算法 7=vYO|a/4  
7=vYO|a/4  
#define CALG_SHA1 4 SHA1算法 7=vYO|a/4  
7=vYO|a/4  
#define CALG_MAC 5 MAC算法 7=vYO|a/4  
7=vYO|a/4  
#define ALG_SID_RIPEMD 6 RIPEMD算法 7=vYO|a/4  
7=vYO|a/4  
#define ALG_SID_RIPEMD160 7 RIPEMD160算法 7=vYO|a/4  
7=vYO|a/4  
#define ALG_SID_SSL3SHAMD5 8 SSL3SHAMD5算法 7=vYO|a/4  
7=vYO|a/4  
#define CALG_HMAC 9 HMAC算法 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
而MD5算法中需要使用下面几个初始值 7=vYO|a/4  
7=vYO|a/4  
context->state[0] = 0x67452301; 7=vYO|a/4  
7=vYO|a/4  
context->state[1] = 0xefcdab89; 7=vYO|a/4  
7=vYO|a/4  
context->state[2] = 0x98badcfe; 7=vYO|a/4  
7=vYO|a/4  
context->state[3] = 0x10325476; 7=vYO|a/4  
7=vYO|a/4  
呵呵,在QQ中一搜索,果然几个特征值赫然在目。但是显然QQ使用了上述20个字节中的前四个字节对MD5密文又做了处理,我跟了两天还是没有头绪(头晕脑胀)。但是我发现把这四个字节改成00 00 00 00,然后登陆输入正确密码,仍然会提示密码不一致是否到服务器验证,选择是,然后验证成功后,这20个字节的后16个字节恰好就是密码的MD5密文。有兴趣的高手可以继续看看奥(其中密码比较函数地址为:004A7E0C) 7=vYO|a/4  
7=vYO|a/4  
例: 7=vYO|a/4  
7=vYO|a/4  
1B D5 01 00 5D D7 87 19 0D 92 6D E2 0A 56 E9 19 63 0F 5A E1 DF CA 20 05 7=vYO|a/4  
7=vYO|a/4  
DF CA 20 05即是我的QQ号。不过可不要暴力破解我的奥:) 7=vYO|a/4  
7=vYO|a/4  
1B D5 01 00 5D D7 87 19 0D 92 6D E2 0A 56 E9 19 63 0F 5A E1就是和口令相关的数据 7=vYO|a/4  
7=vYO|a/4  
如果把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密文。 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
算法源代码如下: 7=vYO|a/4  
7=vYO|a/4  
头文件: 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
// Decrypt.h: interface for the CDecrypt class. 7=vYO|a/4  
7=vYO|a/4  
// 7=vYO|a/4  
7=vYO|a/4  
////////////////////////////////////////////////////////////////////// 7=vYO|a/4  
7=vYO|a/4  
#define AFX_DECRYPT_H__916D97B8_C120_4435_BE23_2CF35B8763A2__INCLUDED_ 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
#if _MSC_VER > 1000 7=vYO|a/4  
7=vYO|a/4  
#pragma once 7=vYO|a/4  
7=vYO|a/4  
#endif // _MSC_VER > 1000 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
#define _WIN32_WINNT 0x0400 7=vYO|a/4  
7=vYO|a/4  
#include <afxpriv.h> 7=vYO|a/4  
7=vYO|a/4  
#include <Wincrypt.h> 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
class CDecrypt 7=vYO|a/4  
7=vYO|a/4  
{ 7=vYO|a/4  
7=vYO|a/4  
public: 7=vYO|a/4  
7=vYO|a/4  
BOOL EncryptMessage(const TCHAR *Message,TCHAR *pHashData,int *pHashLen,int Algorithm); 7=vYO|a/4  
7=vYO|a/4  
CDecrypt(); 7=vYO|a/4  
7=vYO|a/4  
virtual ~CDecrypt(); 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
}; 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
#endif // !defined(AFX_DECRYPT_H__916D97B8_C120_4435_BE23_2CF35B8763A2__INCLUDED_) 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
CPP文件: 7=vYO|a/4  
7=vYO|a/4  
// Decrypt.cpp: implementation of the CDecrypt class. 7=vYO|a/4  
7=vYO|a/4  
// 7=vYO|a/4  
7=vYO|a/4  
////////////////////////////////////////////////////////////////////// 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
#include stdafx.h 7=vYO|a/4  
7=vYO|a/4  
#include Decrypt.h 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
#ifdef _DEBUG 7=vYO|a/4  
7=vYO|a/4  
#undef THIS_FILE 7=vYO|a/4  
7=vYO|a/4  
static char THIS_FILE[]=__FILE__; 7=vYO|a/4  
7=vYO|a/4  
#define new DEBUG_NEW 7=vYO|a/4  
7=vYO|a/4  
#endif 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
////////////////////////////////////////////////////////////////////// 7=vYO|a/4  
7=vYO|a/4  
// Construction/Destruction 7=vYO|a/4  
7=vYO|a/4  
////////////////////////////////////////////////////////////////////// 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
CDecrypt::CDecrypt() 7=vYO|a/4  
7=vYO|a/4  
{ 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
} 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
CDecrypt::~CDecrypt() 7=vYO|a/4  
7=vYO|a/4  
{ 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
} 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
BOOL CDecrypt::EncryptMessage(const TCHAR *Message,TCHAR *pHashData,int *pHashLen,int Algorithm) 7=vYO|a/4  
7=vYO|a/4  
{ 7=vYO|a/4  
7=vYO|a/4  
BOOL bResult = TRUE; 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
HCRYPTPROV hProv = NULL; 7=vYO|a/4  
7=vYO|a/4  
HCRYPTKEY hKey = NULL; 7=vYO|a/4  
7=vYO|a/4  
HCRYPTKEY hXchgKey = NULL; 7=vYO|a/4  
7=vYO|a/4  
HCRYPTHASH hHash = NULL; 7=vYO|a/4  
7=vYO|a/4  
DWORD dwLength; 7=vYO|a/4  
7=vYO|a/4  
// Get handle to user default provider. 7=vYO|a/4  
7=vYO|a/4  
if (CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0)) 7=vYO|a/4  
7=vYO|a/4  
{ 7=vYO|a/4  
7=vYO|a/4  
// Create hash object. 7=vYO|a/4  
7=vYO|a/4  
if (CryptCreateHash(hProv, Algorithm, 0, 0, &hHash)) 7=vYO|a/4  
7=vYO|a/4  
{ 7=vYO|a/4  
7=vYO|a/4  
// Hash password string. 7=vYO|a/4  
7=vYO|a/4  
dwLength = sizeof(TCHAR)*_tcslen(Message); 7=vYO|a/4  
7=vYO|a/4  
if (CryptHashData(hHash, (BYTE *)Message, dwLength, 0)) 7=vYO|a/4  
7=vYO|a/4  
{ 7=vYO|a/4  
7=vYO|a/4  
CryptGetHashParam(hHash,2,(BYTE*)pHashData,(DWORD*)pHashLen,0); 7=vYO|a/4  
7=vYO|a/4  
} 7=vYO|a/4  
7=vYO|a/4  
else 7=vYO|a/4  
7=vYO|a/4  
{ 7=vYO|a/4  
7=vYO|a/4  
// Error during CryptHashData! 7=vYO|a/4  
7=vYO|a/4  
bResult = FALSE; 7=vYO|a/4  
7=vYO|a/4  
} 7=vYO|a/4  
7=vYO|a/4  
CryptDestroyHash(hHash); // Destroy session key. 7=vYO|a/4  
7=vYO|a/4  
} 7=vYO|a/4  
7=vYO|a/4  
else 7=vYO|a/4  
7=vYO|a/4  
{ 7=vYO|a/4  
7=vYO|a/4  
// Error during CryptCreateHash! 7=vYO|a/4  
7=vYO|a/4  
bResult = FALSE; 7=vYO|a/4  
7=vYO|a/4  
} 7=vYO|a/4  
7=vYO|a/4  
CryptReleaseContext(hProv, 0); 7=vYO|a/4  
7=vYO|a/4  
} 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
return bResult; 7=vYO|a/4  
7=vYO|a/4  
} 7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
7=vYO|a/4  
使用: 7=vYO|a/4  
7=vYO|a/4  
TCHAR Hash[255]; 7=vYO|a/4  
7=vYO|a/4  
int Len=-1; 7=vYO|a/4  
7=vYO|a/4  
CString Message=Your Message; 7=vYO|a/4  
7=vYO|a/4  
m_decrypt.EncryptMessage((LPCSTR)(Message),Hash,&Len,CALG_MD5); 7=vYO|a/4  
7=vYO|a/4  
Hash中存放的就是MD5密文。你可以使用上述算法 7=vYO|a/4  
7=vYO|a/4  
#define CALG_MD2 1 MD2算法 7=vYO|a/4  
7=vYO|a/4  
#define CALG_MD4 2 MD4算法 7=vYO|a/4  
7=vYO|a/4  
#define CALG_MD5 3 MD5算法 7=vYO|a/4  
7=vYO|a/4  
#define CALG_SHA 4 SHA算法 7=vYO|a/4  
7=vYO|a/4  
来替换CALG_MD5参数.
红黄蓝绿系统

只看该作者 5楼 发表于: 2008-12-12
  

只看该作者 6楼 发表于: 2008-12-12
     彻底崩溃!!那么复杂,头都算大了~~
只看该作者 7楼 发表于: 2008-12-12
哦哦哦哦哦哦哦哦哦,强啊         
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个