zoukankan      html  css  js  c++  java
  • qq申请器,有源码,用post提交

    '
    ''''''''''''''''''''''''by 梦幻天空 http://menghuan.tk''''''''''''''''''''''''''''''''''''''''
    
    Private Declare Sub Sleep Lib " kernel32 " (ByVal dwMilliseconds As Long )
    ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Declare Function MultiByteToWideChar Lib " kernel32 " (ByVal CodePage As Long , ByVal dwFlags As Long , ByVal lpMultiByteStr As Long , ByVal cchMultiByte As Long , ByVal lpWideCharStr As Long , ByVal cchWideChar As Long ) As Long
    Private Const CP_UTF8 = 65001

    ' ''''''''''''''''''''''''''''''以上为转UTF8所用''''''''''''''''''''''''''''''''''
    Private Declare Function OleLoadPicturePath Lib " oleaut32.dll " (ByVal szURLorPath As Long , ByVal punkCaller As Long , ByVal dwReserved As Long , ByVal clrReserved As OLE_COLOR, ByRef riid As TGUID, ByRef ppvRet As IPicture) As Long

    Private Type TGUID
    Data1
    As Long
    Data2
    As Integer
    Data3
    As Integer
    Data4(
    0 To 7 ) As Byte
    End Type
    ' ''''''''''''''''''''''''''''以上为显示验证码图片所用,大家也可以用其他方法获取验证码图片'''''''''''''''''''''''''''''''''
    Dim StrZ As String
    Dim mima As String
    Dim sqgs As Integer



    Private Sub Command1_Click()

    Label1.Caption
    = " 正在请求http://reg.qq.com/页面 "
    Dim strURL As String
    strURL
    = " http://reg.qq.com/ "
    Inet1.Execute strURL,
    " HEAD "
    dengdai
    ' 等待数据加载完成
    Label1.Caption = " 正在请求http://reg.qq.com/页面----------------完成! "



    Label1.Caption
    = " 正在获取验证码图片 "
    Randomize
    Set Picture1.Picture = LoadPicture ( " http://ptlogin2.qq.com/getimage?aid=8000203 " & Int ( 119 * Rnd + 1891 ))
    thePCCOOKIE
    = Inet1.GetHeader
    jishu
    = InStr (thePCCOOKIE, " PCCOOKIE= " )
    thePCCOOKIE
    = Mid (thePCCOOKIE, jishu + 9 , 64 )
    ' yanzm = InputBox("请输入验证码")
    Text1.SetFocus

    ' '''''''''''''''''''''''''''''''''''''''''标签1'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Do Until Len (Text1.Text) = 4 ' 这里我是让程序等待Text1.Text的长度等于四,相信大家也发现了这样的弊端吧。有人问怎么不用Text1_Change事件啊!但这样就会转移过程,Inet控件封装了http协议以及ftp协议,使用起来非常方便,但也有弊端,转换了过程Inet控件里面的Cookies值也变了。申请就会失败。
    DoEvents ' 望高手支招
    Sleep 200

    ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Loop
    Label1.Caption
    = " 正在请求加密用的key "
    Inet1.Execute
    " http://reg.qq.com/cgi-bin/checkconn?seed0.6238868014441234 " , " GET "
    dengdai
    ' 等待数据加载完成
    Label1.Caption = " 正在请求加密用的key----------------完成! "
    jishu
    = InStr (StrZ, " g_dataArray " )
    dataArray1
    = Mid (StrZ, jishu + 33 , 400 )
    dataArrayS
    = Split (dataArray1, Chr( 34 ) & Chr( 44 ) & Chr( 34 ), - 1 )
    dataArray1
    = Mid (StrZ, jishu + 446 , 64 )
    dataArray
    = Split (dataArray1, " , " , - 1 )

    Dim RealPostData As String
    Dim l_otherRandSeed As String
    l_otherRandSeed
    = thePCCOOKIE
    nameRand
    = Array ( 6818 , 8315 , 5123 , 2252 , 0 , 0 , 0 , 0 , 0 , 0 )


    ' elementsArrName= QQ网页注册方式、Email注册方式、昵称、申请类型(网页 or Email)、年、月、日、男、女、密码、确认密码、china、北京、东城区、验证码) ----------注册的个人信息
    mima = " menghuan.tk "
    elementsArrName
    = Array ( " qq " , " email " , " 梦幻天空 " , " 0 " , " 1986 " , " 11 " , " 25 " , " 1 " , " 2 " , mima, mima, " 1 " , " 11 " , " 1 " , Text1.Text)

    len1
    = Len (l_otherRandSeed)
    base
    = Val( " &H " & Right (l_otherRandSeed, 2 ))
    For i = 0 To 12
    a
    = dataArray(i) Xor base
    b
    = 13 - i - 1
    For j = 0 To 3
    a
    = a Xor nameRand(j)
    Next
    a
    = a Mod 15
    RealPostData
    = RealPostData + dataArrayS(b) + " = " + elementsArrName(a) + " & " ' 得到post用的数据
    Next
    Label1.Caption
    = " 正在post,请稍等! "

    Dim myhead As String
    strURL
    = " http://reg.qq.com/cgi-bin/getnum "
    myhead
    = " Content-Type: application/x-www-form-urlencoded "
    Inet1.Execute strURL,
    " post " , RealPostData, myhead
    dengdai
    ' 等待数据加载完成
    Label1.Caption = " 完成! "


    qq1
    = InStr (StrZ, " xyz= " )

    If qq1 <> 0 Then
    qq2
    = InStr (qq1, StrZ, " ; " )
    qqhm
    = Mid (StrZ, qq1 + 5 , qq2 - qq1 - 6 )
    Label1.Caption
    = " 恭喜你申请到一个QQ号 " + qqhm

    Text2.Text
    = qqhm + " ---- " + mima + vbCrLf + Text2.Text
    sqgs
    = sqgs + 1
    Label3.Caption
    = " 申请记录: " & sqgs


    Open App.Path
    & " \qq.txt " For Append As # 1
    Print #
    1 , qqhm; " " ; mima
    Close #
    1
    Else
    qq1
    = InStr (StrZ, " 此IP申请的操作过于频繁 " )
    If qq1 <> 0 Then
    Label1.Caption
    = " 此IP已被限制,请更换IP,或使用邮箱QQ。 "
    Else
    qq1
    = InStr (StrZ, " f_showInfoInLayer " )
    If qq1 <> 0 Then
    Label1.Caption
    = " 验证码错误 "

    Else
    qq1
    = InStr (StrZ, " 现在申请的人过多 " )
    If qq1 <> 0 Then
    Label1.Caption
    = " 现在申请的人过多,系统无法响应您的请求。 "
    End If
    End If
    End If

    End If
    Text1.Text
    = ""
    ' Call Command1_Click
    End Sub


    Private Sub Command2_Click()



    Dim strURL As String
    Label1.Caption
    = " 正在请求http://emailreg.qq.com/页面 "
    strURL
    = " http://emailreg.qq.com/cgi-bin/signup/step1?regtype=0 "
    Inet1.Execute strURL,
    " GET "

    dengdai
    Label1.Caption
    = " 正在请求http://emailreg.qq.com/页面 完成 "


    asdfg
    = Mid (StrZ, 531 , 64 )
    Randomize
    Set Picture1.Picture = LoadPicture ( " http://ptlogin2.qq.com/getimage?aid=8000203 " & Int ( 119 * Rnd + 1891 ))


    ' yanzm = InputBox("请输入验证码")

    Text1.SetFocus
    waittime (
    10 )

    Do Until Len (Text1.Text) = 4
    DoEvents
    Sleep
    200
    Loop


    thesjzm
    = sjzm
    ' Randomize
    Dim postqq As String
    mima
    = " menghuan.tk " ' 密码
    postqq = " email= " & thesjzm & Chr( 38 ) & " nick=梦幻天空 " & Chr( 38 ) & " age=1989 " & Chr( 38 ) & " age_month=9 " & Chr( 38 ) & " age_day=20 " & Chr( 38 ) & " regsex=1 " & Chr( 38 ) & " password_1= " & mima & Chr( 38 ) & " password_2= " & mima & Chr( 38 ) & " Country=1 " & Chr( 38 ) & " State=1 " & Chr( 38 ) & " City=1 " & Chr( 38 ) & " validecode= " & Text1.Text & Chr( 38 ) & " regqqmail=1 " & Chr( 38 ) & " asdfg= " & asdfg & Chr( 38 ) ' regqqmail=1是qq.com 。 regqqmail=3是foxmail.com

    Label1.Caption
    = " 正在post "
    Dim myhead As String

    strURL
    = " http://emailreg.qq.com/cgi-bin/signup/reg_result "

    myhead
    = " Content-Type: application/x-www-form-urlencoded "
    Inet1.Execute strURL,
    " post " , postqq, myhead

    dengdai
    Label1.Caption
    = " post完成 "


    qq1
    = InStr (StrZ, " 申请成功 " )
    If qq1 <> 0 Then
    qq2
    = InStr (qq1 + 90 , StrZ, Chr( 34 ))
    qqhm
    = Mid (StrZ, qq1 + 86 , qq2 - qq1 - 86 )
    thesjzm
    = thesjzm & " @qq.com "

    Text2.Text
    = qqhm + " --- " + thesjzm + " --- " + mima + vbCrLf + Text2.Text
    sqgs
    = sqgs + 1
    Label3.Caption
    = " 申请记录: " & sqgs




    Open App.Path
    & " \qqemail.txt " For Append As # 1
    Print #
    1 , qqhm; " " ; mima; " " ; thesjzm ' regqqmail=1是qq.com 。 regqqmail=3是foxmail.com
    Close # 1
    Label1.Caption
    = " 恭喜你申请到一个QQ号 " + qqhm + " " + thesjzm
    Else

    qq1
    = InStr (StrZ, " 非法访问 " )
    If qq1 <> 0 Then
    Label1.Caption
    = " 非法访问 "

    Else
    qq1
    = InStr (StrZ, " 验证码错误 " )
    If qq1 <> 0 Then
    Label1.Caption
    = " 验证码错误 "
    Else
    qq1
    = InStr (StrZ, " 操作过于频繁 " )
    If qq1 <> 0 Then
    Label1.Caption
    = " 操作过于频繁 "
    Else
    qq1
    = InStr (StrZ, " 该帐号已被注册 " )
    If qq1 <> 0 Then
    Label1.Caption
    = " 该帐号已被注册 "
    End If
    End If

    End If
    End If

    End If
    Text1.Text
    = ""

    ' Call Command2_Click
    End Sub

    Private Sub Form_Load()
    Label1.Caption
    = " 请选择申请通道 "
    Label2.Caption
    = " 请输入验证码 "
    Label3.Caption
    = " 申请记录: "
    Command1.Caption
    = " 无保QQ "
    Command2.Caption
    = " 邮箱QQ "

    End Sub

    Private Sub Form_Unload(Cancel As Integer )
    End
    End Sub

    Private Sub Inet1_StateChanged(ByVal State As Integer )
    If State = icResponseCompleted Then
    Dim BinBuff() As Byte

    BinBuff
    = Inet1.GetChunk( 0 , icByteArray)
    StrZ
    = Utf8ToUnicode(BinBuff)
    End If
    End Sub
    Sub dengdai()
    Do Until Inet1.StillExecuting = False ' 等待数据加载完成
    DoEvents
    Loop
    End Sub
    Private Function sjzm() As String ' 随机字母
    Dim i%, trec%, a%()
    trec
    = 12
    ReDim a%(trec)


    Randomize
    For i = 1 To trec
    a(i)
    = Int ( Rnd * ( 122 - 97 + 1 )) + 97 ' 小写字母
    ' a(i) = Int(Rnd * (90 - 65 + 1)) + 65 '大写字母
    Next i
    Me.Cls
    For i = 1 To trec

    sjzm
    = Chr(a(i)) & sjzm

    Next i
    End Function



    Public Function LoadPicture (ByVal strFileName As String ) As Picture ' 获取验证码图片模块
    Dim IID As TGUID
    With IID
    .Data1
    = & H7BF80980
    .Data2
    = & HBF32
    .Data3
    = & H101A
    .Data4(
    0 ) = & H8B
    .Data4(
    1 ) = & HBB
    .Data4(
    2 ) = & H0
    .Data4(
    3 ) = & HAA
    .Data4(
    4 ) = & H0
    .Data4(
    5 ) = & H30
    .Data4(
    6 ) = & HC
    .Data4(
    7 ) = & HAB
    End With

    On Error GoTo LocalErr

    OleLoadPicturePath StrPtr(strFileName),
    0 & , 0 & , 0 & , IID, LoadPicture
    Exit Function
    LocalErr:
    Set LoadPicture = VB.LoadPicture(strFileName)
    Err.Clear
    End Function


    Private Sub waittime(delay As Single ) ' ''''''''''''''''''''''''等待模板
    Dim starttime As Single
    starttime
    = Timer
    Do Until ( Timer - starttime) > delay
    shijian
    = Timer - starttime
    Label1.Caption
    = " 延时十秒 " & shijian
    DoEvents
    Loop
    Label1.Caption
    = " 延时十秒 10 "
    End Sub

    Function Utf8ToUnicode(ByRef Utf() As Byte ) As String
    Dim lRet As Long
    Dim lLength As Long
    Dim lBufferSize As Long
    lLength
    = UBound (Utf) - LBound (Utf) + 1
    If lLength <= 0 Then Exit Function
    lBufferSize
    = lLength * 2
    Utf8ToUnicode
    = String $(lBufferSize, Chr( 0 ))
    lRet
    = MultiByteToWideChar(CP_UTF8, 0 , VarPtr(Utf( 0 )), lLength, StrPtr(Utf8ToUnicode), lBufferSize)
    If lRet <> 0 Then
    Utf8ToUnicode
    = Left (Utf8ToUnicode, lRet)
    Else
    Utf8ToUnicode
    = ""
    End If
    End Function

    Private Sub Picture1_Click()
    Randomize
    Set Picture1.Picture = LoadPicture ( " http://ptlogin2.qq.com/getimage?aid=8000203 " & Int ( 119 * Rnd + 1891 ))


    Text1.SetFocus
    End Sub

    转自:http://topic.csdn.net/u/20100724/23/1d229a85-7709-4b44-9886-27d24504fe79.html?53850#r_achor
  • 相关阅读:
    关于Spring Test 小结
    排他思想---->tab选项卡
    对金额的格式化
    js 对多个id 的封装方法
    form表单数据封装成json格式并提交给服务器
    js技巧专题篇: 页面跳转
    对象流
    线程
    异常处理、常见异常说明
    数据库(概念、语法、DBMS、SQL语言:创建数据库、表格,添加、修改、删除数据记录)
  • 原文地址:https://www.cnblogs.com/sysdzw/p/1939317.html
Copyright © 2011-2022 走看看