今天給大家帶來久違的亦思驗證碼識別系統,這個系統確實很不錯,對於一些不太復雜的驗證碼識別率高達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%):



我在這只是簡單的演示了一下,大家可以看到這個系統還有很多功能,用來識別更加復雜的驗證碼,等待大家去發現吧!(我能力有限,只能說這么多了)
上邊提到的一切程序,在壓縮包中都有!請讀者放心下載!另外需要說明的是,由於這個系統使用了特殊技術,所以某些殺毒軟件報毒,怕是病毒的可以在虛擬機運行,實在是怕的就不要下載了!
