夫人有需求,查了点相关资料,mark。

ZZ自:http://spy.cnblogs.com/archive/2006/02/12/329297.aspx

很久以前,网络游戏都是WEB界面的,很简单,大多是社区游戏,那时最复杂的可能也就是第九城市啦。我玩的那个社区游戏叫阳光BBS,里面分了很多帮派。按我的性格,我自然而然的就加入了逍遥派。那段时间写了很多东东,大部分都是关于逍遥的。甚至后来还弄了个网站,做为逍遥人的家。由此可见,我也是个很怀旧的人。很多人和事,至今未忘。当然,这都是闲话。说说正题,那时在游戏里要练功(就象现在的网游中练级一样),通过几个页面,来取得经验值,通过进聊天室,取得金钱。聊天还好,每进出一次聊天室可以得五两银子,在聊天室每待十分钟,也可以得五两银子。聊天的同时,有钱拿。但是练功就比较枯燥一些,要在网页上点来点去。为了解放自己的双手,后来就做了个练功机器人。方法是做一个网页,用javascript先去调一个PHP程序进行网站登录,取得COOKIE,然后转向到另一个网页,网页中同样采用javascript来自动点击。这种自动机器人我把它称之为页面级的机器人。
页面级的机器人使用起来不是很可靠,而且不方便保密(因为当时社区里有好几个帮派,其他帮派把网页改一下就可以用于他们帮派练功啦)。所以,后来又编写了一个程序版的泡钱练功工具,由于是基于MSWEB控件做的,所以我把它称之为WEB控件机器人。在WEB控件机器人的开发中,需要注意的是微软的DCOM文档对象的定义。当时国内关于DCOM的资料很少,无奈之下只好直接去MS的资料中心下载了英文文档啃。也正是由于资料的缺乏,一开始做的工具还是页面+WEB控件的方式来做的。记得那时为了屏蔽网站的弹出页面想了很多办法,后来在一个英文网站上查到一个资料,原来只要在控件的事件中加上很简单的一条语句就可以解决。资料不全真的很麻烦呀。其实WEB控件的功能很强大,可以直接操纵网页的元素。象做投票程序,就是利用WEB控件先显示投票页面,然后自动点选,然后调用页面上的SUBMIT按钮的CLICK事件发送表单。
WEB控件的优点是可以解析网页的HTML,但在投票中这也成了它的缺点。这时,INET控件开始走入我的视线。INET控件可以直接收包、发包,而不对包的内容做解析。在WEB控件机器人中,投完票之后,一般网站都会自动刷新一下投票页面,如果投票页面上有很多图片,就会影响到投票的速度。而INET控件则不然,它发送和接收的速度都要比WEB控件要快,但是它的缺点是,程序员要自己想办法来分析数据。发送时简单一些,只要构造好HTTP HEAD,再加上表单数据,将包发出即可。但是发送之前一般网站都会发送一些标志过来,有的还会有验证码。这时,就要求程序员把INET接收的数据分析后,重新构造必须的内容,写入一个WEB控件,生成一个网页。
经过多次实践,这种方式投票效果最好。
另外,现在验证码采用的越来越普遍了,固定位置方式的验证码可以采取先取样,生成字模,然后进行对比(XOR运算)方法来破解。这种验证码不管是加什么样的噪点,基本上都是可以识别出来的。因此,现在更多的是采用变形而且不固定位置的验证码。这种验证码的破解要复杂了很多很多,我只有个初步思路。我想仍然应该是先取样,但是不是生成字模,而是生成一个矢量特征,然后对验证码图片进行分解,对每一部分以同样方法生成矢量特征,再与特征库对比。其难点在于,怎么样去生成矢量特征?怎么样去消除矢量噪点?矢量特征库如何对比?相似度如何计算?呵呵,这个好象已经是图像识别的领域了,难度不是一般的大。
zz自:
在写辅助投票工具中要解决以下问题 
1。更换IP 
现在很多投票都对IP进行了限制,例如:每个IP每天只能投十票,或者每半小时投一票等等。因此,在辅助投票工具中要能自动更改IP。解决的办法无非是更换本机IP(直接挂在公网上有独立IP的机器)、重复拨号、使用代理等方法。 
如果有IP资源(比如在电信机房。。嘿嘿),可以调用NETSH来更换IP,代码为 
cmdStr = "netsh interface ip set address name=""本地连接"" source=static addr=" & Trim(inIP) & " mask=255.255.240.0 " 
hwnd = WinExec(cmdStr, 0) '参数为0则隐藏窗体 
     If hwnd < 32 Then 'hWin<32则启动应用程序失败 
         MsgBox "error!" 
         Exit Sub 
     End If 
txtShowIP.Text = inIP 
在XP下更换IP速度较慢,建议将操作系统换成WIN2000,一般1至3秒即可更换完毕。 
如果没有IP资源,就只好采取重新拨号或更换代理的办法来变换IP。由于电信局对拨号用户分配IP的规则,重新拨号也往往会得到重复IP,而更换代理则由于代理不稳定,效果也不好。不过我曾经试过ADSL,虽然也会出现重复IP,但其拨号上线的速度很快,建议没有IP资源的用户可以采取反复拨号、投票的方法来避开IP验证。 
2。自动勾选投票选项。 
一般投票会将所有候选人列出来,勾选后点投票。勾选会有一定的要求,例如最少不能少于五名,最多不能少于十名等等。在这种情况下,除了每次一定要勾选指定的客户以外,还要随机的勾选其他四名候选人,将票数分散,防止其他候选人对指定客户形成威胁。同时,为了方便客户操作,还应当允许客户指定投某些人的票(比如排在最后几名的候选人)。自动勾选有两种实现的方法,一是先用WEB控件将网页下载,然后通过DOCUMENT对象对CHECKBOX进行操作。这种方法比较简单、直观。另一种是使用截包工具(SNIFFER)截下投票时发送的包,通过分析找到勾选的参数,然后在程序里直接构造出包,通过INET控件递交到服务器。这种方法速度较快,并可通过返回的数据分析投票是否成功。使用这种方法时,要注意中文的URL编码问题。 
3。COOKIES 
如果你更换了IP,重新打开了IE,并按规定投出票,但是服务器仍然告诉你:你已经投过票,请不要重复投票。这时,你就应该考虑服务器可能是使用COOKIES来标识了你的机器。你需要在重新打开IE之前清空COOKIES。另外,VB的WEB控件和INET使用的是同一个COOKIE域,所以,为了能够再次投票,最好在清空COOKIES之后重启程序,方法是在MAINFORM的UNLOAD事件中加一个Shell App.EXEName。不过一定要注意呀!一定一定要加一个东东对这一行语句进行开关,不然的话。。。。。。。 
4。验证码的识别 
为了防止使用投票工具、MOUSE点击器等进行自动投票,现在网站都采用了验证码机制。关于验证码的识别,我在另一篇里已经讲了。这里只讲一下取验证码图片的问题。在做测试时,从网上找到一个资料,是说可以通过调用“COPY”这个右键菜单复制到剪贴板中,然后再从剪贴板拷贝到PIC控件中。后来正式做的时候却忘了怎么做的。上网查到半夜二点多也没找到那个资料。后来没办法,我采取了另一种方法来实现:使用DOCUMENT对象来调用滚屏定位到验证码的位置,然后使用BitBlt来直接取到图片。

自动刷票工具的实现机理简介相关推荐

  1. AI之AutoML:Ludwig(无需编写代码/易于使用的界面和可视化自动机器学习工具)的简介、安装、使用方法之详细攻略

    AI之AutoML:Ludwig(无需编写代码/易于使用的界面和可视化自动机器学习工具)的简介.安装.使用方法之详细攻略 目录 Ludwig的简介 Ludwig(无需编写代码/易于使用的界面和可视化自 ...

  2. python代码规范 自动优化工具Black

    自动优化工具Black 在众多代码格式化工具中,Black算是比较新的一个,它***的特点是可配置项比较少,个人认为这对于新手来说是件好事,因为我们不必过多考虑如何设置Black,让 Black 自己 ...

  3. 国产自主可控的形式化验证代码自动生成工具ModelCoder可替代Matlab/Sumlink

    在安全关键领域,基于模型的软件工程或者软件开发已逐渐进入了我国的装备研制过程中.使用SimuLink或者SCADE等嵌入式软件建模工具对算法或者控制逻辑进行可视化建模,然后生成高可靠的二进制代码逐渐成 ...

  4. 干掉 BeanUtils!试试这款 Bean 自动映射工具,真心强大!

    平时做项目的时候,经常需要做PO.VO.DTO之间的转换.简单的对象转换,使用BeanUtils基本上是够了,但是复杂的转换,如果使用它的话又得写一堆Getter.Setter方法了.今天给大家推荐一 ...

  5. 【Microsoft Azure 的1024种玩法】七十四.五分钟在Azure Virtual Machines中快速部署一套软件项目管理及自动构建工具

    [简介] Apache Maven由 Apache 软件基金会所提供的一个软件项目管理及自动构建工具,Maven 为开发者提供了一套完整的构建生命周期框架.开发团队几乎不用花多少时间就能够自动完成工程 ...

  6. 试客联盟试用自动申请工具v6.7官方版

    名称:试客联盟试用自动申请工具v6.7官方版 版本:6.7 大小:11.9MB 软件语言:中文简体 软件授权:免费版 应用平台:WinAll 软件介绍以及简介: 试客联盟试用自动申请工具是一款由一马软 ...

  7. 12306自动刷票下单-查票下单

    12306自动刷票下单-登录 前言 上篇写了12306登录,隔了快一个月了,才准备动手写下单篇,真的要非常感谢博客园的 Asimple朋友,如果不是看到你的留言,我几乎都忘了要写下篇了,这一点在简书上 ...

  8. 火车票订票插件,可自动登陆,自动刷票,自动提交

    一年一度的抢票大战已经上演,因为现在铁道部改成分节点的放票策略, 打算在网上购票的朋友们要掌握好放票的时间,避免错过放票时间.  前几天在往上看到的别人介绍的一个Chrome的插件 ,可以自动登录火车 ...

  9. js 刷新页面但是不闪烁_前端开发还在手动刷新页面?手把手教你搭建一个自动刷新工具...

    作为一名前端,开发web页面是我们的本职工作.在完成一个页面开发的过程中,保存代码然后手动刷新页面查看效果,这样的动作需要重复无数次,虽然一次这样的动作可能只要花费几秒钟的时间,但是次数多了也挺浪费时 ...

  10. iOS应用模块化的思考及落地方案(二)模块化自动构建工具的使用

    1.0 iOS模块化中的问题 前文已经介绍了模块化的流程及一些常见的问题,我们在这里再次总结一下. 在工作中,当我们开始一个新项目的时候,最先考虑的就是模块化工作. 模块化工作的想法是很美好的,可是执 ...

最新文章

  1. 静态链表实现(A-B)+(B-A)【代码】
  2. 人群距离监测 DeepSOCIAL 最全汉化论文+源码导读
  3. 电脑上的c语言程序打不开,电脑软件打不开常用处理方法
  4. Jzoj4778 数列编辑器
  5. hashmap储存有向图_以邻接表的形式创建带权值的有向图即有向网
  6. 【Selenium-WebDriver自学】出现的问题和解决方案(十七)
  7. 2017-10-19 NOIP模拟赛
  8. jQuery – 6.选择器
  9. Qt_QTableWidget用法 添加、删除、添加控件、获取控件在表格中位置
  10. 百度地图根据位置获取对应的位置中文
  11. html设置div大小位置不变,div大小 div固定大小设置
  12. Cookie测试之详解
  13. Android OpenGL ES纹理总结、纹理坐标系说明、使用代码示例
  14. C++: STL: atomic
  15. 虚拟磁盘管理 无法启动服务器,运行虚拟磁盘管理器提示"RPC服务器不可用"分析与解决方案...
  16. 线程池的好处,详解,单例(绝对好记)
  17. 计算机网络运输层知识点,计算机网络复习——Ch6传输层
  18. 一个有用的Win32消息处理宏HANDLE_MSG
  19. MCU 微控制器,在实际项目中如何选型(以 STM32为例)
  20. 基于Kappa-mu/M分布的联合多用户分集与并行中继继选择RF/FSO系统性能研究

热门文章

  1. 【夜读】自我提升的8个好习惯,迷茫时看一看
  2. jQuery插件使用-瀑布流
  3. 找寻 手游BUG的学习
  4. 技术管理之巅-如何从零打造高质效互联网技术团队?
  5. 计算机骂人的专业术语,台湾网友分享“如何用本专业术语骂人不带脏字”
  6. retina屏 适配问题
  7. python-小米-句子反转
  8. 冯言冯语说DSP(二)序列的z变换
  9. 美国TJX公司 - MBA智库百科
  10. 数据挖掘从业人员的愿景