shell脚本——自动识别图片验证码
Linux与Shell刚入门学习,写的东西在大多数人看来很浅,其实只为自己的学习总结。
如果有大牛对我写的东西指点一二,更是感激不尽!
近来经常用Archlinux上一个国外的免费VPN,速度还不错,就是每天会变一次密码,每天都要上主页去看一下最新的密码,久了也感觉麻烦,所以就想点懒招(我这人有点懒)~~
经观察,密码验证图为4个数字,分别由a.jpg、b.jpg、c.jpg、d.jpg组成,下载图片后用diff和cmp比对后发现只要是同样数字,都是同一张图片,不管是叫a还是叫b还是叫c
所以我想法就是先用几天时间下载10张图片做为原图,以后每天要上就用脚本来获取每天的密码图片,再来跟原图片做比对,确认出图片的号码和密码,再自动修改VPN的配置文件为新密码,最后自动连线和改DNS。
以下节选了获取图片和对比的脚本:
#!/bin/bash #删除des文件夹下的旧图片并下载新图片 rm -rf des/* wget -P des/ http://free.linuxlab.kr/test/password/{a,b,c,d}.jpg 1>/dev/null 2>&1 if [ $? = 0 ];then [ -f des/a.jpg ]&&[ -f des/b.jpg ]&&[ -f des/c.jpg ]&&[ -f des/d.jpg ]&& echo "Download Finish!" else echo "Download Failed!!!"&&exit 2 fi #循环对比图片 pw=0 dfile=`echo des/{a,b,c,d}.jpg` for i in $dfile do for f in {0..9} do diff $i "sou/"$f 1>/dev/null 2>&1 && pw=$(( pw * 10 + $f )) done done echo "The password is "$pw
本文出自 “willron学习笔记” 博客,请务必保留此出处http://willron.blog.51cto.com/4871077/1565666
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。