当前位置: 首页 > news >正文

某度sign参数逆向

文章目录

  • 前文
  • 分析
  • 完整代码
  • 结尾

前文

本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

分析

经过我们几次抓包,测试,发现网址后面带有from=zh&to=en就是我们想要的包,点击网址,发现里面有几个参数,其中token是不改变的,ts明显像时间戳,sign的值是变化,我们可以多输入几次中文,发现当输入相同的中文,sign的值是一样的。那们接下来我们的目标锁定sign。
在这里插入图片描述
我们直接在全局搜索参数名,找到js文件,一个个找过去。尽量找与查询参数相同的地方。找到之后打上断点,开始调试。
在这里插入图片描述
断住之后,很明显sign的值是有b(e)生成的,其中参数e就是我们输入的中文,我们复制b(e),在控制台打印输出,发现就是我们想要的值。
在这里插入图片描述
进入函数b(e)里面,里面很简单就是加密的地方,那们接下来就简单了,直接扣js代码,缺啥补啥。
在这里插入图片描述

完整代码

function n(t, e) {for (var n = 0; n < e.length - 2; n += 3) {var r = e.charAt(n + 2);r = "a" <= r ? r.charCodeAt(0) - 87 : Number(r),r = "+" === e.charAt(n + 1) ? t >>> r : t << r,t = "+" === e.charAt(n) ? t + r & 4294967295 : t ^ r}return t
}function encrypt(t) {var o, i = t.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g);if (null === i) {var a = t.length;a > 30 && (t = "".concat(t.substr(0, 10)).concat(t.substr(Math.floor(a / 2) - 5, 10)).concat(t.substr(-10, 10)))} else {for (var s = t.split(/[\uD800-\uDBFF][\uDC00-\uDFFF]/), c = 0, u = s.length, l = []; c < u; c++)"" !== s[c] && l.push.apply(l, function (t) {if (Array.isArray(t))return e(t)}(o = s[c].split("")) || function (t) {if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"])return Array.from(t)}(o) || function (t, n) {if (t) {if ("string" == typeof t)return e(t, n);var r = Object.prototype.toString.call(t).slice(8, -1);return "Object" === r && t.constructor && (r = t.constructor.name),"Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? e(t, n) : void 0}}(o) || function () {throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),c !== u - 1 && l.push(i[c]);var p = l.length;p > 30 && (t = l.slice(0, 10).join("") + l.slice(Math.floor(p / 2) - 5, Math.floor(p / 2) + 5).join("") + l.slice(-10).join(""))}for (var d = "".concat(String.fromCharCode(103)).concat(String.fromCharCode(116)).concat(String.fromCharCode(107)), h = (null !== r ? r : (r = window[d] || "") || "").split("."), f = Number(h[0]) || 0, m = Number(h[1]) || 0, g = [], y = 0, v = 0; v < t.length; v++) {var _ = t.charCodeAt(v);_ < 128 ? g[y++] = _ : (_ < 2048 ? g[y++] = _ >> 6 | 192 : (55296 == (64512 & _) && v + 1 < t.length && 56320 == (64512 & t.charCodeAt(v + 1)) ? (_ = 65536 + ((1023 & _) << 10) + (1023 & t.charCodeAt(++v)),g[y++] = _ >> 18 | 240,g[y++] = _ >> 12 & 63 | 128) : g[y++] = _ >> 12 | 224,g[y++] = _ >> 6 & 63 | 128),g[y++] = 63 & _ | 128)}for (var b = f, w = "".concat(String.fromCharCode(43)).concat(String.fromCharCode(45)).concat(String.fromCharCode(97)) + "".concat(String.fromCharCode(94)).concat(String.fromCharCode(43)).concat(String.fromCharCode(54)), k = "".concat(String.fromCharCode(43)).concat(String.fromCharCode(45)).concat(String.fromCharCode(51)) + "".concat(String.fromCharCode(94)).concat(String.fromCharCode(43)).concat(String.fromCharCode(98)) + "".concat(String.fromCharCode(43)).concat(String.fromCharCode(45)).concat(String.fromCharCode(102)), x = 0; x < g.length; x++)b = n(b += g[x], w);return b = n(b, k),(b ^= m) < 0 && (b = 2147483648 + (2147483647 & b)),"".concat((b %= 1e6).toString(), ".").concat(b ^ f)
}var window = global
var word = '加油'
var r = "320305.131321201"
console.log(encrypt(word))

这里要稍微注意一下r的值,原代码r的值为null,但在实际执行中r被赋予了新值,如果用默认的null,代码不会报错,但执行的结果是不准确的。

结尾

欢迎各位小伙伴的点赞关注。溜了溜了。

相关文章:

某度sign参数逆向

文章目录 前文分析完整代码结尾 前文 本文章中所有内容仅供学习交流&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 分析 经过我们几次抓包&#xff0c;测试&#xf…...

【选型】JAVA生成PPT及选型

可以使用的框架&#xff08;类库&#xff09;&#xff1a;POI&#xff0c;OpenOffice/LibreOffice&#xff0c;Aspose.Slides&#xff0c;Java开源报表工具&#xff08;JasperReports,BIRT等&#xff09;。 具体如下: 方案优点缺点Apache POI- 开源免费- 可完全控制PPT生成- …...

LPA*算法图文详解

之前我们看过了A* 算法&#xff0c;知道了A* 算法的基本原理&#xff0c;但是A* 算法的缺陷也很明显&#xff1a;它是离线的路径规划算法&#xff0c;只能一次规划出路径&#xff0c;但是后面路径被改变的话就无法生效了。针对这个问题&#xff0c;人们研究出了D* 算法。D* 算法…...

【Unity的HDRP渲染管线下实现好用的GUI模糊和外描边流光效果_Blur_OutLine_案例分享(内附源码)】

实现好用的模糊效果_Blur HDRP渲染管线下搭建场景创建RenderTextureRenderTexture 与相机的配置:UI层 Canvas的不同Render Mode:Canvas 在Screen Space - Overlay 模式下:UI旋转Y轴,没有透视。切换到Screen Space - Camera 模式下:UI层跑到物体后面去了,将Plane Distance…...

电脑D盘格式化会有什么影响?电脑D盘格式化了怎么恢复数据

当电脑出现问题时&#xff0c;往往会出现一些提示&#xff0c;例如提示格式化的问题&#xff0c;而最近有位小伙伴也遇到了相似的问题&#xff0c;即D盘一打开就显示格式化&#xff0c;由于不清楚D盘格式化会有什么影响&#xff0c;因此不小心进行了格式化操作&#xff0c;结果…...

【Spring】多环境切换

&#x1f388;博客主页&#xff1a;&#x1f308;我的主页&#x1f308; &#x1f388;欢迎点赞 &#x1f44d; 收藏 &#x1f31f;留言 &#x1f4dd; 欢迎讨论&#xff01;&#x1f44f; &#x1f388;本文由 【泠青沼~】 原创&#xff0c;首发于 CSDN&#x1f6a9;&#x1f…...

python经典百题之求10000之内的素数

题目&#xff1a;求10000之内的素数 程序分析 求10000之内的素数是一个常见的问题。素数是大于1且只能被1和自身整除的整数。我们可以使用循环遍历10000以内的每个数&#xff0c;判断其是否是素数。 方法1: 简单遍历法 遍历2到10000之间的每个数&#xff0c;判断其是否为素…...

ROS2 从头开始:第 5 部分 - 并发、执行器和回调组

一、说明 让我们回到基础。并发意味着系统或软件可以同时运行许多任务。例如,在单核 CPU 机器上,可以通过使用线程来实现并发。本文探讨了...

笔试强训Day3

学了一坤时Linux&#xff0c;赶紧来俩道题目放松放松。 T1&#xff1a;在字符串中找出连续最长的数字串 链接&#xff1a;在字符串中找出连续最长的数字串__牛客网 输入一个字符串&#xff0c;返回其最长的数字子串&#xff0c;以及其长度。若有多个最长的数字子串&#xff0c…...

软考软件设计师-存储管理-文件管理-计算机网络(中

文章目录 一、存储管理页面置换算法 (最佳OPT)存储页面-先进先出置换算法&#xff08;FIFO)最久未使用算法(最近最久未使用LRU&#xff09; 二、文件管理初识文件管理文件目录-绝对路径文件管理-文件的结构文件管理-索引的分配 空闲存储空间的管理(位示图法&#xff09;三、计算…...

Vue3的学习

create-vue创建vue3项目 create-vue是官方新的脚手架工具&#xff0c;底层切换到了vite&#xff08;下一代构建工具&#xff09;&#xff0c;为开发提供急速响应 前提环境条件&#xff1a;控制面板输入node -v&#xff0c;显示的是安装了16.0或更高版本的Node.js创建一个Vue应…...

什么是Peppol ID?如何创建?

Peppol 网络的两大优势是安全和高效&#xff0c;由于Peppol 最常用于电子发票&#xff0c;因此这些优势在电子发票上展露无遗。相比之下&#xff0c;通过电子邮件发送 PDF 格式的发票和其他文件不仅处理成本较高&#xff0c;而且容易出现发票欺诈。 如果您所在的公共部门组织或…...

Spring注解大揭秘:@Component、@Service、@Repository详解

Spring注解大揭秘&#xff1a;Component、Service、Repository详解 前言比较 前言 想象一下&#xff0c;你正在构建一个复杂的Spring应用程序。你需要管理各种不同类型的组件&#xff0c;包括服务层、数据访问层和通用组件。Spring的Component、Service和Repository注解就像是你…...

Innodb底层原理与Mysql日志机制

MySQL内部组件结构 Server层 主要包括连接器、词法分析器、优化器、执行器等&#xff0c;涵盖 MySQL 的大多数核心服务功能&#xff0c;以及所有的内置函数&#xff08;如日期、时间、数学和加密函数等&#xff09;&#xff0c;所有跨存储引擎的功能都在这一层实现&#xff0c…...

浅谈大数据背景下用户侧用电数据在电力系统的应用与发展分析

安科瑞 华楠 摘要&#xff1a;随着能源互联网、互联网、新型传感技术的持续推进&#xff0c;电力用户侧用电数据呈现指数级剧增、异构性增强的情况&#xff0c;逐渐构成了用户侧用电行为大数据。然而目前对电力领域的数据价值挖掘于电网内部和电源端&#xff0c;用户侧庞大且蕴…...

20230919在WIN10下使用python3将PDF文档转为DOCX格式的WORD文档

20230919在WIN10下使用python3将PDF文档转为DOCX格式的WORD文档 2023/9/19 11:20 python pdf word https://blog.csdn.net/u013185349/article/details/130059657 Python实现PDF转Word文档 AcceptedLin 已于 2023-04-10 14:45:17 修改 1243 收藏 1 文章标签&#xff1a; pd…...

PCR检测试剂——博迈伦

PCR&#xff08;聚合酶链式反应&#xff09;是一种常用的分子生物学技术&#xff0c;被广泛应用于基因分型、基因表达分析、病原体检测等领域。在PCR实验中&#xff0c;PCR检测试剂是必不可少的重要组成部分&#xff0c;它们包括引物、酶、缓冲液和核苷酸。 1. 引物&#xff08…...

spring一个项目多个模块聚合打包问题解决方案

文章目录 1.问题描述&#xff1a;2.解决方案一、创建聚合父工程二、创建子模块&#xff08;module&#xff09;三、编写子模块代码1.模块1&#xff08;demo-one&#xff09;2.模块2&#xff08;demo-tow&#xff09; 四、创建聚合模块 &#xff08;demo-starter&#xff09;1. …...

Linux设备树(Device Tree)何时被解析

Linux设备树&#xff08;Device Tree&#xff09;是在内核启动阶段就会被解析。当 Linux 内核启动的时候&#xff0c;它会读取设备树文件&#xff08;dtb文件&#xff09;并根据里面的信息来组织设备、加载驱动等。在驱动代码里&#xff0c;通常我们是在驱动初始化&#xff08;…...

【Elasticsearch】数据简单操作(二)

简介&#xff1a;Elasticsearch&#xff08;ES&#xff09;是一个开源的分布式搜索和分析引擎&#xff0c;用于快速存储、搜索和分析大量数据。它具有高性能、可扩展性和灵活性的特点&#xff0c;被广泛用于构建实时搜索、日志分析、数据可视化等应用。 本文主要介绍ES索引的操…...

Phi-4-mini-reasoning真实案例:教育SaaS平台月均百万次推理调用的稳定性保障

Phi-4-mini-reasoning真实案例&#xff1a;教育SaaS平台月均百万次推理调用的稳定性保障 1. 项目背景与挑战 在教育科技行业&#xff0c;数学和逻辑推理类题目的自动解答一直是技术难点。某头部教育SaaS平台在2023年接入了Phi-4-mini-reasoning模型&#xff0c;用于其在线作业…...

用LED条形图可视化74HC154译码效果:STC89C52项目入门指南

用LED条形图可视化74HC154译码效果&#xff1a;STC89C52项目入门指南 第一次接触单片机时&#xff0c;看到那些闪烁的LED灯总让人充满好奇——它们是怎么按照我们的想法亮起来的&#xff1f;今天我们就用STC89C52单片机和74HC154译码器&#xff0c;亲手搭建一个会"跳舞&q…...

抖音内容采集工具的技术创新与合规应用实践

抖音内容采集工具的技术创新与合规应用实践 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工具&…...

AI赋能软件测试:基于PyTorch视觉模型实现自动化GUI测试脚本生成效果演示

AI赋能软件测试&#xff1a;基于PyTorch视觉模型实现自动化GUI测试脚本生成效果演示 1. 效果亮点预览 想象一下这样的场景&#xff1a;一个AI系统正在自动测试你的软件界面&#xff0c;它能像人类测试工程师一样"看"懂屏幕上的每个元素&#xff0c;发现那些传统脚本…...

高效获取B站视频:downkyi开源工具全方位使用指南

高效获取B站视频&#xff1a;downkyi开源工具全方位使用指南 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09…...

5G NR实战:LDPC与Polar编码在真实场景中的选择与优化技巧

5G NR实战&#xff1a;LDPC与Polar编码在真实场景中的选择与优化技巧 当你在基站调试现场遇到突发的大流量视频传输需求&#xff0c;或是需要为工业自动化设备配置毫秒级响应的控制信道时&#xff0c;编码方案的选择往往决定着整个通信系统的成败。LDPC和Polar这对5G NR的"…...

tao-8k部署避坑指南:Xinference日志排查、WebUI访问与调用验证

tao-8k部署避坑指南&#xff1a;Xinference日志排查、WebUI访问与调用验证 1. 环境准备与快速部署 在开始部署tao-8k模型之前&#xff0c;我们先来了解一下这个模型的基本情况。tao-8k是由Hugging Face开发者amu研发并开源的专业文本嵌入模型&#xff0c;它能够将文本转换为高…...

告别信息混乱:Trilium中文版让知识管理像整理衣柜一样简单

告别信息混乱&#xff1a;Trilium中文版让知识管理像整理衣柜一样简单 【免费下载链接】trilium-translation Translation for Trilium Notes. Trilium Notes 中文适配, 体验优化 项目地址: https://gitcode.com/gh_mirrors/tr/trilium-translation 还在为英文笔记软件的…...

Spring Boot 3.0 + Java 17 微服务实战:用Gradle统一管理多模块依赖与版本,告别配置混乱

Spring Boot 3.0 Java 17 微服务实战&#xff1a;用Gradle统一管理多模块依赖与版本 在微服务架构中&#xff0c;依赖管理往往成为开发者的噩梦。想象一下&#xff0c;当你需要在十几个子模块中同步更新Spring Boot版本时&#xff0c;传统的做法是在每个模块的构建文件中逐一修…...

从语义熵到可信AI:构建大语言模型幻觉检测的通用框架

1. 当AI开始"胡说八道"&#xff1a;什么是大语言模型幻觉&#xff1f; 想象一下&#xff0c;你正在咨询一位AI客服关于某款手机的参数。它信誓旦旦地告诉你"这款手机搭载了最新款骁龙8Gen3芯片&#xff0c;电池容量5000mAh"&#xff0c;而实际上这款手机用…...