驗證碼破解嘗試經歷

去年9月份報了駕校,月底過了法培,然後就等教練幫忙約車,因爲要約週末的車,一直都沒約到。直到今年三月份,等不住了跑去駕校辦了個網上約車,可開始還是約不到,那個破網上約車系統一次只允許100人在線,每週六日早上七點從牀上爬起來使勁的按F5,連續地刷,可總是竹籃打水一場空。

 

無法忍受,就開始琢磨怎麼寫個程序自動登錄約車系統完成約車。顯然,整個關鍵是登錄驗證碼的破解。只要完成驗證碼破解,就可以自動發HTTP請求登錄,然後通過分析請求回覆頁面完成網上約車,而且可以定時刷新頁面,及時搶約退約的車。

 

有了初步想法,就可是Google+Baidu,儘可能得蒐集驗證碼破解的方法。而驗證碼的破解方法因爲驗證碼的複雜程度不同也門類衆多,甚至是需要圖形學方面非常專業的知識,什麼噪聲、雜色,這對我這個門外漢而言是不可能短時間逾越的障礙。所以蒐集資料的時候就應該找儘可能與自己要破解的圖形類似的例子或方法,這樣能夠較快的理解熟悉並快速應用。而我一開始的時候試圖分析GIF文件格式,從數據中找出圖片規律而分析出起數字的想法最後驗證顯然是愚蠢的(至少對於我這樣對圖形方面一竅不通的門外漢而言)。

 

經過辛苦的摸索,終於找到些蛛絲馬跡,外加一點點運氣,終於輕而易舉地成功破解。起主要功勞應歸功於這篇博文http://fengyouhua.javaeye.com/blog/109862讓我茅塞頓開。於是動手寫了如下腳本自動登錄海淀駕校網上約車系統。

 

分析:海淀駕校網上約車系統驗證碼由4位偶數數字0、2、4、6和8隨機組成,而且每個數字清晰工整,相互沒有干擾,通過GIMP放大20倍可以清晰的每個數字的邊界區間,而且每一位上色彩變化也不大。所以,只要每一位上分別採集0、2、4、6、8五個數字的圖片放入數據庫,構成4個分別對應4個位的數據庫。在自動登錄時,便可每裁剪一位的圖片與相應位數據庫中圖片比對,便可知數字幾。

 

準備:蒐集圖片。手動請求URL下載驗證碼圖片、用GIMP裁減。比如5個圖片0428, 2624,

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章