VoterMan In Perl

  Perl一直号称是黑客语言,事实上也的确是如此。虽然由于工作一直用Python、Tck\tk,但是还是觉得Perl有着无比的吸引力。首先就是看似怪异的语法,渗透着Perl的哲学,同一件事,总有不止一种方法来解决。其实也就是在写法风格上做文章,为了保证人人都能读懂,人人都能调试,人人都能拿过去用,还是老实一些的好。其次就是CPAN上超级多的库,以及Perl本身超级快的执行速度,真的是很吸引人。《程序设计实践》上的那个马可夫链的文本测试我一直记忆犹新,C当仁不让的是最快的,C++其次,然后就是Perl。

  应一位写小说的姐姐邀请,这几天抽空用Perl写了一个VoterMan自动打分评论机器人。事实上用Perl强大的网络支持功能完全可以解决任何网站的投票与认证功能,对于基础网站可以使用老牌的LWP,对于一些复杂一些的还是可以用OLE生成IE的COM接口进行处理,或者干脆不用Perl,直接写一个Firefox插件后代执行,当然那就不是本文关心的内容了。

对于自动执行的思路归纳整理如下

  1. 首先查看自己需要打交道的表单,比如用户名密码表单,评论文本框等等,这个是需要人工看HTML代码的,无法让机器代劳。
  2. 其次就是判断有哪些东西组织我们进行自动化提交表单,比如是否有认证码,或者时间、IP、内容长度限制。
  3. 然后就是针对网站的限制,首先测试一些解决方案,比如是否能够OCR出认证码,设置多长的时间间隔,预先写好填充内容等。
  4. 如何判断结束,获得我们想要的内容。

  对于有内容长度限制的,我们可以事先写一些评论。对于限制IP的,比如投票,我们完全可以让机器不断的自动拨号,投票后断线的方式进行,或者是自动搜索世界范围内的代理服务器进行连接,比如Your Freedom就是这个样子,基本上想逆向追查是不太可能的。对于有注册码的,需要预先选择强壮的OCR模块,由Perl自动调用进行图片解析。对于银行信用卡这样的,尤其是招行一卡通大众版,由于它使用HTTPS连接,而且需要安装它的插件,所以还是只能用OLE进行处理,通过操作IE进行密码猜解。它的验证码实在是很简单,甚至不像CSDN那样的复杂。但是由于是慢速连接,可能速度不理想,不过可以开10个线程一直让它猜解么,反正我们人又不累哈哈。

  附上代码,有修改,不能泄漏了俺姐姐的机密嘿嘿。本代码适合那个网站的任何小说。事先需要准备两个文本,一个储存虚拟评论员(或者叫做5毛)的名称和可用的代理服务器,另外一个储存评论文本,多多益善。至于随机部分大家可以自由发挥以达到人肉都无法判断真假的效果。推荐使用Perl2EXE生成EXE文件,直接在没有安装Perl的机器上执行。

 

Code

 

  就本程序来说,稍加更改破解诸如西祠胡同、校内网的密码根本不是任何问题,本人一心向善,这些歪门邪道的应用恕不完成。

posted on 2008-09-10 21:17  Bo Schwarzstein  阅读(2139)  评论(22编辑  收藏  举报