友情提示:转载请标明出处,各位大佬们,谢谢了

首先看一下目标的验证形态是什么样子的

是一种通过验证推理的验证方式,用来防人机破解的确是很有效果,但是,But,这里面已经会有一些破绽,比如:

(以上是原图和二值化之后的结果)

(这是正常图片)

像划红线的这些地方,可以看到有明显的突变,并且二值化之后边缘趋于直线,但是正常图像是不会有这种这么明显的突变现象。

初识潘多拉

后来,我去翻阅了机器视觉的相关文章和论文,发现了一个牛逼的算法,这个算法就是——Genetic Algorithm遗传算法,最贴心的的是,作者利用这个算法实现了一个功能,“拼图自动还原”(不是像什么A*算法寻找最优路线解那种哈,就是单纯的拼图)项目仓库地址
首先来介绍下如何使用跑起来这个项目吧,坑是真的很多,接下来感受一下pyCham的一路报错!
这里我用的是python3.10的版本,目前是最新的版本
文档中这一步执行是会报错的

pip3 install -r requirements.txt


解决方案:单独对requirements.txt文件下的每个包单独下载,然后根据当前下载的包的最新版本替换旧版本号。


我目前每个包最新使用的是这些版本号

全部替换完了之后,再执行一次下面的代码,他就不会报错了

pip3 install -r requirements.txt

然后下一步,执行下面代码

pip3 install -e .

进入潘多拉

然后我们按照官网的提示来执行,先创建一个拼图出来,命令是这样的(这里的文件名我改了)

create_puzzle images/starry.jpg --size=60 --destination=puzzle.jpg


会发现,好像不行,因为我们没有在正确的位置上执行,他的脚本位置是在bin文件夹下面,你可能会遇到如下问题

成功之后的话,会在bin目录下生成一个拼图图片

以上是介绍如何生成图片,接下来是重头戏,如何还原图片

gaps --image=puzzle.jpg --generations=20 --population=600

对于参数的解释官网是这样的:

Option
–image Path to puzzle(需要被还原的图片)
–size Puzzle piece size in pixels (拼图的大小)
–generations Number of generations for genetic algorithm (遗传算法的代数)
–population Number of individuals in population
–verbose Show best solution after each generation (显示每一代后的最佳解决方案)
–save Save puzzle solution as image (拼图结果另存为图像)

先按照官方的走一遍

很好,很舒服,继续报错,而且语法拼写上我们也没有拼写错,没关系!我已经帮你找到解决方案了。

 python gaps --image=puzzle.jpg --generations=20 --population=600 --size=60  --save

或者你不指定遗传代数和人口数

 python gaps --image=puzzle.jpg --size=60 --save



这是完全还原的结果,至此,我们披荆斩棘从解决项目报错,一路挖坑填坑到demo成功运行,到这里我们已经成功了60%,接下来就是如何利用这个项目,去破解网易易盾的推理拼图验证。

探究潘多拉的秘密

首先看一下项目目录:

gaps文件夹下面是所有模块的源码,作者对各个基础功能做了封装,但是我们想要的功能并不存在,就需要自行阅读和理解源码,然后二开实现自己想要的功能。

我们主要关注这个文件individual.py

我来用大白话给你翻译一下吧,“在所有排列中,帮你找出最优解”

输出这个映射,结果是这样的,正好是我们想要的东西

下面会有一个创建图像的方法,这是最后得到最优解图像拼接函数

那么,我们将最后的索引映射取到就OK了!

以下为最优解的映射值输出实例:

初始化的时候,新增一个变量用来存储最后的结果

self.pieceMapping = None

自定义一个函数

# 返回映射值
def getPieceMapping(self):return self.pieceMapping

每次执行的时候,将最优解传递出去

def to_image(self):"""Converts individual to showable image"""pieces = [piece.image for piece in self.pieces]self.pieceMapping = self._piece_mappingreturn image_helpers.assemble_image(pieces, self.rows, self.columns)

以上,就把我们想要的结果输出了

调用:


key为最后的结果标志,value为原始标志。

PS:对于极度复杂的原始图片创建的拼图,在还原之后,误差会挺大的。

友情提示:转载请标明出处,各位大佬们,谢谢了

网易易盾—推理拼图验证码的破解相关推荐

  1. 网易易盾——推理拼图验证码参数逆向分析和调用

    之前发过一篇文章,<对无序的验证码拼图还原>,地址在这里,本篇文章主要是对验证的提交参数进行逆向分析,成功演示结果在最底部 目标网址 aHR0cHM6Ly9kdW4uMTYzLmNvbS9 ...

  2. Python识别验证码----网易易盾推理拼图

    Python识别验证码----网易易盾拼图推理 写在前面 数据特点 获取数据 识别思路 识别结果 改进点 写在前面 近日某众打码平台被跑路的消息一出,脚本圈中一片哗然(我并不是脚本圈的,只是喜欢看群里 ...

  3. 网易易盾某 拼图验证码

    前言 可以关注我哟,一起学习,主页有更多练习例子 如果哪个练习我没有写清楚,可以留言我会补充 如果有加密的网站可以留言发给我,一起学习共享学习路程 如侵权,联系我删除 此文仅用于学习交流,请勿于商用, ...

  4. [Python] 某易易盾—推理拼图验证的安全分析

    非原创,转载收藏学习.非原创,转载收藏学习.非原创,转载收藏学习. 原生帖子传送门: https://www.52pojie.cn//thread-1583574-1-1.html 项目仓库传送门:G ...

  5. 行为式验证码家族再添一员 网易易盾推出推理拼图验证码

    近日,网易易盾正式对外推出推理拼图验证码,通过业内首创的逻辑推理+图块形式,解决找回密码.账号解冻.拉新领券等高安全等级场景下,人机高精准识别的需求. 前台使用上,用户只需要拖动需要交换的2个图块,复 ...

  6. 使用java + selenium + OpenCV破解网易易盾滑动验证码

    使用java + selenium + OpenCV破解网易易盾滑动验证码 网易易盾:dun.163.com * 验证码地址:https://dun.163.com/trial/jigsaw * 使用 ...

  7. 【验证码识别】OpenCV挑战网易易盾滑动验证码

    使用java + selenium + OpenCV破解网易易盾滑动验证码 戳这里→康康你手机号在过多少网站注册过!!! 友情推荐:新一代安全短信 谷歌图形验证码在AI 面前已经形同虚设,所以谷歌宣布 ...

  8. 网易易盾验证码移动端迎来新版本 开始支持智能无感知验证

    近日,网易易盾验证码移动端迎来新版本,该版本支持智能无感知验证码,对整体交互及性能等方面进行了优化和提升. 移动端智能无感知验证码交互流程图 验证码移动端最新版本开始支持智能无感知验证码,极致用户体验 ...

  9. 网易易盾验证码移动端迎来新版本 开始支持智能无感知验证 1

    近日,网易易盾验证码移动端迎来新版本,该版本支持智能无感知验证码,对整体交互及性能等方面进行了优化和提升. 移动端智能无感知验证码交互流程图 验证码移动端最新版本开始支持智能无感知验证码,极致用户体验 ...

  10. 网易易盾助力工信部装备工业发展中心 守卫网站安全第一道防线

    近日,网易易盾与工业和信息化部装备工业发展中心(以下将简称:工信部装备工业发展中心)达成合作.借助网易易盾行为式验证码,工信部装备工业发展中心能有效防止机器的暴力登录和破解的同时,又能给用户带来无感知 ...

最新文章

  1. Codeforces Round #300 A. Cutting Banner 水题
  2. 用google代替CSDN的博客搜索功能
  3. Acdream Path 动态规划
  4. 二级java题型及分值_2016年全国计算机二级java语言程序设计考试大纲
  5. android 底部滑动效果怎么做,Android实现简单底部导航栏 Android仿微信滑动切换效果...
  6. java运算符试题,编程语⾔⾯试题之新版javase基础语法篇之运算符
  7. signature=267d7b238718fa0d900b4fd94e068fe9,Modelowanie widm NMR kwadrupolowych jąder
  8. springboot ServletContextListener接口
  9. EXTRONICS推出IRFID500便携式UHF RFID读写器
  10. web前端:技术提升必学的HTML用法
  11. Unity 内置渲染管线转URP
  12. 利用Visio DIY自己的示意图
  13. 2019 CSP-S第二轮认证一等奖获奖名单
  14. 当面试官说“你还有什么问题想问的”,你该如何回答?
  15. java 无法显示打印页面_使用打印机打印网页时出现的脚本错误的办法
  16. Linux进程突然被杀掉(OOM killer),查看系统日志
  17. 横版射击,王者归来|Cocos精品《合金弹头OL》
  18. 《软件安装与使用教程》— 安装Proteus8仿真软件最新详细教程
  19. WebGL 及其在 WebRTC 中的应用
  20. Jzoj3176 蜘蛛侠

热门文章

  1. po 价格条件表_SAP 定价
  2. CDR X4无法使用怎么解决
  3. cr全称是什么意思_魔兽世界CR是团灭的意思 他的全称是什么呢?
  4. 金税盘显示frm000013_开票软件(金税盘版)2020年4月征期抄报方法/季报方法!
  5. RS纠删码性能分析实战
  6. 警惕,最新SCI/SSCI期刊14本期刊被剔除?
  7. JAVA——斐波那契数列(递归)
  8. 【收藏】2004年最值得推荐的管理类书籍
  9. 世界质量大师登场,告诉你质量的最大秘密!【优思学院】
  10. NAR:eggNOG 5—蛋白功能层级注释数据库