深圳航空顶象验证码逆向,和百度验证码训练思路

声明(lianxi a15018601872)
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!  
前言(lianxi a15018601872)

试了一天的百度验证码训练,下载ps一个个图来转。一直在找怎么训练才可以正确。太累了把图形弄正。弄了几个小时弄了300多张,还有300-400张吸取上次教训标注完一半直接开始训练看看效果这个我个人经验。之前极验点选标注过程出出问题导致后续一直在错误中摸索。训练了5-6回。重16,32,64。最后手动调整参数修改一下陈不不大佬开源的旋转验证码训练代码。有点不懂感觉陈不不大佬的训练项目虽然不是同类型中最好的。但决定是最容易让人看懂的了诠释了然后让一个小白快速人们。虽然我没报他的课,但是还是可以从代码逻辑中看出是一个很好的it培训导师。训练过程中顺便把深圳航空的顶象给弄了。接下来说一下这两部分怎么处理尽量快点写完看 德国打西班牙。

顶象处理思路

这部分代码是以前写的,我debug看了一下canvas构造过程一点没变直接拿代码来用。

def reduction_image(_seq, _img):"""用于将图片还原@param _seq: 图片的序列号,也就是 Sequence方法生成的结果 还原数组@param _img: 背景图片@return new img"""a = 200  # 假设图片高度为200pxnp_image = np.array(_img)  # 将背景图片转换为NumPy数组new_np_img = np.zeros((200, 400, 3), dtype=np.uint8)  # 创建一个新的空白图片数组,这里假设宽度为400pxfor u in range(0, 32):c = _seq[u] % 32 * 12  # 计算原图片中切片的x位置xpos = u * 12  # 计算新图片中切片应该放置的x位置slice_img = np_image[0:a, c:(c + 12)]  # 从原图片中切出一块n = len(slice_img[0])  # 切片的宽度new_np_img[0:a, xpos:(xpos + n)] = slice_img  # 将切片放置到新图片的对应位置上return new_np_img  # 返回新的图片数组

第一次请求 

params = {"w": "330","h": "165","s": "50","ak": ak,"c": c,"jsv": "5.1.49","aid": f"dx-{int(time.time()*1000)}-32232197-1","wp": "1","de": "0","uid": "undefined","lf": "0","tpc": "","t": "CC999B881AF4A3DA358978FDEB4D109479F4270417255497323BF8D9CFB9BFE4CC3B1235E6B4D3AF34E0EA0AA80AC16134C88846E2A05ACE5C9D3A317FE86B6B0F36CB078A978905578DC10B63601053","cid": "97991961","_r": random.random()
}

第二次请求

data = {"ac": ac,"ak": ak,"c": c,"uid": "undefined","jsv": "5.1.49","sid": sid,"aid": f"dx-{int(time.time()*1000)}-73294134-1","x": x,"y": y,"w": "330","h": "165"
}

主要说一下ac处理。分别三步。init,recordSA , an.sendTemp({ "xpath": "/html/body/div[1]", "x": x, "y": y })处理这三个就可以了。

补环境检测了什么

自动化getAttribute return null就行了。document.body.length和document.documentElement.length,其他都是很常见的问题。

遗留问题

我记得顶象每天会动态更换文件,所以文件一换请求的false。目前有一个思路。但是没时间搞,明天把图标完再说吧。

百度验证码怎么训练

下载不不大佬的项目到本地,把训练次数弄大一点,我测了64次才可以正常开始识别。32,16识别的很乱。同时对图片自己进行处理。就可以。

顶象运行结果

百度验证码测试结果 

训练次数不是很多,测试了一下至少整体是的。增加图片和训练次数应该可以解决。

总结

1.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。lianxi a15018601872

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

encrypt decrypt CA

encrypt & decrypt & CA 加密解密证书

基于java+springboot+vue实现的大学生就业需求分析系统(文末源码+Lw)233

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自…

A股继续3000以下震荡,而国外股市屡创新高,人民币反弹能带动A股吗?

今天的A股,让人愤愤不已,你知道是为什么吗?盘面上出现3个耐人寻味的重要信号,一起来看看: 1、今天两市一度回踩2920点,让股民的心都开始悬起来了。而午后市场行情有了转变,下跌的股票开始明显变…

linux 安装 ImageMagick 及 php imagick扩展

安装imagick扩展前必须安装ImageMagick 一、安装ImageMagick wget http://www.imagemagick.org/download/ImageMagick.tar.gz 上面如果报错(cannot verify download.imagemagick.org’s certificate)执行 sudo yum install -y ca-certificates tar zxv…

RPM 包默认安装的服务

RPM 包默认安装的服务 chkconfig --list # 查看服务自启动状态,可以看到所有RPM包安装的服务 ps aux # 查看进程,包括服务的启动状态和系统程序 netstat -tlunp # 查询系统中开启的服务vim /etc/services # 查看端口作用查询系统中开启的服务 netstat …

在centos7上部署mysql8.0

1.安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB。查看是否安装mariadb rpm -qa | grep mariadb 2. 卸载mariadb rpm -e --nodeps 查看到的文件名 3.下载MySQL安装包 MySQL官网下载地址: MySQL :: Download MySQL Community Serverhttps://dev.mys…

c/c++ 程序运行的过程分析

c/c编译基础知识 GNU GNU(GNU’s Not Unix!)是一个由理查德斯托曼(Richard Stallman)在1983年发起的自由软件项目,旨在创建一个完全自由的操作系统,包括操作系统的内核、编译器、工具、库、文本编辑器、邮…

adb shell ps -T打印出来参数的含义,以及D,T,Z代表的状态含义是什么?

在Android系统中,使用adb shell ps命令可以查看当前系统中运行的进程信息。当你添加-T选项时(注意,标准的ps命令在Android的adb shell中可能不直接支持-T选项,这通常与Linux中的ps命令略有不同),你可能是想…

线性代数基础概念:矩阵

目录 线性代数基础概念:矩阵 1. 矩阵的定义 2. 矩阵的运算 3. 矩阵的特殊类型 4. 矩阵的秩 5. 矩阵的初等变换 6. 矩阵的特征值与特征向量 7. 矩阵的应用 8. 矩阵总结 总结 线性代数基础概念:矩阵 矩阵是线性代数中的另一个重要概念&#xff0…

学java的第3天 后端商城小程序工作

1.数据库的大坑 特殊字段名 ’我的图片表中有一个字段是描述我写成desc了,正好是mysql中的关键字 就不能使用了 2.后端编写 2.1可以把请求分开 在商品浏览页中 只显示商品的大致信息 当用户再点击其他按钮时在发出请求 2.2把请求合并 把数据整合到一起 利用ass…

Python爬虫教程第1篇-基础知识

文章目录 什么是爬虫爬虫的工作原理用途搜索引擎爬虫Robots协议HTTP的请求过程URL的含义HTTP常见请求头爬虫常用的技术 什么是爬虫 信息的交互是通过web网页、或者移动端等不同的客户端端形式进行交互,这个过程是一个人与网路正常的交互行为。而爬虫可以用来模拟人…

linux-5.10.110内核源码分析 - Freescale ls1012a pcie host驱动

1、dts pcie设备树 1.1、pcie设备树 pcie1: pcie3400000 {compatible "fsl,ls1012a-pcie";reg <0x00 0x03400000 0x0 0x00100000 /* controller registers */0x40 0x00000000 0x0 0x00002000>; /* configuration space */reg-names "regs", &…

JVM原理(十七):JVM虚拟机即时编译器详解

编译器无论在何时、在何种状态下把Class文件转换成与本地基础设施相关的二进制机器码&#xff0c;他都可以视为整个编译过程的后端。 后端编译器编译性能的好坏、代码优化质量的高低却是衡量一款商用虛拟机优秀与否的关键指标之一。 1. 即时编译器 即时编译器是一个把Java的…

Linux进程(1)(结构-操作系统-进程)

目录 1.体系结构 2.操作系统&#xff08;Operator System&#xff09; 1&#xff09;概念&#xff1a; 2&#xff09;结构 示意图&#xff08;不完整&#xff09; 3&#xff09;尝试理解操作系统 4&#xff09;系统调用和库函数概念 3.认识进程 1.启动 2.进程创建的代码…

Mojo 编程语言:AI 开发者的必备利器

目录 1. Mojo 的背景与发展 1.1 编程语言的演变 1.2 Mojo 的诞生 2. Mojo 的核心特点 2.1 高性能计算 2.2 易用性 2.3 灵活性 3. Mojo 的关键技术 3.1 静态类型系统 3.2 并行计算 3.3 高效的内存管理 3.4 GPU 加速 4. Mojo 的应用场景 4.1 数据处理与分析 4.2 机…

王道考研数据机构:中缀表达式转为后缀表达式

实现方法&#xff1a; 初始化一个栈&#xff0c;用于保存暂时还不能确定运算顺序的运算符。从左到右处理各个元素&#xff0c;直到末尾。可能遇到三种情况: 遇到操作数。直接加入后缀表达式遇到界限符。遇到“(”直接入栈;遇到“)”则依次弹出栈内运算符并加入后缀表达式&…

C#用反射机制调用dll文件的字段、属性和方法

1、创建dll文件 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace CLStudent {public class Student{//字段public string Name "Tom";//属性public double ChineseScore { get; s…

Nginx-http_auth_basic_module使用

文章目录 前言一、ngx_http_auth_basic_module二、指令1.auth_basic1.auth_basic_user_file 示例生成密码文件配置basic认证浏览器验证 总结 前言 nginx可以通过HTTP Basic Authutication协议进行用户名和密码的认证。 一、ngx_http_auth_basic_module 生效阶段&#xff1a; …

【linux/shell】linux如何去除字符串中空格

在Linux中&#xff0c;去除字符串中的空格可以使用多种方法&#xff0c;以下是一些常见的命令和技巧&#xff1a; 1. 使用 tr 命令&#xff1a; tr 命令可以用来替换或删除字符。要删除空格&#xff0c;可以使用&#xff1a; echo "字符串" | tr -d 2. 使用 se…

【C++】开源:nlohmann/json数据解析库配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍nlohmann/json数据解析库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&am…