返回列表 回复 发帖

发下QQ自由幻想过验证码的思路

操作工具及使用(嘿嘿,国际惯例)
本帖隐藏的内容
1、按键精灵8或9。使用“FindMutiColor 区域多点找色”命令,进行图像处理并输出点阵中各点位置偏移坐标。

按9论坛下载地址:http://bbs.vrbrothers.com/viewthread.php?tid=241261

2、大漠插件2.1133。(1)使用大漠综合工具,对验证码图片进行二值化处理;(2)使用“FindMultiColor根据指定的多点查找颜色坐标”函数,查找验证码字符,并使用返回值或得到的颜色坐标进行判断,是否找到相应字符。

大漠插件论坛下载地址:http://bbs.vrbrothers.com/viewth ... &from=favorites
3、91Ocr字库建造工具。用于大漠综合工具二值化后图片的截取。

论坛下载地址:http://bbs.vrbrothers.com/viewth ... amp;highlight=91Ocr

4、鱼鱼抓点抓色v3.61.0101正式版,用于放大验证码图片查看。

论坛下载地址:http://bbs.vrbrothers.com/viewth ... 3%D3%E3%D7%A5%B5%E3

上述工具中,91Ocr字库建造工具、鱼鱼抓点抓色可使用顺手的工具替代,哪位朋友如有好用的工具,请介绍一下,谢谢。[/hide]
四、按键“FindMutiColor 区域多点找色”命令介绍
五、大漠“FindMultiColor根据指定的多点查找颜色坐标”函数介绍 (因字数限制,见二楼)

六、什么是点阵?
百度搜索答案:显示点阵就是指在显示屏上长和宽各能显示出多少个像素点。
SOSO搜索答案:点阵,看是什么方面的。在图像方面,他和位图是一个概念,即图片是由一个一个点组成的,点阵则反映图片质量问题。其实在各个方面点阵的思想都差不多,都是用点来反映一个图,只是这个图有点抽象,可以是显示器的屏幕,也可以是图像,也可以是一个字,效果的体现就在于单位面积内点的数量和点颜色的情况。
总结一下:我们面对的显示屏幕是由一个个像素点组成,象我们常说的800*600、1024*768等显示模式(分辩率)是以在同一显示屏内显示的像素点的多少来表示显示图像的质量高低。游戏画面内的图像、文字等也都是以一个个像素点来构成的,在同一显示器同样的显示模式下,游戏画面内构成图像、文字的像素点固定不变。构成某一特定的图像或文字的像素点按一定规律排列即构成该图像或文字的点阵。
结合以下三张图片理解。


七、什么是RGB、偏色及偏色设置
1、RGB简单的说就是一种颜色的表示模式。详见论坛版主帖《初识RGB, 关于RGB分量区间、色彩描述、色域》作者:we似曾相识
论坛链接:http://bbs.vrbrothers.com/viewth ... ght=%B3%F5%CA%B6RGB
2、偏色是指在字符由多色构成的情况下,构成字符的像素点颜色相对于选定的基准色的偏差值。偏色设置详见裴初菡老师的《按键8•基础教程<>-------<>推荐“视频教程”……连载•更新中》中按键8实战教程:17、大漠“偏色•设置”详解.rar论坛下载地址:http://bbs.vrbrothers.com/viewth ... &from=favorites
八、大漠插件注册
九、大漠后台模式选择及绑定 (见二楼)

十、操作步骤(嘿嘿,国际惯例)
[hide]
1、截取验证码图片(大量)备用。


2、用鱼鱼抓色工具放大验证码图片查看,以确定是否可用于制作点阵及如何取点。


3、用大漠综合工具设置基准色、偏色值后刷新在“二值化区域”形成二值化验证码图片。

4、用91Ocr工具剪取单个字符并粘贴到按键“区域找多点颜色”图像处理界面。



5、在按键的“区域找多点颜色”图像处理界面选点。




经二值化后的单个字符点阵信息包括一部分干扰线,选点的重点就是如何判断、去除干扰线,又保留字符的基本点。这是影响识别准确率的关键。
6、选点完成后插入,形成按键区域找多点颜色脚本代码。
7、将按键“区域找多点颜色”函数代码转换成大漠“FindMultiColor根据指定的多点查找颜色坐标”函数代码:
(1)将坐标颜色值“FFFFFF”转换为“FindMultiColor函数”的“E8E0E0-908488”(自由幻想验证码偏色)颜色及偏色值。
(2)将颜色值转换后的按键“区域找多点颜色”函数“参数6”部分剪切粘贴至大漠“FindMultiColor函数”参数6部分。
(3)将查找坐标范围确定准确。
8、重复上述1-7步,形成大量点阵代码后,根据字符归类,利用“FindMultiColor”函数返回值或取得的坐标值,按坐标区域分成四部分判断游戏验证码字符并输入。
1.        If XA1>0 or XA2>0 …… or XA30>0 Then
2.        //“XA1”为字符A的“FindMultiColor”函数查找代码1的X轴坐标返回值
3.        dm.MoveTo X,Y
4.        dm.KeyPress 验证码字符按键码
5.        Goto 验证二
6.        End If
7.       
复制代码

9、根据形成的验证代码库在游戏中进行验证码识别验证,对未能正确识别的验证码截取图片,再次制作验证码点阵
目前经两次点阵代码制作后,测试识别准确率由第一次的12%增加为66%,再度增加点阵识别代码后,识别准确率有望达到90%+。
10、选点及识别中容易出现的错误
(1)选点多选,在识别验证时找不到字符;

(2)查找区域设置不合理,有可能总是识别成功,或总是识别不成功;
(3)A字符的点阵信息,用于B字符的识别;或A字符的返回值用于B字符的判断,将A字符识别为B字符。



四、按键“FindMutiColor 区域多点找色”命令介绍(取自按8帮助)

命令功能:范围区域内查找多点颜色
命令参数:参数1 整数型,屏幕左上角X坐标
参数2 整数型,屏幕左上角Y坐标
参数3 整数型,屏幕右下角X坐标
参数4 整数型,屏幕右下角Y坐标
参数5 字符串型,第一点16进制颜色值
参数6 字符串型,符合偏移点颜色组(相对第一点位置偏移X坐标|相对第一点位置偏移Y坐标|16进制颜色)
参数7 整数型,相似度
返 回 值:字符串型,左上角第一点颜色位置坐标
脚本例子://下面这句在屏幕区域范围内查找多点颜色,返回左上角第一点颜色位置坐标
XY = Plugin.Color.FindMutiColor(0, 0, 1024, 768, "FFFFFF", "2|0|FFFFFF,-6|1|FFFFFF,-3|1|FFFFFF,-6|3|FFFFFF,-3|3|FFFFFF,0|3|FFFFFF,4|3|FFFFFF,-1|5|FFFFFF,3|5|FFFFFF,-3|6|FFFFFF,-6|7|FFFFFF,1|8|FFFFFF,4|8|FFFFFF,-5|10|FFFFFF,-3|10|FFFFFF,4|10|FFFFFF", 1)
//下面这句用于分割字符串
ZB = InStr(XY, "|")
//下面这句将字符串转换成数值
X = Clng(Left(XY, ZB - 1)): Y = Clng(Right(XY, Len(XY) - ZB))
msgbox "屏幕多点找色功能:找屏幕""我""字位置位:" & X&","&Y

五、大漠"FindMultiColor根据指定多点查找颜色坐标"函数介绍(取自大漠插件接口帮助文档)

函数简介:
根据指定的多点查找颜色坐标
函数原型:
long FindMultiColor(x1, y1, x2, y2,first_color,offset_color,sim, dir,intX,intY)
参数定义:
x1:区域的左上X坐标
y1:区域的左上Y坐标
x2:区域的右下X坐标
y2:区域的右下Y坐标
first_color:颜色 格式为"RRGGBB-DRDGDB",比如"123456-000000"
这里的含义和按键自带Color插件的意义相同,只不过我的可以支持偏色
所有的偏移色坐标都相对于此颜色
offset_color: 偏移颜色 可以支持任意多个点 格式和按键自带的Color插件意义相同
格式为"x1|y1|RRGGBB-DRDGDB,……xn|yn|RRGGBB-DRDGDB"
比如"1|3|aabbcc,-5|-3|123456-000000"等任意组合都可以,支持偏色
sim:相似度,取值范围0.1-1.0
dir:查找方向 0: 从左到右,从上到下 1: 从左到右,从下到上 2: 从右到左,从上到下 3: 从右到左, 从下到上
intX:返回X坐标(坐标为first_color所在坐标)
intY:返回Y坐标(坐标为first_color所在坐标)
返回值:
0:没找到 1:找到
示例:
dm_ret=dm.FindMultiColor(0,0,2000,2000,"cc805b-020202","9|2|00ff00,15|2|2dff1c-010101,6|11|a0d962,11|14|ffffff",1.0,1,intX,intY)
dm.MoveTo intX,intY

八、大漠插件注册(取自大漠插件接口帮助文档)

1、按键精灵作者如何使用
(1) 打包dm.dll到附件
(2) 添加以下代码在脚本最开始
PutAttachment "c:\test_game","*.*"
set ws=createobject("Wscript.Shell")
ws.run "regsvr32 c:\test_game\dm.dll /s"
set ws=nothing
Delay 1500
(3)然后创建一个dm对象 并测试对象是否创建成功
Set dm = CreateObject("dm.dmsoft")
ver = dm.Ver()
If len(ver) = 0 Then
MessageBox "创建对象失败,检查系统是否禁用了vbs脚本权限"
EndScript
End If
(4)然后就可以使用所有命令了。具体命令查看接口文档,每个命令都有详细的注释.
注意,以上步骤必须在每个脚本的最开始都有,不是执行一次以后都不用执行了
另外特别要注意,不要把dm.dll释放到Plugin目录,那样会导致插件在更新版本时出现注册失败的情况。特别是在简单游平台.建议释放到C盘的某个目录比如Test目录等.
2、如何使用RegDll.dll快速注册插件。
(1)首先打包dm.dll和RegDll.dll到附件,并且把RegDll.dll拷贝到按键的Plugin目录
(2)然后加入一下代码 (这里我是用绝对路径来说明,相对的也可以自己尝试下)
PutAttachment "c:\test_game" ,"*.*"
PutAttachment ".\Plugin" ,"RegDll.dll"
Call Plugin.RegDll.Reg("c:\test_game\dm.dll")
(3)set dm = createobject("dm.dmsoft")
ver = dm.Ver()
If len(ver) = 0 Then
MessageBox "创建对象失败,检查系统是否禁用了vbs脚本权限"
EndScript
End If
3、如何手动注册插件到系统
比如dm.dll放在c:\test目录
那么开始->运行->cmd
在命令提示符下,输入cd c:\test
再输入 regsvr32 dm.dll 即可,这样会提示插件已经注册到系统中.
4、大漠插件下载包中:注册大漠插件到系统.bat

九、大漠后台模式选择及绑定(取自大漠插件接口帮助文档)

1、如何知道我的后台模式(手工逐一测试)
测试窗口的后台模式非常简单,从颜色 鼠标 键盘三个 依次进行测试即可
比如颜色,我们可以如下测试,其中的gdi模式你可以换成别的颜色模式,看哪种模式可以正常的后台截图,那么这个模式就是你的后台模式
截的到图我是放在了c:根目录(根据dm.SetPath指定的目录)
set dm = createobject("dm.dmsoft")
dm.SetPath "c:"
hwnd = dm.GetMousePointWindow()
dm_ret = dm.BindWindow(hwnd,"gdi","normal","normal",0)
dm_ret = dm.Capture(0,0,2000,2000,"screen.bmp")
dm_ret = dm.UnBindWindow()
EndScript
比如鼠标,其中的windows你可以换成其它模式,测试鼠标要注意,坐标点(100,100)要换成窗口里有意义的点,比如某个按钮等.
set dm = createobject("dm.dmsoft")
hwnd = dm.GetMousePointWindow()
dm_ret = dm.BindWindow(hwnd,"normal","windows","normal",0)
dm.MoveTo 100,100
Delay 100
dm.LeftClick
Delay 100
dm_ret = dm.UnBindWindow()
EndScript
比如键盘,其中的windows你可以换成其它模式.注意下面的按下的虚拟键盘码68要根据窗口换成有意义的按键.
set dm = createobject("dm.dmsoft")
hwnd = dm.GetMousePointWindow()
dm_ret = dm.BindWindow(hwnd,"normal","normal","windows",0)
dm.KeyPress 68
Delay 100
dm_ret = dm.UnBindWindow()
EndScript
2、使用大漠后台模式测试工具
如:大漠后台多线程测试工具v3.1【江中游】出品
论坛下载地址:http://bbs.vrbrothers.com/viewth ... &from=favorites
3、窗口句柄的获取
例:hwnd = dm.FindWindowEx(0,"","记事本")
详见大漠插件接口帮助文档关于“FindWindowEx”函数的介绍。




10号重新编辑了一下格式,被“待审核”,小小心愿落空了。  
但生活还要继续,按键还要学习。  
9月12日测试150次,识别不成功24次,识别成功率84%。
连续识别成功最高次数14次。
连续识别错误最高次数2次。  

另:大漠“FindMultiColor函数”在“dx模式”绑定下,运行速度较“normal模式”慢6-8倍,求解,

紫菀天降卡片


目前的幻想验证码应该用插件也不是那么好识别了,而且这些插件基本都是收费插件,麻烦!
简单就好!
有办法吗?我记得有一个神医没过 重新登录那里还有个验证码应该很容易过哈。。。。。大大能不能加进去呢?
1.JPG
2013-3-13 07:48
s.JPG
2013-3-13 07:48

这两种过了 一种就可以哈。一个是登录的  一个是神医的。
求大大更新。
http://bbs.anjian.com/thread-247277-1-1.html
大大,这个是原帖。我觉得你可以看下。。。
另外希望论坛越办越好
登录后只剩下30秒神医的,,意义不大的,登录窗口的估计用文字识别插件识别的可能性大点!
简单就好!
我就有个想法。。。登录的那个能过。。。。另外那个乱选不就成了?错了不是重新登录再重选哈。
我说的只是思路。。。这几天找了大量的验证码图片准备做图库,。
我类个去
返回列表