zoukankan      html  css  js  c++  java
  • 亦思验证码识别系统3.1详解

    本教程只供学习交流使用,请下载24小时后删除!
    切勿用于商业用途!所有法律纠纷与作者无关!

     

    今天给大家带来久违的亦思验证码识别系统,这个系统确实很不错,对于一些不太复杂的验证码识别率高达99%!但是这个系统是收费的,据说是很贵!而且使用说明也不是很详细,在此我就简单的演示一下到底怎么用(我用的是亦思验证码识别系统3.1破解版)。

    要识别验证码我们要先做一个验证码识别库(即亦思的FC文件),然后用程序去加载亦思提供的接口(ycode.dll和yxxxx.CLL和y23xxxxx.CLL,缺一不可!)去调用这个库。这样我们就可以根据库文件去识别验证码了,当然,库越大识别率越高!

    下面我们先打开破解补丁:亦思验证码3.1破解补丁.exe,然后打开亦思识别库生成系统:yzmys3.1.exe。

     

    打开以后默认的就是新建项目1(一个库里可以包含多个项目),在此操作就行了。我将要演示的是识别京东购物商城的验证码。验证码地址是:http://passport.360buy.com/new/JDVerification.aspx?&uid=ef26f995-5819-4c42-8f3a-14c2b5869278。填在:

     

    点刷新即可看到获取的验证码:

     

    这是基本的操作,至此我们就成功加载了验证码,接下来,我们看一下软件界面。分割方式和识别模式软件里有帮助(就是那个蓝色的问号),适用于识别复杂的验证码,在这用不上,默认就行了。主要是右边,我们要做的就是添加滤镜,这个最好是懂PS,但是不懂也可,自己估摸着蒙就可以了。现在我没有做任何处理,我们的期望是把复杂的验证码图片变成最简单的黑白两色的强对比图,只要添加适当的滤镜,就可以。具体怎么加自己去操作吧(在蓝色的“添加”里有很多滤镜,组合一下就行)!下面是我处理的图:

     

    我只添加了一个滤镜,就把背景给去了。。。。。看来太简单了。。。。哈哈哈哈哈。。。。基本上把图片处理到这种程度识别率99%基本没问题!

    做好了图片处理,就要开始做库了,点击处理结果栏中的批量(蓝色小字),就可以看到批量添加库窗口:

     

    简单说一下这个界面的使用方法。中间的图片就是程序识别出的字母,如果你看到的的确是一个正确的字母,那么就在下边的识别码框中填入该字母,如果你看到的是乱码或者很多字母,那么就不要填写,点下一个。需要说明的是,每识别一个新字母,右边那些小方格就会凸起,而且下边的红色小字“识别字符数”也会增加一。这样就形成一个库,用来识别验证码,有体会吗?下边那个蓝色的“识别库数”也就是你输入的总数,比如P这个字母,你可以重复识别五次(输入五次),来增加识别正确率。基本的使用就是这样的。补充一下:左边的一竖条小蓝字:添、删、黑、减等是用来识别有躁点的验证码时去除粘连在字母上的躁点,使库模版规范化,以增加识别准确率,孤立的躁点可以用滤镜去掉。

    操作完成后,点菜单中的:文件—发布。

     

    这里的密码是你将来要调用这个库时输入的,这里我就设为空了。发布完成后生成的是一个扩展名为FC的文件。 

    接下来说明一下VB怎么调用这个库来识别验证码。把下边代码复制到VB窗体中即可:

     

    Private Declare Function loadcode Lib "ycode.dll" (ByVal code As Long, ByVal Length As Long, ByVal address As String, ByVal pass As String) As Long
    
    Private Declare Function Recognition Lib "ycode.dll" (ByVal ItemNo As Long, ByVal picin As Long, ByVal Length As Long, ByVal Address1 As String, ByVal Address2 As String, lppicout As Long, lpLength As Long, cLength As Long) As Long
    
    Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As Long) As Long
    
    Private Declare Function Writepic Lib "ycode.dll" (ByVal c As String) As Long
    
    Dim strResult As String '识别结果
    
    Dim no1 As Long
    
    Dim no2 As Long
    
    Dim n1 As Long '图片指针
    
    Dim n2 As Long '指针长度
    
    Private Sub Form_Load()
    
    no1 = loadcode(0, 0, "myfc.fc", "") '载入验证码库,把路径换成你的库,当然你也可以直接传递数据,返回项目个数,最后一个参数为库文件密码,如果库文件有密码,这里必须加上
    
    End Sub
    
    Private Sub Command1_Click()
    
    strResult = "    " '验证码都是4个字符的先初始一个4个字节的空白字符串,对于字母长度不定的可以通过Recognition的第8个参数获取字母长度
    
    no1 = Recognition(1, 0, 0, "http://passport.360buy.com/new/JDVerification.aspx?&uid=ef26f995-5819-4c42-8f3a-14c2b5869278", "", n1, n2, 0) '返回识别结果字符的指针,第四个参数为网络地址
    
    no2 = lstrcpy(strResult, no1) '把识别结果放在strResult中
    
    no2 = Writepic("c:\look.bmp")  '把获取的网络图片放在指定的路径,以用来显示,你也可以自己设置自己喜欢的保存路径。
    
    Text1.Text = strResult
    
    Picture1.Picture = LoadPicture("c:\look.bmp") '显示本次识别的图片
    
    End Sub


    上边代码有我整理的详细的注释,相信大家能看懂!需要注意的是y23xxxxx.CLL和ycode.dll和yxxxx.CLL必须放在程序同目录下!在VB里不用引用,但是必须在同目录下!缺一不可!另外在VB环境下运行代码出错,不用担心,生成exe就没事了,虽然调试麻烦点,但是没办法。。。。。凑合用吧。下面我贴几张识别的图图,让大家看看成功率是不是99%!(其实可以自信的说是100%):

     

    我在这只是简单的演示了一下,大家可以看到这个系统还有很多功能,用来识别更加复杂的验证码,等待大家去发现吧!(我能力有限,只能说这么多了)

    上边提到的一切程序,在压缩包中都有!请读者放心下载!另外需要说明的是,由于这个系统使用了特殊技术,所以某些杀毒软件报毒,怕是病毒的可以在虚拟机运行,实在是怕的就不要下载了!

     

     

     

  • 相关阅读:
    【Struts2】 国际化
    【Struts2】进阶
    【Struts2】简介及入门
    【Distributed】互联网安全架构
    【Mac】 开启原生的 NTFS 硬盘格式支持
    swagger2简单使用
    自定义异常和异常处理
    enum简单使用
    Interceptor
    修改docker下mysql配置
  • 原文地址:https://www.cnblogs.com/iyangyuan/p/2801879.html
Copyright © 2011-2022 走看看