Simple Vote Machine
目录 |
1 缘起
支持何总尽孝
2 原理
点击投票,发出的请求为:
POST /plus/sxzj1.php?validate=8342&action=toupiao_array&arr_value=,58 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding: gzip, deflate Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 Connection: keep-alive Cookie: PHPSESSID=3046f4d0fa0f7aabd6f54f33bbd2b8f0; Hm_lvt_267f396665eb939d0abbe0a6ea6c0ee2=1368195799; Hm_lpvt_267f396665eb939d0abbe0a6ea6c0ee2=1368196726 Host: special.sxcq.cn Referer: http://special.sxcq.cn/plus/sxzj.php User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0
8342 是图片验证码,arr_value=,58 对应 53 号家庭
如下命令模拟:
curl -b /tmp/ck "http://special.sxcq.cn/plus/sxzj1.php?validate=$ID&action=toupiao_array&arr_value=,58" -e \ "http://special.sxcq.cn/plus/sxzj.php"
其中 /tmp/ck 文件为访问 http://special.sxcq.cn/plus/sxzj.php 获取的 Cookies,其中的关键是 PHPSESSID 这个值
$ID 为验证码
arr_value=,58 对应 53 号家庭
-e "http://special.sxcq.cn/plus/sxzj.php" 对应 Referer: http://special.sxcq.cn/plus/sxzj.php
因此关键是图片验证码的获取和识别,如下指令获取图片验证码:
curl -b /tmp/ck http://special.sxcq.cn/include/vdimgck.php >/tmp/x.jpg
其中 /tmp/ck 文件为访问 http://special.sxcq.cn/plus/sxzj.php 获取的 Cookies,所有的访问都用一个 PHPSESSID
使用 tesseract 来 OCR:
tesseract /tmp/x.jpg -l eng -psm 7 /tmp/a
识别后的字符写入 /tmp/a.txt
当然所有的工作,先要访问一下 http://special.sxcq.cn/plus/sxzj.php 获取的 Cookies,以便使用同一个 PHPSESSID
curl -D /tmp/ck http://special.sxcq.cn/plus/sxzj.php >/dev/null
3 可用的脚本
需要先安装 curl, bc 和 tesseract
Debian/Ubuntu 下可用如下命令安装:
$ apt-get install curl bc tesseract-ocr
#!/bin/bash UA="Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0" for ((i=0; i<15; i++)) do curl -A '$UA' -D /tmp/ck http://special.sxcq.cn/plus/sxzj.php >/dev/null ID=""; while [ -z $ID ] do curl -A '$UA' -b /tmp/ck http://special.sxcq.cn/include/vdimgck.php >/tmp/x.jpg # OCR tesseract /tmp/x.jpg -l eng -psm 7 /tmp/a ID=$(cat /tmp/a.txt | grep "^[0-9]\{4\}$") done #ID=$((ID-1)) ID=`echo $ID-1 | bc` curl -A '$UA' -b /tmp/ck "http://special.sxcq.cn/plus/sxzj3.php?validate=$ID&action=toupiao_array&arr_value=,58" -e \ "http://special.sxcq.cn/plus/sxzj.php" done
最新修正:新的投票提交 URL 为:http://special.sxcq.cn/plus/sxzj3.php
4 自动化
系统自动检测 IP,每个 IP 每 4小时只能投 10 票,因此一天最多投 24/4*10 = 60 票
要多投,就得不停换 IP,家里现在基本都是动态IP,断开再连上,IP 就换了,就可以不停的投。
3G 手机做 WiFi 热点,笔记本 WiFi 连上,3G 断开连上 IP 也会换
还有就是不停换代理就行
写个脚本 cron/at 定时不停的执行就行
距离 5月15日 18 时还有 4 天 15 小时,兄弟们加油吧