肝胆相照论坛

 

 

肝胆相照论坛 论坛 法律咨询 存档 1 乙肝大使刘德华暂列“感动中国”第11名,投票期即将截止 ...
楼主: 金戈铁马

乙肝大使刘德华暂列“感动中国”第11名,投票期即将截止! [复制链接]

Rank: 4

现金
356 元 
精华
帖子
31 
注册时间
2007-10-7 
最后登录
2010-11-16 
71
发表于 2008-1-8 19:22

有了校验码怎么办

现在有了校验码,软件不能用了,写软件的战友还能帮帮忙码?一线希望啊!

Rank: 4

现金
1720 元 
精华
帖子
388 
注册时间
2002-12-19 
最后登录
2009-10-10 
72
发表于 2008-1-8 19:49

请写软件的高手再出出主意吧!!肯定有程序能破解!!

请写软件的高手再出出主意吧!!肯定有程序能破解!!

Rank: 4

现金
1720 元 
精华
帖子
388 
注册时间
2002-12-19 
最后登录
2009-10-10 
73
发表于 2008-1-8 19:58

会写程序的写!!这有代码!!

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

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


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

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

二、下载验证码样本

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

img = image.new();
--下载图像,没有后缀名要显示指定*.bmp格式
img:getURL("/Article/UploadFiles/200508/20050831203413603.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 = {}; --这是一个图像数组,用来储存还原后的验证码样本的图片数据

1 2

Rank: 6Rank: 6

现金
1435 元 
精华
帖子
557 
注册时间
2007-3-18 
最后登录
2017-7-28 
74
发表于 2008-1-8 20:19
以前投过,但那是在公司。
现在在家,刚才又投了一票,居然弹出网页说已过了投票期限!

Rank: 3Rank: 3

现金
32 元 
精华
帖子
56 
注册时间
2008-1-4 
最后登录
2008-3-8 
75
发表于 2008-1-8 20:34
我已经投了! 什么时候有结果?

Rank: 5Rank: 5

现金
2689 元 
精华
帖子
930 
注册时间
2004-12-20 
最后登录
2020-7-29 
76
发表于 2008-1-8 21:49
来晚了,好在还来得及投票

Rank: 4

现金
424 元 
精华
帖子
28 
注册时间
2006-11-8 
最后登录
2017-7-29 
77
发表于 2008-1-8 21:51
验证码只要填一次就可以了
请问:出现投票次数过多的情况具体应该怎么办?
上面的帖子说的不是很清楚

Rank: 4

现金
1265 元 
精华
帖子
303 
注册时间
2005-1-13 
最后登录
2009-11-19 
78
发表于 2008-1-8 22:01
投了两票,有空再投!

Rank: 4

现金
322 元 
精华
帖子
61 
注册时间
2007-8-30 
最后登录
2010-5-27 
79
发表于 2008-1-8 22:01
总是出现405 not ~~~已经投不了了。其实也就尽尽人事而已。GOV明显不想让我们有机会出头的。

Rank: 4

现金
976 元 
精华
帖子
403 
注册时间
2005-3-2 
最后登录
2015-7-21 
80
发表于 2008-1-8 22:03
验证码识别有一定的难度,需要花些时间
而且现在还限制IP了,同一个IP即使验证码正确,连续投票成功的次数也很有限

所以就目前的情况,在智能投票程序没能做出来之前,最好的方法就是手动投票,并且不断换IP(换机器或者ADSL重复拨号)

[ 本帖最后由 一线-希望 于 2008-1-8 22:05 编辑 ]
‹ 上一主题|下一主题

肝胆相照论坛

GMT+8, 2024-11-22 12:14 , Processed in 0.016273 second(s), 11 queries , Gzip On.

Powered by Discuz! X1.5

© 2001-2010 Comsenz Inc.