yd云手机登录算法分析

yd云手机登录算法分析

  • yd云手机登录算法分析
    • 第一步:抓包-登录
    • 第二步:定位加密入口
    • 第三步:分析加密算法
    • 第四步:算法实现

yd云手机登录算法分析

在这篇文章中,我们将详细解析yd云手机的登录算法,涵盖从抓包到定位加密入口、再到分析加密算法的每一步,最后通过Python实现整个加密过程。

第一步:抓包-登录

在这里插入图片描述
在抓包过程中,捕获到了请求,需重点关注的是 code 和 mobile 的加密算法。

第二步:定位加密入口

在这里插入图片描述
在这里插入图片描述
通过搜索code 和 mobile,发现结果较多,改为直接搜索URL请求中的关键字:login/validateCode。

在这里插入图片描述
这里搜索结果就2个,发现第二个是一个post请求,进去看看
在这里插入图片描述

第三步:分析加密算法

看到在g方法中,看到熟悉的mobile和code。我们可以看到mobile 和 code通过 c[“a”].getRsaCode 方法进行处理,从方法名字可以看出这是应该是一个RSA加密,我们在这里下断点进行调试。
在这里插入图片描述
已经断了下来,我们继续跟进
在这里插入图片描述

            getRsaCode: function(e, n) {n = n || u["a"].decryptedKey(s["a"].encryptPubKey);      var t = new window.JSEncrypt;t.setPublicKey(n);var o = t.encrypt(e.toString());return o}

从这里我们可以看出,getRsaCode方法就是加密的核心流程,现在让我们逐行分析一下这个方法的加密流程:

1.首先检查是否传入了 n,如果没有传入,则使用 u[“a”].decryptedKey(s[“a”].encryptPubKey) 计算出一个默认的公钥。
2.创建了一个新的 JSEncrypt 对象实例 t。JSEncrypt 是一个广泛用于浏览器端的 RSA 加密库,提供 RSA 加密和解密的功能。
3.使用 t.setPublicKey(n) 将刚才获取的公钥 n 设置为加密时使用的公钥。
4.t.encrypt(e.toString()) 使用 RSA 加密算法对参数 e 进行加密,并将结果存储在变量 o 中。
5.返回加密后的字符串 o。

我们了解了具体的加密流程,下一步应该是找出加密的公钥。

继续跟进decryptedKey这个方法分析:
在这里插入图片描述
发现Y 函数被赋值给了 u[“a”] 对象的 decryptedKey 属性,现在可以这样理解,decryptedKey方法就是y方法。
我们现在具体分析Y方法:

           function Y(e) {var n = e, t = atob(n), o = t.match(/[\s\S]{1,8}/g), c = o.map((function(e) {return e.split("").reverse().join("")})), i = c.join("");return i}
  • 将传入的参数 e 赋值给局部变量 n。

  • t = atob(n):使用 JavaScript 内置的 atob 函数对变量 n 进行解码,并将解码后的结果存储在 t 变量中。

  • o = t.match(/[\s\S]{1,8}/g):将解码后的字符串 t 按照每 1 到 8 个字符分割,并返回一个数组 o。

  • c = o.map((function(e) { return e.split(“”).reverse().join(“”) })):对数组 o 中的每个元素(即每个子字符串)进行处理,将每个子字符串的字符顺序反转,并返回一个新的数组 c。

  • i = c.join(“”):将数组 c 中的所有反转后的子字符串拼接成一个完整的字符串 i 并返回。

目前,还差一个s[“a”].encryptPubKey的值,这个值就是 y方法中传入的参数e,也就是一个包含了加密公钥信息的值 我直接Ctrl+f搜索 encryptPubKey
在这里插入图片描述

在这里插入图片描述

到了这里,整个加密流程已经分析完毕。我们来总结一下整体流程:

1.调用 getRsaCode 进行加密
2.公钥的处理、
3.解码并生成公钥
4.RSA 加密

第四步:算法实现

下面通过python实现的算法结果:
在这里插入图片描述

加密结果: TZCBUcncDjPouTx4awy01J3T3yETfU9b6NcNI24R5+eMTzYX7sM08wAJnqQz31htBYkmpPuN5ZrZ2zlcLZvS3sTyH33cGg4IMkfvULoKUq0lYiZz/jUpTlH9dyxu05DH1fUHEnYMoBdyuzPql4WVSyD25zecVTfkiGdF2bRERvhqCbfkEDe+5yqnhF4vZoxVZUiOW+HVMYOVxDsHJmjvAvqAEAkF37w2jvqLejr5KIgxOjlLCAyrX2iyYcMwSPYOhoK3YyfjoWtFhmL+/ft8/Pd6Z7g0PAvoRZS2pqL1nV9vuzpFDQahvMLtcuCXq53JfDa8iRWkSc5ETPHZoT1+kA==

这就是完整的分析过程,通过详细的步骤,我们深入理解并实现了该算法的加密机制。希望对你有所帮助

感谢阅读本文,如有疑问或建议,请在评论区留言!

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

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

相关文章

96.SAP MII功能详解(09)Workbench-Transaction Debugging

目录 1.About Transaction Debugging Use Features Activities 2.How to Debug Start Debugging Create Breakpoint Watch Variables Debugging logs 1.About Transaction Debugging Use You use this function to monitor and manipulate a transaction while it …

微深节能 堆取料机回转俯仰角度检测系统 格雷母线定位系统

微深节能在堆取料机回转俯仰角度检测系统中引入的格雷母线定位系统,是一项重要的技术创新,显著提升了堆取料作业的自动化水平和精确性。以下是对该系统的详细介绍: 一、系统概述 格雷母线定位系统作为高精度、无磨损的非接触式位置检测系统&a…

07 - procfs

---- 整理自 王利涛老师 课程 实验环境:宅学部落 www.zhaixue.cc 文章目录 1. procfs 快速入门2. procfs 文件创建的回调机制3. 在 proc 目录下创建子目录4. 通过 proc 接口修改内核变量5. 通过 proc 接口访问数组6. 序列文件:seq_file 编程接口7. seq_f…

OpenCV绘图函数(1)绘制带箭头的直线函数arrowedLine()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 绘制一个从第一个点指向第二个点的箭头线段。 cv::arrowedLine 函数在图像中绘制一个从 pt1 到 pt2 的箭头。另见 line 函数。 函数原型 void c…

基于单片机的无线空气质量检测系统设计

本设计以STC89C52单片机为核心,其中包含了温湿度检测模块、光照检测模块、PM2.5检测模块、报警电路、LCD显示屏显示电路、按键输入模块和无线传输模块来完成工作。首先,系统可以通过按键输入模块设置当前的时间和报警值;使用检测模块检测当前…

在Ubuntu 部署 Grafana且监控MySQL数据

一、安装 打开终端按顺序执行以下命令 1.添加 Grafana 的 APT 仓库: sudo apt-get install -y software-properties-common sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main" 2.导入Grafana GPG key: wge…

吴光明铸就鱼跃辉煌,科技创新开辟医疗新篇章

在鱼跃集团的发展历程中,创始人吴光明为其树立了最鲜明的品牌标签——创新。吴光明始终坚信,“研发实力代表一个医疗器械企业的核心竞争力”。他很早就认识到,只有从用户需求出发进行创新,才能提升医疗产品的使用体验,…

软件设计原则之接口隔离原则

接口隔离原则(Interface Segregation Principle, ISP)是面向对象设计中的一个重要原则,它属于SOLID原则之一。这个原则强调客户端(即接口的调用者)不应该被迫依赖于它们不使用的方法。换句话说,一个类对另一…

SOA通信中间件介绍(一)

一、通信中间件 在软件定义汽车中,应用程序之间的跨进程或跨核通信是一个需要解决的问题。模块化架构为开发人员提供了便利,但也引入了对通信中间件的需求。 在没有使用通信中间件的情况下,开发人员需要自己定义数据的格式、发送方和接收方…

趣味呈现高效农业管理:智慧农场可视化

运用图扑自主研发的 HT 产品,全程零代码搭建 3D 轻量化 Low Poly 风格的智慧农场可视化,通过生动有趣的图形展示农场运作细节,使农业管理更直观易懂,提升管理效率和用户体验。

C++ 基础学习

提示并输入一个字符串&#xff0c;统计该字符串中字母个数、数字个数、空格个数、其他字符的个数 #include <iostream>using namespace std;int main() {cout<<"请输入字符串:";string str;getline(cin,str);int num0;int alp0;int spa0;int other0;int …

网络安全面试经验分享:蘑菇街/网络安全

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 蘑菇街 介绍…

【STM32】MDK安装

1 MDK 历史背景 Keil公司是一家业界领先的微控制器&#xff08;MCU&#xff09;软件开发工具的独立供应商。Keil公司由两家私人公司联合运营&#xff0c;分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software Inc。Keil公司制造和销售种类广泛的开发工具&am…

自动化脚本到LabVIEW转换

工业自动化领域中的专用脚本语言转换为LabVIEW时需要注意的问题 语法差异&#xff1a; 脚本语言特点&#xff1a; 工业自动化脚本语言通常具有特定的语法和结构&#xff0c;例如条件判断、循环控制、硬件指令等。这些语言直接面向硬件操作&#xff0c;语法简洁&#xff0c;适用…

element-plus 新增一行合计。除了用summary-method还可以用append的插槽

:summary-method"getSummaries" <el-table:data"reformtableData"style"width: 100%"show-summary:summary-method"getSummaries"ref"reformtableRef" > <el-table-column label"序号" type"index…

MyBatis查询 ▎修改 ▎删除

前言: 在现代应用开发中&#xff0c;数据库操作是核心环节。MyBatis 作为一款灵活的持久层框架&#xff0c;提供了直接编写 SQL 语句的能力&#xff0c;避免了其他 ORM 框架可能带来的性能和功能限制。MyBatis 的查询、修改和删除操作是开发者必须掌握的基本技能。这些操作不仅…

go 使用 gitlab 搭建私有化模块系统

背景 本教程旨在教大家使用私有化部署的 gitlab 作为 go 的代码共享库&#xff0c;帮助团队分离代码模块&#xff0c;加强质量管控。go 官方在实现过程中就高度结合 VCS 系统&#xff0c; 可以仅通过配置相关的环境变量就实现私有库在 VCS 上的搭建。 代码分离样例 这里直接…

虚幻5|制作玩家血量,体力(还未编辑,只用于引用)

未编写&#xff0c;仅引用 优化后&#xff1a; 把增加生命&#xff0c;减少生命&#xff0c;也可以用在体力里&#xff0c;更改如下 限制浮点&#xff0c;如果血量或体力按10来扣&#xff0c;如果你的血量降低到5&#xff0c;那么就会以5的数值来扣&#xff0c;而不会扣成-5…

JVM极简教程

基础概念 1.1. Java 虚拟机 是运行 Java字节码的虚拟机 1.2. JVM跨平台原理 JVM在不同的系统&#xff08;Linux、Windows、MacOS&#xff09;上有不同的实现&#xff0c;目的是在使用相同的字节码&#xff0c;它们都会给出相同的结果 JVM跨平台本质&#xff1a;不同操作系统…

如何满足业主多元需求?开发物业APP,打造智能社区生活

随着智能科技的快速发展&#xff0c;物业管理也逐渐迈入数字化时代。物业app开发成为了提升社区管理效率、改善居民生活质量的重要途径&#xff0c;许多物业管理公司纷纷开发物业App&#xff0c;以提升管理效率、改善用户体验。一款出色的物业APP能够整合居民需求、提升企业服务…