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

Python简单的验证码识别: 图片验证, 滑动验证, 点选验证... 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 阅读详情

非原创,转载收藏学习.非原创,转载收藏学习.非原创,转载收藏学习.

原生帖子传送门: https://www.52pojie.cn//thread-1583574-1-1.html

项目仓库传送门:GitHub - nemanja-m/gaps: A Genetic Algorithm-Based Solver for Jigsaw Puzzles

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

在这里插入图片描述

 

是一种通过验证推理的验证方式,用来防人机破解的确是很有效果,但是,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_mapping

    return image_helpers.assemble_image(pieces, self.rows, self.columns)

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

 

调用:

在这里插入图片描述

在这里插入图片描述

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

 

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

在这里插入图片描述

image.png

【CTF工具】自动拼图工具gaps的安装与使用 写这个文章主要是记录一下我踩过的坑,因为github上面提供的gaps工具的安装以及使用方法都和网上的安装教程有一些出入,经过自己参考大佬的教程和自己摸索终于给他搞定了,接下来我们就来正式进入安装环节;我们对题目分析之后,拿到了这么一堆照片的碎片,我们需要对其进行拼图成一张完整的照片,才能获得图片上面的flag。我这里使用的系统环境是kali 2023,其他的系统安装过程应该大同小异,如有不同请自行百度踩坑;出现以下字符,或者在终端中输入gaps显示为蓝色,即为安装成功;输出的新图片 flag.png。 阅读详情

相关推荐

使用Python破解易盾验证码

首先,我们需要向易盾的验证码接口发送HTTP请求,获取验证码图片。验证码图片通常包含一个随机生成的token参数,每次请求都会生成一个新的验证码图片。易盾验证码是一种常见的人机验证工具,通过要求用户完成多种验证任务来确认其身份。接下来,我们需要对获取到的验证码图片进行图像处理,并识别出验证码中的文字。以下是一个示例代码,用于获取易盾验证码的图片:更多内容联系1436423940。根据识别结果,我们可以将验证码文本输入到相应的输入框中,以完成验证码验证过程。# 发送HTTP请求获取验证码图片。

asfdsgdf的博客 843

图标点选验证码识别---python破解代码

在线测试:http://121.4.108.95:8000/index/ 开源地址:https://github.com/Bump-mann/simple_ocr首先我们看一个较简单的图标点选验证码 从上面图片中依次点击以下图形 笔者的思路(其实就是对着别人的抄)是先识别出图形切割下来,然后分别对比相似度,就可以得出需要点击位置啦~模型下载链接放在文章末尾!显而易见,识别分为两部分,以下为目标识别代码 效果如下: 有些龟裂是因为我加了一些自以为可以“提高”识别效果的东西…以下是相似度代码 效果如下

qq_44749634的博客 7256

如何使用Python判断两张图片是否相同?

以上三种方式都可以用于判断图片是否相同,不同的方式各有优缺点。在实际应用中,要根据需要选择适合的方法。另一种方式是计算两张图片的哈希值,然后比较它们的相似度。哈希值是一种将数据压缩成固定长度的算法,这样就可以通过比较哈希值来快速判断两张图片是否相同。在图像处理中,经常需要判断两张图片是否相同。但是,使用Python语言,我们可以通过多种方式来判断图片是否相同。如果两张图片中任意一对像素点不同,即可判断两张图片不相同。如果以上两种方法不能满足你的需求,那么你可以使用一些开源的图像识别库来判断图片是否相同。

. 4223

小学生python游戏编程5----拼图游戏继

接前两篇文章,[小学生python游戏编程3----拼图游戏-准备](https://blog.youkuaiyun.com/fqfq123456/article/details/127173684),[小学生python游戏编程4----拼图游戏今天](https://blog.youkuaiyun.com/fqfq123456/article/details/127177781)此主拼图游戏做完整 ,上次写到可以打乱图片,拼成游戏界面,今天主要写要如何通过点击图块互换位置,如何全局判断输赢,显示用时间及历史最高记录。

fqfq123456的专栏 2412

Python爬虫逆向案例:某盾滑块验证码-selenium自动化

得到横纵坐标位置后,我们该验证码只需要移动横坐标,但是在OpenCV中我们横向移动相当于OpenCV的纵向移动,因此我们首先去寻找滑动块的标签,然后由上述算法得到x,y,将横线移动y的距离。看到上图图片,发现原图比例和现在的图比例不同,即网页中按比例缩小了图片,但是此图比例太小,略微不计,也可以通过,但是不是一定通过,可能存在误差。灰度处理完后会发现,滑块图多出一些黑色,因为下载过程中就有了多余的块,灰度后会变为黑色,因此我们将亮的块保留,黑色部分切除。使用算法,对滑块和背景图进行匹配。

2201_76125393的博客 2033

Python 识别拼图验证码

注意:如果想要将结果应用与代码中,可以找到 gaps/individual.py文件,将私有属性self._piece_mapping暴露出来,这样就能得到想要的结果,这个属性的值是一个字典{0: 0, 1: 1, 2: 2, 3: 3, 6: 4, 5: 5, 4: 6, 7: 7},代表的是每一块拼图,正确的位置。还原图片,还原图片也需要传入参数60,告诉程序,你的大图中每块小拼图的尺寸。

码王吴彦祖的博客 744

Python识别图形验证码

Python识别图形验证码。

weixin_40611700的博客 2957

易盾滑块验证码逆向实践:抓包定位与轨迹模拟全解析

验证码是Web安全的第一道防线,滑块验证码通过行为轨迹和加密参数识别真人操作。理解其运行机制对自动化采集、JS逆向及风控研究具有重要意义。本文以易盾滑块为例,拆解初始化、校验、回调三次请求链路,剖析data、acToken等核心加密参数生成逻辑,并结合OpenCV缺口识别、高斯噪声轨迹模拟和Python主流程,完整还原滑块逆向的关键技术。同时梳理高频报错与排查方案,强调合规边界,为爬虫工程师和安全测试人员提供可落地的实战参考。

weixin_42525738的博客 962

利用Python与潘多拉算法,破解网易易盾之推理拼图

遗传算法,最贴心的的是,作者利用这个算法实现了一个功能,“拼图自动还原”(不是像什么A*算法寻找最优路线解那种哈,就是单纯的拼图)项目仓库地址 首先来介绍下如何使用跑起来这个项目吧,坑是真的很多,接下来感受一下pyCham的一路报错!这是完全还原的结果,至此,我们披荆斩棘从解决项目报错,一路挖坑填坑到demo成功运行,到这里我们已经成功了60%,接下来就是如何利用这个项目,去破解网易易盾的推理拼图验证。然后我们按照官网的提示来执行,先创建一个拼图出来,命令是这样的(这里的文件名我改了)

m0_59162248的博客 548

动态博弈、威胁与承诺(博弈论入门学习笔记四)

0 动态博弈 动态博弈:行动有先后顺序,不同的参与人在不同时点行动,先行动者的选择影响后行动者的选择空间,后行动者可以观察到先行动者做了什么选择。例如下棋、消费者和商家讨价还价、谈婚论嫁、企业之间的价格战等等。 因此,为了做出最优的行动选择,每个参与人都应该思考:如果我如此选择,对方将如何应对?如果我是他,我将会如何行动?给定他的应对,什么是我的最优选择? 动态博弈中的战略:在博弈开始之前就...

stepho的博客 1万+

USB-Blaster在Win11报错?3分钟搞定驱动兼容性问题(Quartus 21.4实测)

本文针对Windows 11系统下USB-Blaster驱动安装问题,提供了一套快速解决方案。通过优化驱动安装流程、绕过签名验证及设备管理器高级技巧,帮助开发者在3分钟内解决Quartus 21.4的兼容性问题,提升FPGA调试效率。

weixin_30772105的博客 291

最新版2.27、2.28 易盾滑块验证码,图标点选,文字点选, 空间推理,推理拼图,新版旋转滑块,障碍躲避,成功率 99,py➕js 逆向协议通过,有本地 onnx 模型识别

本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

wjx20030806wx的博客 1675

STM32 HAL库ADC+DMA配置详解:从CubeMX到实战调试

在嵌入式系统开发中,模数转换器(ADC)是实现传感器数据采集、信号处理等功能的基石。其工作原理是将连续的模拟信号转换为离散的数字量,为微控制器(MCU)提供可处理的数字信息。为了提升系统效率,直接存储器访问(DMA)技术被引入,它作为独立于CPU的数据搬运工,能在不占用CPU资源的情况下,自动完成外设与内存间的数据传输,从而解放CPU以执行更复杂的控制算法或通信任务。这种ADC与DMA的协同工作模式,对于实现高效、实时的数据流处理具有重要价值,广泛应用于电机控制、环境监测、音频处理等场景。本文聚焦于STM3

weixin_30698297的博客 407

Python系列之图片验证码识别

图片验证码已经成为现代网络应用中常见的一种身份验证形式。本文将介绍如何使用 Python 进行图片验证码的识别。我们将使用基于机器学习的方法,通过训练模型来自动识别验证码图片。

Jamson 5425

STM32F4系列HAL库配置定时器实验——输入捕获

STM32F4系列HAL库配置定时器实验——输入捕获 输入捕获简单讲解 输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量周期和频率为例,用一个简图来说明输入捕获的原理 假定定时器工作在向上计数模式, 图中 t1~t2 时间,就是我们需要测量的高电平时间。测量方法如下:首先设置定时器通道 x 为 上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器

azs0504的博客 9286

【VMware】win 10:VMware 15 虚拟机安装 win 7 系统

目录 一、准备虚拟机 二、win7 ghost ISO镜像文件下载 三、VMware新建虚拟机 四、VMware安装win7 五、解决vmware虚拟机屏幕没有适应窗口全屏问题 一、准备虚拟机 查看我的另一博文:【VMware】VMware Workstation Pro15 虚拟机永久激活破解安装教程 二、win7 ghost ISO镜像文件下载 百度网盘下载地址:点击前往下载...

顾三殇 —— 博客空间(软件测试) 11万+

用Python实现检查图片是否可用

在图像处理和计算机视觉应用中,检查图片是否可用是进行后续图像处理之前的一个重要前置任务。本文将介绍如何使用Python和OpenCV库进行图片检查,以验证图片的完整性和质量。导入所需的库并定义一个函数,用于执行图片检查。import os import cv2 def check_image(image_path) : # 检查图片文件是否存在 if not os . path . exists(image_path) : print(f"图片文件不存在: {

搬砖屋 3769

用 ABAP 的 AMDP 把计算推到数据库:概念、场景、以及可运行示例

摘要:AMDP(ABAP Managed Database Procedures)是SAP HANA环境下优化ABAP性能的关键技术,通过将数据计算逻辑推送到数据库端执行,减少数据传输和应用层处理开销。其核心价值在于利用HANA的集合运算能力,适用于大数据量聚合、窗口函数等复杂计算场景。AMDP不是通用解决方案,而是针对CDS无法高效处理的特定性能瓶颈的优化手段。典型应用包括财务统计、零售分析等需要高性能数据处理的业务场景。本文通过概念解析、性能逻辑推导和实际代码示例(包括直接调用的AMDP Procedu

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 260

网易推理拼图验证码识别

把一个大图划分成8个小的图片,拖动其中的一块和另一块互换,组合正确的话就验证通过. 识别效果如下

qq_21050249的博客 1019

【即插即用模块】注意力篇 | TGRS 2025 | CDFIM:通道+空间多尺度注意力,双模态特征融合增强,性能翻倍!

C2DFF-Net提出了一种轻量级跨模态特征融合模块CDFIM,通过模态差异感知和多尺度深度滤波增强双模态互补信息。该模块采用通道-空间注意力协同机制,以极低计算成本(仅增加0.26M参数)提升多模态目标检测性能,在三个遥感数据集上平均提升mAP约1.7%。适用于无人机等边缘设备的实时检测任务,为跨模态融合提供高效解决方案。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 624

60、磁悬浮主动隔振系统的LQR控制研究

本研究针对磁悬浮主动隔振系统,提出了一种结合ANN建模、LQR控制与MPGA优化的综合控制方案。通过建立系统的动力学与状态空间模型,利用混合训练算法的ANN精确描述MSVI的非线性和滞后特性,并设计基于最小力传递率的LQR控制器。为优化LQR的Q和R矩阵,引入多群体遗传算法(MPGA),有效克服传统GA的早熟收敛问题,提升搜索效率与控制性能。仿真结果表明,在单频、扫频、随机及冲击激励下,该方法显著降低传递力幅值,隔振效果远优于被动系统。研究验证了所提方法的有效性,为磁悬浮隔振技术的实际应用奠定了基础,并展望

linux6sysadmin的博客 125

GAPS 项目使用教程

GAPS 项目使用教程 项目介绍 GAPS 是一个由 Stripe 维护的开源项目,旨在帮助用户管理和分析他们的图片集合。该项目提供了一系列工具和接口,使用户能够轻松地查找、分类和优化他们的图片资源。 项目快速启动 安装 首先,确保你已经安装了 git 和 python。然后,通过以下命令克隆项目并安装依赖: git clone https://github.com/stripe-archive/...

gitblog_00201的博客 656

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

拼图工具gaps安装教程

拼图工具gaps安装教程

weixin_42487326的博客 1053

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

python实现知识推理,图可达,pydatalog,kanren,sympy

刚刚学习人工智能知识推理记录一下 python 人工智能的推理包 又 kanren , pydatalog ,sympy 楼主比较各有利弊 kanren 语法更加接近python 原生语法 pydatalog 语法更加接近我们 离散数学 学到的语法 1、编写一个描述亲属关系的逻辑程序,然后再给予出一些事实数据,建立一个小型演绎数据库。 提示:可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述...

qq_43373608的博客 4825

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

图形推理

图形推理的两大灵魂是数量关系和图形的转动。牢牢把握住这两大灵魂就基本把握了图形推理题目。在这两大灵魂统帅下的十大基本规律,是做图形推理题的必胜工具。 图形推理的两大灵魂:数量关系和图形的转动。 1.     答案:B 分析:方法一,从图形旋转的角度来分析这个题目。顺时针方向看,会发现黑色小方框在作顺时针旋转。 具体的说,第一行三个图形中,黑色小方框在作顺时

LeLe_Feb 8597

基于Python+C++的二维碎片图像拼接复原系统

本文介绍了一个基于计算机视觉的二维碎片自动拼接系统。该系统采用C++和OpenCV实现核心算法模块,包括图像预处理(高斯滤波、边缘检测、二值化)、轮廓匹配(改进的动态规划最大公共子串算法)以及基于最小生成树的拼接算法。Python模块负责图像采集、测试和PyQt5界面交互。实验结果表明,该系统能有效处理不规则带纹理的碎片拼接,在考古文物修复、文件复原等领域具有实用价值。技术栈包括VS2017、OpenCV4.1.0、Python3.6及相关科学计算库。

毕业作品网站 2851
上一篇: 雷神/雷电模拟器 之已开启,但不显示指针位置与显示点按操作反馈处理方案
下一篇: 2022实操搬砖副业攻略
MemroyErHero
博客等级 码龄9年 2337粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值