你有看见我弄丢了的那只喵吗

简单利用神经网络破解某百度验证码

BIGGER SLY 739℃ 0评论

0X01 需求描述

代码是在过年的时候写的,现在两个月后莱茨狗的热度已经过去了,现在就公布自己写的验证码破解心得

原先写letsfuckdog 的时候 验证码是外接打码接口,算下来 一天费用也不少,就寻思着 验证破解。

          

也就是数字加英文大小写。现在就要准备识别他。

0X02  思路说明

1. 对图片降噪 旋转 然后使用teserort-ocr 识别。(恕我直言 原生识别效果很垃圾,原先我是写过pytessert3 这个轮子  还需要慢慢调整图片 头很大)

2. 淘宝上有人卖 从百度js流出来的生成 代码,直接进行训练。(效果很棒因为样本集和预测集都是一样的)

3. 神经网络 识别。(因为以前没有尝试过,因此这个做一个简短的尝试)

 

0X03 我的思路

 

第一步:上网寻找 神经网络 破解的文章。不得不说,垃圾的文章千篇一律,有脑子的博客真的很少。网上很多都拿着ANTI-ANTI-CRAWL 的 神经网络破解以及一篇公共教学,没有任何的实战,我也是醉了。写出来的回测都回测不了。(这里面有一个坑的,我觉得这个坑还是值不少钱 嘿嘿)

第二步:按照网络上的流程,a. 先 用打码平台 搞个一万张 验证码(获取样本集) b. 在用神经网络训练模型 训练出特定的model c. 封装调用模型接口,用于反馈。

第三步:没有第三步。(我猜你们看到的感受应该如下图:)

0x04  废话不多说 直接贴代码

 

看代码之前我要说明的是,他识别的一个简单原理。

定义图片长宽高 是为了形成像素矩阵(黑色就是1 白色0 先假设这么说哈)

定义 我们 答案长度也就是

MAX_CAPTCHA = 4
ALL_SET_LEN = 36

是说我们有四个长度的输出 包含26个字母+10个数字

神经网络 是依靠 整体选取特征值,来进行匹配看输出那些36个里面之一。

比如说 给机器看一万张照片其中有五千张是带人名纪念碑的 机器会根据训练 自动生成特征而不是需要 我去告诉机器 有那些那些特征 才算纪念碑。

最后就是说 这个tf 啊 是一个服务 那些不能循环判断的或者函数多次调用报错【Key Variable_10 not found in checkpoint】 是启动了多个服务。 按照我的写法 就可以调用了

最最后, 训练请用 显卡 否则很慢。

 

 

 

 

转载请注明:灯塔水母 » 简单利用神经网络破解某百度验证码

喜欢 (1)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 给名一大神疯狂打call
    大鱼2018-04-20 14:02 回复
    • 嘿嘿 感谢大神莅临~ 🙂
      SLY2018-04-20 14:30 回复