文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院专栏Baidu教你轻松破解验证码 - 解读百度贴吧杀手v2.0源代码
精品广告
推荐TOP10
·新站如何被百度快速的收录
·网站让百度(Baidu)天天更新、收录的更多的方法
·新站注意:百度(Baidu)收录新站的研究
·baiduspider常见问题解答
·baidu给友情链接站长们的一些指南
·什么都能搜到 将Google和百度合二为一
·百度地图伴我走遍全天下
·百度主题封杀以下十四种特征行为
·上网了解知识:百度知道四大提问技巧
·用百度实现站内搜索的Javascript代码
阅读TOP10
·百度的 hao123.com被黑
·教你轻松破解验证码 - 解读百度贴吧杀手v2.0源代码
·新站注意:百度(Baidu)收录新站的研究
·感悟:百度(baidu)给你一个努力的平台
·解决论坛的收录问题:百度BBS收录协议
·baidu给友情链接站长们的一些指南
·百度张海龙:设计思维是以人为本的创新
·一个都不能少 IE7 beta2中添加百度搜索引擎
·百度小声?剖析真假消息的十大因素
·什么都能搜到 将Google和百度合二为一

教你轻松破解验证码 - 解读百度贴吧杀手v2.0源代码

日期:2008年9月14日 作者: 查看:[大字体 中字体 小字体]


《百度贴吧杀手》 v 2.0 (注:需要模拟精灵2005 v4.20以上版本)

本程序使用《模拟精灵2005》v4.20编写。

下载《百度贴吧杀手》v2.0源代码:http://www.yhhe.net/ape/post/post2005.fap
下载《模拟精灵2005》 v4.20:http://www.yhhe.net/Fairy_Ape.exe
下载《百度贴吧杀手》v2.0 exe发布版本(包含模拟精灵)::http://www.yhhe.net/ape/post/post.exe

前些时候我制作了《百度贴吧群发》,可以自动换IP、并且自动更换关键字、标题、内容、图片,
过了几天以后百度贴吧增加了验证码,所以这个程序也用不了了。

今天好奇研究了一下百度的验证码,做了一个新的程序,做这个程序的目的完全是研究技术。
除了测试,我不会去贴吧发广告,也请大家不要去发广告。

授人以鱼不如授人以渔,下面我简单介绍一下破解验证码的过程。

一、序
大家知道,破解验证码、图文识别都是技术开发的难题,人眼能轻易分别的字符,计算机却需要大量的计算,而且结果很难做到准确。就算是用C++来做,也是很费劲很难得到好的效果。不过在这里我们使用模拟精灵,可以很简单的完成图文识别,模拟精灵虽然大小不足1M、而且是绿色软件完全独立运行,却内置了大部份常用的类库,如模拟编程、WEB编程、windows编程、图像编程都可以轻松实现

二、下载验证码样本

打开c:\test文件夹,选“查看缩略图”,然后重复运行下面的LAScript脚本(每次更换验证码的网址),下载百度贴吧的所有验证码并存为样本,例如图片一,就改名为1.jpg

img = image.new();
--下载图像,没有后缀名要显示指定*.bmp格式
img:getURL("http://post-js.baidu.com/cgi-bin/c?1381747384&876744693","*.jpg")
image.corp(img, 9 ,0 , 41 , 20 )
img:save("c:\\test\\test.jpg") --保存到硬盘

--折分图片,指定一行四列
img2,img3,img4,img5 = img:split(1,4);

img2:save("c:\\test\\0001.jpg")
img3:save("c:\\test\\0002.jpg")
img4:save("c:\\test\\0003.jpg")
img5:save("c:\\test\\0004.jpg")

image.del(img);


三、生成验证码样本数据库

运行下面的脚本,把所有的验证码样本保存到ApeML数据岛

codeKey ={};
--添加所有数字键
for i =0,9,1 do
codeKey[""..i] = 0; --这里我们用字符串连接的方法把数字转换为字符串
end;

--k参数为键,v参数表示值 一个典型的table迭代器回调函数
loadCodeKey = function(k,v)
local img = image.new();
img:load("C:\\test\\"..k..".jpg")
codeKey[k]= string.encode( img:getBytes("*.jpg") , ""); --因为转换到字符串还是二进制,所以用base64进行编码
image.del(img);
end;

--遍历表codekey的所有元素,调用loadcodekey加载图片文件
table.foreach (codeKey, loadCodeKey);

--把所有图片保存到数据岛,
ape:saveTable(codeKey,"验证码样本")


四、识别验证码

运行下面的脚本测试一下


--从数据区块读取base64编码的图片数据
codekey = ape:loadTable("验证码样本");
imgBinKey = {}; --这是一个图像数组,用来储存还原后的验证码样本的图片数据
--必须进行一个转换,因为codekey里面只是base64编码的普通字符串,而imgBinKey 将是真正的图片对象(二进制数据)

--还原到图片对象
toImage = function(k,v)
local img9 = image.new();
img9:setBytes( string.decode( v ,"") ,"*.jpg");
imgBinKey[k] = img9;
end;
table.foreach(codekey,toImage);

--下载验证码图片
imgD = image.new();
if (imgD:getURL("http://post-js.baidu.com/cgi-bin/c?1281496520&1833052661","*.jpg") ~= true) then
win.messageBox("下载图像失败","")
image.del(imgD)
do return false end;
end;

image.corp(imgD, 9 ,0 , 41 , 20 );
--使用split函数分割图片
img2,img3,img4,img5 = imgD:split(1,4);

function test(imgX)
limit = 1;
chr = "";
win.messagePrint("正在检测图片,请稍候....")
testimg = function(k,v)

local n = imgX:testX(imgBinKey[k]);
if(n<limit)then
limit = n;
chr = k.."";
end;
end;
table.foreach(imgBinKey,testimg);
return chr;
end;

win.messageBox("验证码".. test(img2)..test(img3)..test(img4)..test(img5),"")


五、小结

效果很不错,百分百的准确,唯一的遗憾是识别验证码的过程不是很快,在我电脑上估计要30秒左右,不过图像处理是需要一定的时间,基本上不防碍发信息的的效率。

至于怎么改关键字、标题、内容、图片,这个较简单,熟练使用模拟精灵的话应当不难。如果没用过的看下面的示意图:

Click to Open in New Window


上一篇:Windows XP操作系统防火墙经典使用指南

下一篇:Google放宽AdWords字数限制 精确广告定位


相关软件: 相关文章:
·流光教程一
·流光教程三
·教你学习如何破解XP登陆密码
·流光教程二
·《霹雳小组4》详细教导攻略
·Helix流媒体服务器架设及RMVB制作教程
·photoshop修改照片成为美女教程

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号