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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。