按键精灵post请求_[教程]以本论坛为例,⼿把⼿教你使⽤按键
精灵POST登陆⽹页...
本帖最后由 isaacc 于 2012-2-26 11:08 编辑
整个操作,很⽆脑。
只要你够勤快,你学不会,你来咬我。
懒⼈和伸⼿党就直接复制代码去玩吧,但我不是叫你拿去⼲坏事。
准备⼯具:WPE和IE浏览器,WPE是⼀个⽐较不和谐的东西,我就不上传了,想学的⼈⾃⼰去下载⼀个,注意360要添加⽩名单。
你有什么好的拦截数据⼯具,你可以⽤你⾃⼰觉得习惯的东西,我选择⽤WPE,是因为我只会⽤WPE,各种复杂的⼯具对我来说,不如WPE直接让send与recv函数呈现数据那么直观。如果你们觉得WPE的操作太复杂了,学不会了,我只能和你说,少玩点国产游戏吧,你已经被毒害的不轻了。
好的,现在你可以⼀边看这个帖⼦,⼀边跟着动⼿。
2、如果你已经是登录状态,请点击“退出”按钮。
3、打开WPE,点击⽬标程序,选择IEXPLORE.EXE,你会发现有好多个IEPLORE.EXE,这个时候怎么办呢,⼀个个的尝试,怎么尝试呢,选择⽬标之后,点击像 播放 ⼀样的三⾓形按钮 开始拦截,之后刷新 才打开的论坛的浏览器,如果此时,WPE上发现数据包有动静了,那么就说明我们要拦截封包的IE就是这个进程了,然后把WPE停⽌拦截掉。
操作如下图:选择进程
点击三⾓形的这个拦截按钮进⾏测试:
当接收到你刷新页⾯时,如果接收到数据包了,就说明这个进程就是我们需要拦截封包的进程了。然后我们先点击红⾊⽅块的停⽌拦截按钮,停⽌拦截,停⽌后WPE视图中会弹出⼀个数据包窗⼝,把它关掉,现在暂时不需要他。
然后在把你的论坛帐号,密码输⼊好,但是不要点击登录,到WPE⾥,再次点击 拦截按钮,开始拦截以后,回到论坛页⾯,点击登录。回到WPE,点击停⽌拦截按钮。好了,关键的数据包就被我们抓到了。如下图所⽰,第⼀条是包头,第⼆条是你的帐号,密码,是否勾选了⾃动登录。
我们把我们拦截到的内容复制出来先,如图所⽰,选择⼀条封包,把下⾯拉⼤点。选择右边的明⽂部
分,拉到底,然后复制。出来粘贴到记事本⾥。
我复制出来的包头
这是帐号,密码,cookie时间,其他的都不⽤管。
username=isaacc&cookietime=2592000&password=******&quickforward=yes&handlekey=ls
复制代码
现在,我们要开始写代码了。打开按键精灵。
⾸先把帐号,密码,cookie这些东西设置好。
username ="isaacc"'你的帐号password ="******"'你的密码
buf ="username="& username &"&cookietime=2592000&password="& password &"&quickforward=yes&handlekey=ls"
创建⽬前最⾼版本的XMLHTTP对象。
Sethttp = CreateObject("Msxml2.ServerXMLHTTP.4.0")
然后注意看包头:
/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1
复制代码
这⼀段就是登录页⾯的地址,也就是,你⿏标指向登录按钮便可以看到状态栏上显⽰出来的东西。
所以,我们POST的地址为:
http.Open "POST", "bbs.anjian/member.php?
mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1",False
然后我们要先取出论坛的Cookie设置,所以要先发送⼀次,把cookie设置取出来,留做登陆时设置cookie。
http.send buf
cookie = ResponseHeader("Set-Cookie")'获取Cookie设置
由于对象已经发送过⼀次了,要再次发送,需要重新设置POST地址。
那么,现在我们根据WPE拦截到的包头来进⾏设置POST的包头吧。
Accept: application/x-shockwave-flash, image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
复制代码
http.setRequestHeader"Accept", _
"application/x-shockwave-flash, "& _
"image/gif, image/jpeg, image/pjpeg, "& _
"application/x-ms-application, "& _
"application/x-ms-xbap, "& _
"application/vnd.ms-xpsdocument, "& _
"application/xaml+xml, */*"
'Accept表⽰我们所⽤的浏览器能接受的Content-type
复制代码
http.setRequestHeader"Referer", "bbs.anjian/forum.php"'Referer表⽰当前页⾯是从那个页⾯链接来的
Accept-Language: zh-cn
复制代码
http.setRequestHeader"Accept-Language","zh-cn"'语⾔设置
然后的 User-Agent: 这⼀段不要管,这是你电脑上的信息。
Content-Type: application/x-www-form-urlencoded
复制代码
http.setRequestHeader"Content-Type","application/x-www-form-urlencoded"'Content-Type表⽰客户端提交给服务器⽂本内容的编码⽅式
Accept-Encoding: 这⼀段也不⽤管,这是关于什么压缩的,反正不懂,直接⽆视它。
Host: bbs.anjian
复制代码
http.setRequestHeader"Host","bbs.anjian"'Host表⽰提交请求的主机最新论坛网站源码
Content-Length: 80
复制代码
http.setRequestHeader"Content-Length", Len(buf)'表⽰提交的数据字节⼤⼩,也就是发送帐号密码这⼀条封包的长度。我们上⾯有⼀个buf变量,你不会忘了吧。
Connection: Keep-Alive
复制代码
http.setRequestHeader "Connection", "Keep-Alive" '数据传递完并不⽴即关闭连接
Cache-Control: no-cache
复制代码
http.setRequestHeader "Cache-Control", "no-cache" '返回消息中的Cache⽤于指定⽹页缓存
最后,设置Cookie头,利⽤我们第⼀次POST取出来的东西来设置。
http.setRequestHeader "Cookie", cookie
然后,恩。。发送。。
http.Send buf
最后我们把POST后的论坛源码取出来看看是否登录成功了,如果成功了,会显⽰你的积分等信息。
http.open "GET", "bbs.anjian/", False
Http.Send
xmlBody = http.ResponseBody
Set ObjStream = CreateObject("Adodb.Stream")
With ObjStream
.
Type = 1
.Mode = 3
.Open
.Write xmlBody
.Position = 0
.Type = 2
.Charset = "GB2312"
BytesToBstr = .ReadText
.Close
End With
Call Plugin.Sys.SetCLB(BytesToBstr)
MsgBox "已将登陆后论坛的源⽂件放到剪切板,粘贴到记事本即可看到。"好了,完整的源码在下⾯:
Dim username, password, cookie, buf
username = "isaacc" '你的帐号
password = "******" '你的密码
buf = "username=" & username & "&cookietime=2592000&password=" & password & "&quickforward=yes&handlekey=ls" Set http = CreateObject("Msxml2.ServerXMLHTTP.4.0")
http.open "POST", "bbs.anjian/member.php?
mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1", False
http.send buf
cookie = ResponseHeader("Set-Cookie")'获取Cookie设置
http.open "POST", "bbs.anjian/member.php?
mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1", False
http.setRequestHeader "Accept", _
"application/x-shockwave-flash, " & _
"image/gif, image/jpeg, image/pjpeg, " & _
"application/x-ms-application, " & _
"application/x-ms-xbap, " & _
"application/vnd.ms-xpsdocument, " & _
"application/xaml+xml, */*"
'表⽰我们所⽤的浏览器能接受的Content-type
http.setRequestHeader "Referer", "bbs.anjian/forum.php" '当前页⾯是从那个页⾯链接来的
http.setRequestHeader "Accept-Language", "zh-cn" '语⾔设置
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" '表⽰客户端提交给服务器⽂本内容的编码⽅式
'http.setRequestHeader "Accept-Encoding", "gzip, deflate"
http.setRequestHeader "Host", "bbs.anjian" '所请求的主机
http.setRequestHeader "Content-Length", Len(buf) '表⽰提交的数据字节⼤⼩
http.setRequestHeader "Connection", "Keep-Alive" '数据传递完并不⽴即关闭连接
http.setRequestHeader "Cache-Control", "no-cache" '返回消息中的Cache⽤于指定⽹页缓存
http.setRequestHeader "Cookie", cookie
http.Send buf
http.open "GET", "bbs.anjian/", False
Http.Send
xmlBody = http.ResponseBody
Set ObjStream = CreateObject("Adodb.Stream")
With ObjStream
.Type = 1//2-⽂本模式读取,1-⼆进制模式
.Mode = 3 //3-读写,1-读,2-写
.Open
.Write xmlBody
.Position = 0
.Type = 2
.Charset = "GB2312"
BytesToBstr = .ReadText
.Close
End With
Call Plugin.Sys.SetCLB(BytesToBstr)
MsgBox "已将登陆后论坛的源⽂件放到剪切板,粘贴到记事本即可看到。"复制代码

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。