• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.3.1
软件大小:62.5M
更新时间:5-24

按键精灵iOS版
立即下载

软件版本:1.3.5
软件大小:29.2M
更新时间:06-14

最新企业版UiBot
立即下载

软件版本:2.5
软件大小:181M
更新时间:05-20

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
返回列表 12345678» / 9
发新话题 回复该主题

[技术交流] 【院刊】-【201507期】原始简单验证码识别法 [复制链接]

1#
本帖最后由 66球 于 2015-7-16 14:42 编辑

原始的简单验证码识别法



本文按键学院提供技术支持



按键学院交流①群(1群已满):376122403

按键学院交流②群(2群):372671254

按键学院交流③群(3群):170084238



上一篇院刊我们已经介绍了几种常见的验证码形式,相信大家对验证码都有了一定的了解,这期我们就去了解下一些简单验证码的识别的思路和流程,在破解验证码中需要用到的知识一般是 像素、线、面等基本2维图形元素的处理和色差分析,这方面小编也是刚刚接触,所以今天就重点介绍下在不使用第三方插件的情况下最原始的依靠像素识别数字、字母的方法——点阵识别法


[tr=rgb(154, 205, 50)]
什么是点阵?

简单的说,点阵就是一幅位图。一般默认都指单色位图,即它是用一个bit(位)表示一个点(像素),在二进制数系统中,每个0或1就是一个位(bit),位是内存的最小单位,点阵就是指在显示屏上一个字或图像的宽或高是由多少个像素点组成,比如拿围棋盘来比做点阵,你在围棋盘上的横竖8个格子中用棋子摆出的字或图形就是就是8*8点阵的了

知道点阵分布后我们怎能去识别它呢,我们以数字为例

[tr=rgb(154, 205, 50)]
如何用点阵识别法识别数字?


首先,要识别一个数字,我们先截取这个数字的图像,截取的范围最好按照数字的边缘截取,截取过大的话做点阵麻烦,这里要注意下我们在验证码识别中最常用的是24位的BMP格式的图片,因为BMP是一种不压缩的图片格式,所以截图的话BMP格式最为清楚。如果用JPG,图片被压的可能和原版都不一样了,就更别提识别了,截取相应的数字图后我们把它弄到按键抓抓图像处理处,放大并显示网格显示如图



从图上不难看出这里的每个数字(除1外)都是由横5、竖8,及5行8列共40个像素组成的,我们把白色部分都当做是0,黑色部分,也就是构成数字的主体部分,当做是1,按照从左到右顺序从左边第一个格子开始排列:
0就可以看成0111010001100011000110001100011000101110
1就可以看成0010001100001000010000100001000010001110
依此类推,然后我们套用相应的代码
  1. '赋值下十个特征码,开头代码执行一次就可以了
  2. NO0="0111010001100011000110001100011000101110"
  3. NO1="0010001100001000010000100001000010001110"
  4. NO2="0111010001100010001000100010001000011111"
  5. NO3="0111010001000010011000001000011000101110"
  6. NO4="0001000110010100101010010011110001000011"
  7. NO5="1111110000100001111000001000011000101110"
  8. NO6="0111010010100001111010001100011000101110"
  9. NO7="1111110010000100010000100001000010000100"
  10. NO8="0111010001100010111010001100011000101110"
  11. NO9="0111010001100011000101111000010100101110"
  12. MsgBox GetShu(283, 258, 6, 4, "000000")
  13. '以下是写好的函数模块,写好基本就不用修改了,需要的时候调用执行即可
  14. Function GetShu(x, y, z, n, col)'传入要识别的数字前台左上角坐标xy,俩数间间距z,数量n,字体颜色col
  15. GetShu = ""
  16. Dim code, temp_x, i_x, i_y, num
  17. For temp_x = 0 To n - 1
  18. code = ""
  19. For i_y = 0 To 7
  20. For i_x = 0 To 4
  21. If GetPixelColor(x + i_x + temp_x * z, y + i_y) = col Then
  22. code = code & "1"
  23. Else
  24. code = code & "0"
  25. End If
  26. Next
  27. Next
  28. If code = NO0 Then
  29. num="0"
  30. ElseIf code = NO1 Then
  31. num="1"
  32. ElseIf code = NO2 Then
  33. num="2"
  34. ElseIf code = NO3 Then
  35. num="3"
  36. ElseIf code = NO4 Then
  37. num="4"
  38. ElseIf code = NO5 Then
  39. num="5"
  40. ElseIf code = NO6 Then
  41. num="6"
  42. ElseIf code = NO7 Then
  43. num="7"
  44. ElseIf code = NO8 Then
  45. num="8"
  46. ElseIf code = NO9 Then
  47. num = "9"
  48. Else
  49. num = "?"
  50. End If
  51. GetShu = GetShu & num
  52. Next
  53. End Function
复制代码
可能有点童鞋看不懂,可以看下视频演示地址,就容易理解了(虽然不完整):http://www.aipai.com/c8/ODY9JSklI2gnaiMv.html

[tr=rgb(154, 205, 50)]
点阵法的局限性

其实点阵法并不是很好用,但是它又比较基础,很多解决验证码的图像处理和方法都跟它沾边,所以今天主要是想让不懂点阵法的童鞋知道下思路,有相应的拓展空间
它的局限性:
1.缺点很明显,必须是字体清晰,字与字间距一致的才可正常识别
2.字体不同,粗细不同,点阵特征都不一样,没有哪个点阵特征码是可以通用的。
3.识别数字或字母的方法和思路有很多,并不是单一的点阵(一点一点的)识别,,每种识别方法都各有利弊。


点此查看简单验证码自动识别教学视频

相关联院刊
【院刊】-【201507期】千奇百怪的验证码
【院刊】-【201504期】妹子“卖身”为哪般?验证码真的这么难识别?

院刊总目录
showtopic.aspx?topicid=549014&forumpage=1&page=1



 


谢谢大家阅读,记得给小编送支花花 ! 顺手点个


[tr=rgb(143, 188, 143)]

按键精灵实战班开始报名啦!

腾讯课堂视频课程

1、时间:7月1日——7月25日接受报名
2、时长:每周二、周四、周六
3、地点:实战班
4、项目准备:安装按键精灵2014,安装镇魔曲、按键精灵会员卡(报名会提供3个月)。
5、关于项目课程的安排:周一至周天白天可自行学习与实践,学院会提供为学员准备助教与老师进行解答,周二、周四、周六晚上8点开始授课,请各位学员到场学习。
6、学费费用:512(人民币)
7、本次实战课程全国招募66人,名额有限。

【招生对象】:零基础用户,快速学会按键精灵安卓版
【招生人数】:70人
【报名时间】:3/18——4/6
【学费】:128RMB
【学习日期】:1个月(2015.4.6-2015.4.27)
【上课时间】:周1、周3、周5 19:30--21:30
【上课导师】:梦幻小飞侠
【实战游戏】:[天天富翁]、[三国之刃]、[梦幻西游]、[天 龙 八 部]
点我进入按键学院报名啦招生细节进群咨询招生办主任



    已有3评分我要评分查看所有评分

    2#

    1222222222

    3#

    非常感谢,看看学些唏嘘

    4#

    学习学习

    5#

    知道点阵分布后我们怎能去识别它呢,我们以数字为例

    6#

    111111111111111

    7#

    详细看一下验证码的 破解

    8#

    谢谢分享啊!

    9#

    验证码看看

    10#

    我们以数字为例

    11#

    kankan

    12#

    看凯莉 !!!

    13#

    1111111111111111111

    14#

    啦啦啦啦啦啦啦

    15#

    谁谁谁水水水水水水水水水水水水

    16#

    打算试试事实上是

    17#

    点阵分布

    18#

    看呀看

    19#

    嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻

    20#

    想拿来看看啊,

    发新话题 回复该主题