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
时间: 2024-10-13 11:37:31

shell脚本——自动识别图片验证码的相关文章

Shell脚本命令图片

查看相关文档:shell脚本1  shell脚本2 原文地址:https://www.cnblogs.com/JBLi/p/10697864.html

shell脚本白话知识点(原创)

文章手写拼打,内容当然不是本人所创造,目的是用白话更好的记录并理解SHELL脚本,加以运用!    !(感叹号)不能用双引号打印出来,只能用单引号来打印输出.但是在bash环境下,要输出感叹号必须使用单引号.这是因为默认情况下开启了使用感叹号引用内存中的历史命令的设置,可以使用set +H关闭该设置,这时可以使用感叹号输出.(done) 如果echo不加任何引号,很显然不能输出分号“;”,因为分号会被shell解析为命令连接符号.如果:不作为换行符需要加上“”但只加单引号又不能扩展变量,使用双引

shell脚本下载网页图片

和大家分享一个shell脚本写的图片抓取器.使用方法:img_downloader.sh.使用时在shell下输入:./img_downloader.sh www.baidu.com -d images该shell脚本就会把百度首页上的图片下载下来. 代码: #!/bin/bash if [ $# -ne 3 ]; then echo "Usage: $0 URL -d DIRECTORY" exit -1 fi for i in {1..4} do case $1 in -d) sh

Linux shell脚本编程详解及应用实例

什么是shell脚本? 1.shell脚本:是一种解释型语言,不需要提前进行编译,只需将代码转化成中间代码,边解释边运行,执行效率稍逊于编译型语言,跨平台性好.而编译型语言则需要提前进行编译转化为二进制文件,靠近底层硬件执行效率高,可移植性差. 2.shell的首行严格来说使用shebang机制:由#和!构成的字符序列,在类unix系统中程序的载入器将其后的内容,当做解释器的指令,并将载有shebang文件路径作为解释器的参数,且予以调用. shell及其他解释型语言的一般格式?  #!/bin

【问题】做图片验证码时乱码了,在header前加上ob_clean()就能神奇的显示?!

源代码如下: 1 <?php 2 //图片验证码 3 // 该方法必须处于脚本最顶部 4 session_start(); 5 // 验证码图片和对应的验证值的对应关系 6 $table = array( 7 'pic0' => '博美', 8 'pic1' => '仓鼠', 9 'pic2' => '萨摩', 10 'pic3' => '泰迪', 11 ); 12 13 $index = rand(0,3); 14 15 $value = $table['pic'.$ind

Linux生产服务器Shell脚本分享

Linux生产服务器Shell脚本分享 2012-6-6 86市场网 linux 作为一名Linux/unix系统管理员,我经常遇到人问这个问题:shell能做什么?PHP这么强大,为什么不用PHP来完成工作呢?其实相对于PHP这些开发语言而言,shell主要用于数据库备份(SVN备份).计划任务(crontab).服务状态监控.FTP远程备份等.对于这些任务,shell的强大是大家都公认的,这也是每一个Linux/unix系统管理员的基本之一.现在在Windows 2008里也出现了Power

linux学习之shell脚本

[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020] Shell脚本基本元素: #!/bin/bash --- 第一行 # --- 注释 变量 流程控制结构 看一个简单的例子,学任何语言,我想大多数情况下都是从helloworld程序开始的,shell也是一门语言,我们也从helloworld开始. 新建一个名为helloworld.sh的文件,在里面写入: helloworld.sh #!/bin/sh #这是一个很简单的打

php管理nginx虚拟主机shell脚本

使用php作为shell脚本是一件很方便的事情.理所当然,我们可以使用php脚本来管理 nginx虚拟主机,下面是笔者的 脚本 文件供各位参考 代码如下 复制代码 #!/usr/bin/php -q<?php start: fwrite(STDOUT,"===========Vhost Script===========\n");fwrite(STDOUT,"= Choose an operation \n");fwrite(STDOUT,"= 1.

如何在 Shell 脚本中执行语法检查调试模式

我们开启了 Shell 脚本调试系列文章,先是解释了不同的调试选项,下面介绍如何启用shell调试模式. 写完脚本后,建议在运行脚本之前先检查脚本中的语法,而不是查看它们的输出以确认它们是否正常工作. 在本系列的这一部分,我们将了解如何使用语法检查调试模式.记住我们之前在本系列的第一部分中解释了不同的调试选项,在这里,我们将使用它们来执行脚本调试. 启用 verbose 调试模式 在进入本指导的重点之前,让我们简要地探索下 verbose 模式.它可以用 -v 调试选项来启用,它会告诉 shel