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 小时,兄弟们加油吧