[重回VB6]简单的QQWeb网游辅助工具开发之旅-1、序言,另类的QQ登陆方法
2010-11-03 00:08
399 查看
VB6在90年代时很流行,随着时代的变迁,VB.Net\C#的出现,VB6开始慢慢被淡忘。由于VB6本身有他致命的缺点,导致份额日渐下降。但是他的优点也是非常明显的。通过本系列文章,记录我这几天开发一个QQ小游戏辅助工具的历程,让大家了解和重温VB6。
当然,在本次代码中,由于时间限制,我不能将代码写得完美。或许有些不规范和容错能力不强,请大家见谅。当然这个辅助工具也不是我第一次的作品。之前还有几个。本次开发也是总结之前的经验作为一个经验之谈。
首先我们谈一下VB6在常规情况下的优缺点。
当然他的缺点也是多线程,不支持64位等等。每一个语言都有他自己的优缺点,我们只需要适当运用,就可以在不同程序和需求中找到自己合适的,快速的语言进行开发自己的项目。
好了,我们现在开始进行我们第一步的开发。就是准备工作。首先本次我们只需要两个必备软件。
1、VB6精装版(http://download.csdn.net/source/888517)
2、HttpWatch Professional Edition(http://www.crsky.com/soft/3455.html)
安装完毕后,我们就要开始进入编程第一步。
首先我们要进行Web游戏操作,第一步是登陆。首先我们需要了解一个概念。网页状态是如何确定的(session、Cookies)。我在之前看不少博文,很多人在登陆时遇到不少阻拦,因为VB6的MD5加密方式是基于字符串,而腾讯的MD5_3加密方式是基于字节。所以要运算出验证码、获取验证码图片,相对于个新手来说是一个非常用难度的操作,腾讯还会不定时更新登陆的。以下我教大家如何简易绕过这个登陆,并且做到一个不用输入账号密码的效果。
我们首先观察一个地方
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/26/213b0b81b75c183e40248abe3dd00641.png)
我们能否借花敬佛,让腾讯帮我们完成这个登陆过程呢?其实是可以的。
首先我贴出一个JS代码,看看大家明白我想干什么。
我让这个登陆框的位置移动到左上角,因为好像ie6不支持fixed属性,我也没时间在不同ie版本测试。不过大概原理都是这样子呢。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/26/738ccacad938d880a06113b08008fa69.png)
在VB6创建一个窗体,在工具栏中引用以下组件。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/26/3a70ec061d21973043a38e37985bd2a8.png)
第一个是IE的窗口,而第二个是以后会用到的信息显示的组件(listview)。
将IEFrame随意改个名字叫"W” ,然后我们双击窗体,获取其Load事件。
让窗体打开时首先读入校友的首页。在没完全读取前我们先将他隐藏。不让用户看到。 接下来,我们选择IEFrame中的DocumentComplete事件,让其在加载完毕后,帮我做点事。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/26/3542dda0fb9be979b5c34ec7266b6d04.png)
好啦,我们看到一个可以自动登陆的效果了。那么我们如何获取登陆后的信息呢?我们继续在DocumentComplete事件中写入以下代码
代码意思是如果进入了首页,就表示登陆完成啦~我们就获取网页的cookie,将其登陆后的事情全部交给程序去处理。看样子浏览器的事情已经告一段落,我们也成功完美地登陆了。里面使用了2个函数,第一个是我自己编写的管理Cookies模块,和一个decode解码函数,现在你们可以先新建一个Web_Mod的模块,将代码放入去,以下是Cookie函数,在Web_Mod模块中
以下是关于文字的转换函数,在自建的Public_Mod模块中。
当然,在本次代码中,由于时间限制,我不能将代码写得完美。或许有些不规范和容错能力不强,请大家见谅。当然这个辅助工具也不是我第一次的作品。之前还有几个。本次开发也是总结之前的经验作为一个经验之谈。
首先我们谈一下VB6在常规情况下的优缺点。
优点 |
IDE精简 |
生成程序较为绿色 |
代码可操作能力较强,属于面向过程编程 |
支持的文档和示例较多 |
好了,我们现在开始进行我们第一步的开发。就是准备工作。首先本次我们只需要两个必备软件。
1、VB6精装版(http://download.csdn.net/source/888517)
2、HttpWatch Professional Edition(http://www.crsky.com/soft/3455.html)
安装完毕后,我们就要开始进入编程第一步。
首先我们要进行Web游戏操作,第一步是登陆。首先我们需要了解一个概念。网页状态是如何确定的(session、Cookies)。我在之前看不少博文,很多人在登陆时遇到不少阻拦,因为VB6的MD5加密方式是基于字符串,而腾讯的MD5_3加密方式是基于字节。所以要运算出验证码、获取验证码图片,相对于个新手来说是一个非常用难度的操作,腾讯还会不定时更新登陆的。以下我教大家如何简易绕过这个登陆,并且做到一个不用输入账号密码的效果。
我们首先观察一个地方
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/26/213b0b81b75c183e40248abe3dd00641.png)
我们能否借花敬佛,让腾讯帮我们完成这个登陆过程呢?其实是可以的。
首先我贴出一个JS代码,看看大家明白我想干什么。
document.getElementById('main').getElementsByTagName('div')[0].style.zIndex = 99999; document.getElementById('main').getElementsByTagName('div')[0].style.position='fixed'; document.getElementById('main').getElementsByTagName('div')[0].style.left = 0; document.getElementById('main').getElementsByTagName('div')[0].style.top = 0; document.getElementById('main').getElementsByTagName('div')[0].style.margin = 0;
我让这个登陆框的位置移动到左上角,因为好像ie6不支持fixed属性,我也没时间在不同ie版本测试。不过大概原理都是这样子呢。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/26/738ccacad938d880a06113b08008fa69.png)
在VB6创建一个窗体,在工具栏中引用以下组件。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/26/3a70ec061d21973043a38e37985bd2a8.png)
第一个是IE的窗口,而第二个是以后会用到的信息显示的组件(listview)。
将IEFrame随意改个名字叫"W” ,然后我们双击窗体,获取其Load事件。
Private Sub Form_Load() W.Navigate "http://pengyou.qq.com/index.html" W.Width = 0 W.Left = -100 End Sub
让窗体打开时首先读入校友的首页。在没完全读取前我们先将他隐藏。不让用户看到。 接下来,我们选择IEFrame中的DocumentComplete事件,让其在加载完毕后,帮我做点事。
If url = "http://pengyou.qq.com/index.html" Then W.Document.parentWindow.execScript ("document.getElementById('main').getElementsByTagName('div')[0].style.zIndex = 99999;") W.Document.parentWindow.execScript ("document.getElementById('main').getElementsByTagName('div')[0].style.position='fixed';") W.Document.parentWindow.execScript ("document.getElementById('main').getElementsByTagName('div')[0].style.left = 0;") W.Document.parentWindow.execScript ("document.getElementById('main').getElementsByTagName('div')[0].style.top = 0;") W.Document.parentWindow.execScript ("document.getElementById('main').getElementsByTagName('div')[0].style.margin = 0;") W.Width = 6015 W.Left = 0 End If
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/26/3542dda0fb9be979b5c34ec7266b6d04.png)
好啦,我们看到一个可以自动登陆的效果了。那么我们如何获取登陆后的信息呢?我们继续在DocumentComplete事件中写入以下代码
If InStr(1, url, "http://home.pengyou.qq.com/index.php") > 0 Then W.Width = 0 W.Left = -100 Web_Mod.SetCookieString (W.Document.cookie) Main.Caption = Main.Caption & " - " & Public_Mod.decodeURI(Web_Mod.Cookies("name")) End If
代码意思是如果进入了首页,就表示登陆完成啦~我们就获取网页的cookie,将其登陆后的事情全部交给程序去处理。看样子浏览器的事情已经告一段落,我们也成功完美地登陆了。里面使用了2个函数,第一个是我自己编写的管理Cookies模块,和一个decode解码函数,现在你们可以先新建一个Web_Mod的模块,将代码放入去,以下是Cookie函数,在Web_Mod模块中
Public Cookies As Object Public openid As String Public openkey As String Public Sub SetCookieString(s As String) Set Cookies = CreateObject("Scripting.Dictionary") tmp = Split(s, ";") For i = 0 To UBound(tmp) If UBound(Split(tmp(i), "=")) > 0 Then Cookies.Add Trim(Split(tmp(i), "=")(0)), Trim(Split(tmp(i), "=")(1)) Else Cookies.Add Trim(Split(tmp(i), "=")(0)), "" End If Next End Sub Public Sub AddCookie(key As String, item As String) If Cookies Is Nothing Then If Cookies.Exists(key) = True Then Cookies(key) = item Else Cookies.Add key, item End If End If End Sub Public Sub RemoveCookie(key As String) If Not (Cookies Is Nothing) Then If Cookies.Exists(key) = True Then Cookies.Remove (key) End If End If End Sub Public Function GetCookieString() As String Dim cookie As String If Not (Cookies Is Nothing) Then arrKeys = Cookies.keys arrItems = Cookies.Items For i = 0 To Cookies.Count - 1 cookie = cookie & arrKeys(i) & "=" & arrItems(i) & "; " Next End If GetCookieString = cookie End Function
以下是关于文字的转换函数,在自建的Public_Mod模块中。
Public Function decodeURI(txt) Dim o As Object Set o = CreateObject("MSScriptControl.ScriptControl") o.Language = "Jscript" decodeURI = o.Eval("decodeURI('" & txt & "')") End Function Public Function decode(txt) Dim o As Object Set o = CreateObject("MSScriptControl.ScriptControl") o.Language = "Jscript" decode = o.Eval("'" & txt & "'") End Function这样一次帮IE穿马甲,很容易穿过了腾讯登陆页面。连页面UI都不需要我们做,验证码等也与我们无关。哈哈~当然也可以将代码写得更加严密,因为还会有登陆密码错误的情况,我还没考虑进去。不过这个应该算是那么多辅助工具最人性化的登陆方式了吧。好,今天先写到这里。下次是关于HttpWatch Professional Edition截包,和破解QQ校友的摩天大楼的思维。
相关文章推荐
- PTA 7-15 QQ帐户的申请与登陆(25 分)map简单结合方法
- webpack 中开发工具webpack-dev-server和常用loaders加载器的简单使用
- 推荐16款优秀的Web开发辅助工具
- Django开发web环境搭建的简单方法(CentOS6.5环境)
- 16 款优秀的Web开发辅助工具推荐
- Management Console ERP项目开发辅助工具 正确的方法+适当的工具使做项目的效率高而且问题少
- Web前端开发调试的辅助工具
- 分享实现类似QQ的自动登陆的方法,代码比较简单,主要是给大家提供一个实现逻辑,具体的要结合自身的app来做
- java以及javaweb开发组件,开发环境和开发工具安装配置(一:java环境--最简单的方式)
- windows8系统正式版最简单的去除桌面水印方法无需任何辅助工具
- 下面我这个方法可以实现限制某些QQ号登陆,而没有被限制的QQ号可以登陆,不需要借助任何工具。
- WEB开发中一些常见的攻击方式及简单的防御方法
- 常用Web客户端辅助开发工具推荐
- mavn构建的web工程中嵌入/集成jetty 开发调试方便 较简单的方法一
- 16 款优秀的Web开发辅助工具推荐
- 16 款优秀的Web开发辅助工具推荐
- android开发工具安装教程(简单方法)