以前是用Java做的识别验证码,现在改用shell,算法都一样--这个验证码的破解称做算法是有点抬举自己了--不过解析BMP文件为01点阵那句脚本我倒是自己优化了一个通宵,自我感觉算是亮点吧~
代码: 全选
cat $@ | od -j +0x36 -tx1 -vx | awk 'BEGIN{ORS=""}{if(NR%2!=0){print $2$3$4$5$6$7$8$9$10$11$12$13$14$15$16$17; if((NR+1)%24==0){print "\n"}}}' | sed '1!G;h;$!d' | sed s/000000/1/g | sed s/ffffff/0/g
噢对了,虽然说Java性能不够C,但是SHELL如果用不好,性能更烂。所以这里的识别算法用纯脚本实现,之前识别一张验证码需要10秒,优化之后只需要0.32秒,感慨一下吧。
对了,大家不要拿来给这个网站做灌水机哈,这样做是不道德的,我会在道德层面上谴责你
例子
#下载验证码图片,保存为code.bmp
curl http://www.programfan.com/common/code.asp -s -o code.bmp
#进行解析
cat code.bmp | sh programfan_code.sh