<?xml version="1.0" encoding="gb2312" ?> <ApeML LID="CHS" MD="0" 抓屏模式="0" 名称="新建模拟程序" 作者="模拟精灵 2005" 信息窗口="true" 速度="10" 循环次数="1" 自定义属性="用户选项 = 0"> <!--关闭"信息窗口"可以提升效率加快速度 创建时间:2006年10月19日-20:22--> <脚本区块 语言="LAScript" 名称="init" 延时="0" 启用="true" 编辑密钥="" 运行公钥=""> <![CDATA[ --区块名字前添加"init"前缀则不会重复运行 --import("std"); --从外部文件引用名字空间 _set = ape:loadSetting(); --读取自定义属性 stopPlay = function() --这个函数回放停止时被调用. ape:saveSetting(_set); --保存自定义属性 collectgarbage();--清理内存 end; --请在下面添加不需要重复运行的脚本 --[[ 添加横线取消注释块 do return false end; --退出程序 do return "区块名字" end;--转向指定区块 do return 2 end;--转向第二个区块 --]] --从数据区块读取base64编码的图片数据 codekey = ape:loadTable("验证码样本"); local timg = {}; --这是一个图像数组,用来储存还原后的验证码样本的图片数据 --必须进行一个转换,因为codekey里面只是base64编码的普通字符串,而timg 将是真正的图片对象(二进制数据) --还原到图片对象 toImage = function(k,v) local img = image.new(); local str = string.decode( v ,"");--首先进行base64解码,将纯文本转换为二进制数据 img:setBytes( str ,"*.png");--将二进制数据还原为图像 img:bpp(1); img:bpp(24);
timg[k] = img; end; --载入验证码样本 tkey = ape:loadTable("验证码样本"); for k,v in pairs(tkey) do --验证样本 toImage(k,v); --转换为图像 end; --转换图片验证码到字符串的函数 function ImgToString(img) function test(imgX) --test是一个被包含在函数中的内部函数 sleep(0); local limit = (50 * 17) + (50 * 17); --最小相似度 local关键字声明为局部变量 local chr = "a"; --读取的字符 imgX:bpp(1); imgX:bpp(24); --testimg是一个被包含在函数中的内部函数,作为table.foreach的回调函数,k参数表示键,v参数表示值 testimg = function(k,v) --调用image.testXX()函数得出相似度,类似的函数还有image.testX() image.test() local n = imgX:testXX(timg[k]); if(n<limit)then --比较最小相似度 limit = n; chr = k..""; end; end; --遍历timg表,并调用testimg函数 for k,v in pairs(timg) do testimg(k,v); end; return string.left(chr,1); --返回读取到的字符串首字符(如果每个字符有多个样本) end; --修剪图片 image.Crop(img,2,4,47,16); --使用split函数分割图片 local img2,img3,img4,img5,img6 = img:split(1,5); win.messagePrint("正在检测图片,请稍候...."); return test(img2)..test(img3)..test(img4)..test(img5)..test(img6); end; ]]> </脚本区块> <脚本区块 语言="LAScript" 名称="LAScript" 延时="0" 启用="true" 编辑密钥="" 运行公钥=""> <![CDATA[ --请在下面添加脚本代码(重复运行) img = image.new(); img etURL("http://app.game.163.com/caicai/number.php","*.png"); --因为刷新了验证码与页面不一致,把验证码画到屏幕上 local x,y = mouse.getPos(); img:paint(x,y,50,17 ); local str = ImgToString(img); win.messageBox(str); ]]> </脚本区块> <数据区块> <验证码样本> <item key="0" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAB5JREFUCJljkGBgsAlkSGNgOIyEgFybbAYJRgYwAABu6AU+JYJpvwAAAABJRU5ErkJggg==" ktype="string" vtype="string" /> <item key="1" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAB1JREFUCJljkGBgsGBgqOBjkAAiBiTExFDHxAAGAClkAfcQqW/aAAAAAElFTkSuQmCC" ktype="string" vtype="string" /> <item key="2" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACdJREFUCJljsGFgSGNgOMzAwMzAwJbNwCPIIMHAYMDAkMDA8J8BAgBHvAOeU2mLeQAAAABJRU5ErkJggg==" ktype="string" vtype="string" /> <item key="3" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACdJREFUCJljqGFgOMbAwMzIwMbAIGPEwJbLwAzkSjEcY2KosWUAAwBKFgOvIEMHUgAAAABJRU5ErkJggg==" ktype="string" vtype="string" /> <item key="4" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACVJREFUCJljYGNg4GNgkGNgMDNgSGNgOObP8J+RASjIBiZBwAAAQMYDVzjMz04AAAAASUVORK5CYII=" ktype="string" vtype="string" /> <item key="5" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAClJREFUCJlj+MfGcCCA4QADwx0Ghme6DMymDMwMDIf5GdKKGGwYGcAAAKSCBuY0rntnAAAAAElFTkSuQmCC" ktype="string" vtype="string" /> <item key="6" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAClJREFUCJljsKlnSGNgOMTAcICB4Q4fwzM+hsMMIAQUtGFgYGBiYCgAAJXBBxyUc2+3AAAAAElFTkSuQmCC" ktype="string" vtype="string" /> <item key="7" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACVJREFUCJlj+M/HwAxEDAxsDAw8DAwSDAwGDAwJDAwHgEiaAQwAQkMDd756qJoAAAAASUVORK5CYII=" ktype="string" vtype="string" /> <item key="8" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAClJREFUCJljsDFiSGNgOOzCkCbOYOMIZisxHK5lSIthsGFgYEhlYBAHAIRrBtu1Kq7rAAAAAElFTkSuQmCC" ktype="string" vtype="string" /> <item key="9" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAChJREFUCJkFwTENACAMALAuOOJl2YMX0IC+GaOV0yn9dLgsRtgcEpP6c4oFDj6wrrIAAAAASUVORK5CYII=" ktype="string" vtype="string" /> <item key="a" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACBJREFUCJljYIABOwaGZAYGZgaGegaGwwwMxxkYqqEyAC8PAyl21X6wAAAAAElFTkSuQmCC" ktype="string" vtype="string" /> <item key="b" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAB9JREFUCJljOMDAAEF3GBie1TMcZoCiZ3wMd/gYwAAAtpkIqVG14A0AAAAASUVORK5CYII=" ktype="string" vtype="string" /> <item key="c" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABhJREFUCJljYIABOwaGZAaGAzCUDBYBAwA7xgOD7kNl2QAAAABJRU5ErkJggg==" ktype="string" vtype="string" /> <item key="d" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACpJREFUCJljYM5kYHZjYGZlsGZgSE9gOBzMcDiH4TAHQzoDSISBh4EhFwBqxwXra6wUOQAAAABJRU5ErkJggg==" ktype="string" vtype="string" /> <item key="e" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAChJREFUCJljYGBkAIFUBpt8hjQGhsM5DP/dGA4wMSQzMNgBxSMYGAoAZJUGFwVFkK0AAAAASUVORK5CYII=" ktype="string" vtype="string" /> <item key="f" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABdJREFUCJljkGNgMAYjAzD6A2NAEBgAADalAqHKEKImAAAAAElFTkSuQmCC" ktype="string" vtype="string" /> <item key="g" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACdJREFUCJljYACCTBBRa8dwnIHhGBAxMtQwMBxIZKhLZTjMwFAXAABsygeKmS7qTwAAAABJRU5ErkJggg==" ktype="string" vtype="string" /> <item key="h" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABhJREFUCJljOMDAAEF3GBieMTAcRkVgAACoeAfSsZOZCQAAAABJRU5ErkJggg==" ktype="string" vtype="string" /> <item key="i" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAB9JREFUCJljkMhkkGAAAYs0BgkmMGIAoyyGOrA4Qy0ANN8DGVuKocMAAAAASUVORK5CYII=" ktype="string" vtype="string" /> <item key="j" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAB9JREFUCJljYGNgACIg4AMy6hkgXBDiYzgGRAwMNQwAG/4C3C2JwxgAAAAASUVORK5CYII=" ktype="string" vtype="string" /> <item key="k" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAChJREFUCJljSHBjSGBgSAhiSMthyGFgqACjnBCGNAaGZAYGhiAGBiYAeUwFxJCtJk0AAAAASUVORK5CYII=" ktype="string" vtype="string" /> <item key="l" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABdJREFUCJljsGBgkICjeiQ2A4MNAwQAACS2AbQrovCjAAAAAElFTkSuQmCC" ktype="string" vtype="string" /> <item key="m" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACBJREFUCJljYGBkYIhkAIJtDAy3gcgMTPIx3BYAITAAAHLgBpc5bNIbAAAAAElFTkSuQmCC" ktype="string" vtype="string" /> <item key="n" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABZJREFUCJljYICBOwwMzxgYDqMiMAAAYHgFkgrEz5QAAAAASUVORK5CYII=" ktype="string" vtype="string" /> <item key="o" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACdJREFUCJljYACCaAYGRgYbFoY0RobDDGBkwJDGwGBTysDgwMDAAgBOwwTY275ejgAAAABJRU5ErkJggg==" ktype="string" vtype="string" /> <item key="p" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACJJREFUCJljYICBO4YMzxgYDvMxHK5kOKwDYt9hYDgARAYAd9AIYgFQ9MEAAAAASUVORK5CYII=" ktype="string" vtype="string" /> <item key="q" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACFJREFUCJljYLBmYGBiYKgH0ekMDIeBiA+EgGygCDMIAQBUJARs1SwY5wAAAABJRU5ErkJggg==" ktype="string" vtype="string" /> <item key="r" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABpJREFUCJljYIAAPoZ7fAzFDAwJcMQEQmAAAD5NA1LFW3l0AAAAAElFTkSuQmCC" ktype="string" vtype="string" /> <item key="s" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABpJREFUCJljYICBOgaGwwwMB8AMZjC7DioDAEJOA8QldVLbAAAAAElFTkSuQmCC" ktype="string" vtype="string" /> <item key="t" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAB9JREFUCJljYGBgMAAiRYY/SmAGDBkzMMgB5eIZGIIBPuoDY5oliEoAAAAASUVORK5CYII=" ktype="string" vtype="string" /> <item key="u" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAB9JREFUCJljYIAAFobDQMQAQwUM6TEM1rkMDEUMDFYAYa4GX+OG9bkAAAAASUVORK5CYII=" ktype="string" vtype="string" /> <item key="v" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABZJREFUCJljYICBw2CUBkY2YCQBlQEAOtEC48678cYAAAAASUVORK5CYII=" ktype="string" vtype="string" /> <item key="w" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACdJREFUCJljYGBkAAFNhsNaDIcZGG6XMNyuYbjtxPCfgSENKF4PxAB9pweCjCjlYwAAAABJRU5ErkJggg==" ktype="string" vtype="string" /> <item key="x" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACNJREFUCJljYGBkgIDD+gxpyQw2qQwSDAw2pQxpQBGgKEgWAEvVBFFUB3dnAAAAAElFTkSuQmCC" ktype="string" vtype="string" /> <item key="y" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACNJREFUCJljYGBkgIDDQCTIcJgfzGBgSC9isGZgaK5nqGMAAF9FBoWQDv+rAAAAAElFTkSuQmCC" ktype="string" vtype="string" /> <item key="z" value="iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMAQMAAACKkgXgAAAABlBMVEUAAAD///+l2Z/dAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACFJREFUCJljYICBOkMGNgYGHj4GCUYGAwaGBEaGOohEOgAhBgJfCo4UJwAAAABJRU5ErkJggg==" ktype="string" vtype="string" /> </验证码样本> </数据区块> </ApeML>
|