百度挂绳验证码底图还原

声明:

        本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!若有侵权,请添加(wx:wyqlxl99)联系删除

前言:

        百度新出了一款验证码如下图,还更新了一下vmp 现在逆向真的越来越难了连百度vmp都嘎嘎往上拿,这篇文章主要讲一下这个验证码的底图还原前提(要先解密不然白瞎!)

图片

        我们直接来看解密之后的值,里面有一个图片地址,还有一块数组这个搞过底图还原的应该对这个图片数组比较眼熟.

图片

        打开图片地址可以看到图片直接的缝隙分成了10张,但是我们看pm这个数组有11个?按照正常的逻辑 数组里面的一个对应一张图还原的坐标位置那应该是10个才对

图片

        后面我看到了图片的宽和高是300x200 然后按照宽分成五份、高分成两份,那分出来的每张图片应该是60x100,这个时候我看到了数组的第一位不正是60_100么?后续我刷新了几次也验证了我这个猜想 图片固定宽高300x200 然后按配置数组第一位去分割成单张的图片

图片

        那我们分割出来之后怎么还原呢?我们来看假设乱序左上角的为第一张图配置数组里面所对应的60_100_0_0,我们在看来还原之后这张图片所在的位置

图片

        这个时候就会想60_100_0_0 前面两位就是x,y的位置那是不是就按这60-100去还原的呢?这样看大家可能看不太清楚我稍微画了一下

图片

        那第一张是不是有可能是因为凑巧?我们接着拿第二张看0_100_60_0按我们的分析那就是0-100,可以看到也是正确的那第三,第四张呢?

图片

第三张位置是60_0_120_0 就是60-0

第四张位置是240_0_180_0 就是240-0

图片

    整体思路就是根据配置数组第一位对图片进行分割分割成对应小块的图片,然后一次根据配置数组每张图片所对应的x,y进行拼图即可完成还原底图的效果.

    下面是拼接还原的效果,整体还原代码不到20行非常的轻松加愉快!至此百度挂绳验证码底图还原完成!

图片

有兴趣的可以加入我的星球后续会持续分享和更新!

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/417030.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【python】 用来将对象持久化的 pickle 模块

pickle 模块可以对一个 Python 对象的二进制进行序列化和反序列化。说白了,就是它能够实现任意对象与二进制直接的相互转化,也可以实现对象与文本之间的相互转化。 比如,我程序里有一个 python 对象,我想把它存到磁盘里&#xff…

信息安全——概述

信息安全的目标 保密性 Confidentiality 数据保密性:对于未授权的个体而言,信息不可用 隐私性:确保个人能控制或确定自身那些信息可以被收集、保存,这些信息可以被谁公开及向谁公开 完整性 Integrity 信息的完整性、一致性&…

猜数字游戏,炸弹数,random

package com.zhang.random;import java.util.Random; import java.util.Scanner;public class RandomTest2 {public static void main(String[] args) {//随机生成一个1~100之间的数,提示用户猜测,猜大提示猜大,猜小提示小了,直到…

Vue 组件和插件:探索细节与差异

查看本专栏目录 关于作者 还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas&#x…

代码随想录算法训练营 个人总结

训练营周期:2023/12/27 - 2024/2/29,共计65天 LeetCode记录: 考研期间发现的Carl哥和他的代码随想录,考研期间说白了才算是认认真真学习和练习代码的时间,年底参加完考研后报名了代码随想录训练营,希望可以…

PyTorch基础(19)-- torch.take_along_dim()方法

一、前言 在深挖ML4CO的代码过程中,遇到了torch.take_along_dim()这个方法,影响到我后续的代码阅读;加之在上网搜索资料的过程中,网络上对此函数的介绍文章少之又少,即使有,也是对torch官网文档中的解释进…

Unity | Shader基础知识(第十集:shader常用外部资产单词速成)

目录 一、外部资产简介 二、常用的外部资产单词 三、常用的外部资产单词和引入内部 四、图片资产外部调整的具体讲解 1.Tiling,中文:铺地砖 2.Offset,中文:偏移 五、作者的话 一、外部资产简介 在第六集中,我们…

理解TCP Socket编程模型和I/O多路复用技术

最基本Socket模型 基本只能一对一通信,因为使用的是同步阻塞的方式,当服务端在还没处理完一个客户端的网络 I/O 时,或者 读写操作发生阻塞时,其他客户端是无法与服务端连接的。 多进程模型 基于最原始的阻塞网络 I/O&#xff0c…

【InternLM 实战营笔记】基于 InternLM 和 LangChain 搭建MindSpore知识库

InternLM 模型部署 准备环境 拷贝环境 /root/share/install_conda_env_internlm_base.sh InternLM激活环境 conda activate InternLM安装依赖 # 升级pip python -m pip install --upgrade pippip install modelscope1.9.5 pip install transformers4.35.2 pip install str…

Node.js基础---npm与包

包 概念:Node.js 中的第三方模块又叫做包 来源:由第三方个人或团队开发出来的,免费使用,且为开源 为什么需要:Node.js的内置模块只有一些底层API,开发效率低 包是基于内置模块封装出来的,提供更…

音频筑基:CD还是HiRes?高清音频分类一文说透

音频筑基:CD还是HiRes?高清音频分类一文说透 前言音乐品质分类相关资料 前言 音频信号中,经常遇到高清音乐、无损音质、CD、HiRes等说法,本文主要在纯数字信号级别,从音源分类和编码质量两个维度,做一个分析…

使用 MongoDB Atlas 无服务器实例更高效地开发应用程序

使用 MongoDB Atlas无服务器实例更高效地开发应用程序 身为开发者,数据库并不一定需要您来操心。您可不想耗费时间来预配置集群或调整集群大小。同样地,您也不想操心因未能正确扩展而导致经费超标。 MongoDB Atlas 可为您提供多个数据库部署选项。虽然…

每日一题——LeetCode1544.整理字符串

方法一 字符串转数组删除元素 将字符串转为数组&#xff0c;遍历数组&#xff0c;如果碰到同一字母大写小写连续出现就原地删除这两个元素&#xff0c;最后把数组转回字符串并返回 var makeGood function(s) {let arrs.split()for(let i0;i<s.length-1;i){if(arr[i]!arr[…

基于SSM SpringBoot vue物流配送人员管理系统

基于SSM SpringBoot vue物流配送人员管理系统 系统功能 登录注册 个人中心 员工管理 考勤信息管理 小区信息管理 打卡信息管理 出勤统计管理 派单信息管理 工资结算管理 任务统计管理 开发环境和技术 开发语言&#xff1a;Java 使用框架: SSM(Spring SpringMVC Mybaits)或…

Java反射机制底层原理

反射机制 这篇文章我是参考了Java 中的反射机制&#xff08;两万字超全详解&#xff09;_java反射-CSDN博客 然后我在这里做一下总结&#xff0c;因为原文章真的很好&#xff0c;我才疏学浅没什么进行补充&#xff0c;只能做出自己的总结并且写一下自己对这个的理解。 原理&…

有效果的新闻软文推广都是怎么做的?

新闻软文推广能够在短时间内提高产品知名度&#xff0c;塑造品牌的美誉度与公信力&#xff0c;并且效果不是短期的&#xff0c;有一定的持续性&#xff0c;是数字化时代下品牌进行宣传的主要方式之一&#xff0c;受到很多企业的青睐&#xff0c;今天媒介盒子就来和大家聊聊&…

网络编程第二天

1.基于TCP的通信(面向连接的通信) 服务器代码实现&#xff1a; #include <myhead.h> #define IP "192.168.126.91" #define PORT 9999 int main(int argc, const char *argv[]) {//1、创建套接字int sfd-1;if((sfdsocket(AF_INET,SOCK_STREAM,0))-1){perror(…

Python学习DAY09_文件和异常

文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景&#xff0c;而实现数据持久化最直接简单的方式就是将数据保存到文件中。 在 Python 中实现文件的读写操作其实非常简单&#xff0c;通过 Python 内置的 open 函数&#xff0c;我们可以指定文件名、操作模式、编码信…

定时任务调动框架Quartz+SpringBoot集成

Quartz 是一个基于 Java 的广泛使用的开源的任务调度框架 官网&#xff1a; http://www.quartz-scheduler.org/ 源码&#xff1a; https://github.com/quartz-scheduler/quartz 整个 Quartz 的代码流程基本基本如下&#xff1a; 1、首先需要创建我们的任务(Job)&#xff0c…

【重要公告】BSV区块链协会宣布将启动多项动态安全增强措施

​​发表时间&#xff1a;2024年2月16日 2024年2月16日&#xff0c;瑞士楚格 - BSV区块链协议的管理机构BSV区块链协会&#xff08;以下简称“BSV协会”&#xff09;宣布对其运营模式实施全新的安全架构&#xff0c;其中包括引入网络访问规则和数字资产找回协议&#xff0c;以及…