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

某视频cKey signature yspsdkinput yspsdksign参数逆向

某视频 vkey目标通过算法协议全自动下载视频。cKey 和 signature观察到下载链接中包含 vkey、ysign 等加密参数。初步浏览器搜索并未发现相关参数怀疑是加密了参数名或其他接口返回。搜索后确定是由get_video_info接口返回。观察接口内含诸多参数初步分析如下vid视频 IDplatform设备相关guid设备相关其他均为基本固定值需要逆向的参数cKey、signature。搜索cKey找到赋值接口。发现cKey是由qc函数返回并传了五参signature是由Ru(v({}, h))返回。进入qc函数发现是经过了混淆的函数。无妨直接看 return 部分由固定部分S w g h即--01加上标准 AES 加密部分完成。此部分非常简单下断点看加密内容即可。加密内容、加密 key、iv 都可直接 hook 得到。此处不点明需要注意的是第一部分参数是自定义 int32 哈希整体是--01 aes 加密。随后分析Ru函数Ru是经典的字符串排列 sign 组合需要注意的是在后面加上了 salt即duhook 即可得到。拿到所有参数后继续请求。yspsdkinput请求后发现失败观察到请求头存在疑似加密参yspsdkinput。搜索后一路下断点跟栈。进入到函数内部发现i值即yspsdkinput由p(r)生成。p函数是类似于 signature 函数的加密方式。也就是简单md5yspsdksign还是失败注意到请求头还有个参数名为yspsdksign。找直接搜索找不到赋值地方 发现是由u的openai_signature赋值而来 搜索openai_signature进一步搜索发现由h-{yspsdkinput}-{GUID}-{seq_id}-{request_id}组成。重点是h参。观察发现h参是p.getSignature(a);里面异步生成的。再进一步由Re()异步生成且在生成之前调用了Be()函数。Re函数如下结合Be函数判断此加密在 WASM 里面完成。WASM 是一种在浏览器中运行的高性能、低级类汇编语言。常见的用法是把下面这些语言编译成.wasm文件然后在浏览器里跑C / CRustGo分析整个流程不难发现整个流程是由Be函数初始化 WASM随后通过调用var r A.__wbindgen_add_to_stack_pointer(-16);在栈上分配空间。随后通过A.get_signature(r);传入指针加密数据。再调用ee(n, o);把数据从栈上读取出来并转为字符串。那么重点就是放在A.get_signature(r);里而且可以肯定的是在加密时并没有传入待加密的数据。那么除此之外唯一的可能性就是由 WASM 文件从浏览器全局环境里读取需要的数据例如window、document等。所以此处是不能尝试直接把 WASM 扣下来调用的太麻烦了。较好的选择是进入 WASM 分析一下 sign 是怎么组成的。不难看出此 WASM 是由 Rust 构造。函数开头分配 176 字节空间global.get $global0 i32.const 176 i32.sub local.tee $var1 global.set $global0WASM 不是直接拿字符串而是JS object - wasm-bindgen - memorycall $wbg.__wbg_get_9c1840f7ecd81363 call $wbg.__wbindgen_string_get1️⃣ 从 JS 对象取属性2️⃣ 转成 WASM 字符串在 data 段可以看到读取了cctvh5openapi.state.guidcctvh5openapi.state.yspappidcctvh5openapi.state.input构造了 buffercall $func22 // copy static string 到 buffer call $func16 call $func51观察到大量 MD5 常量这些正是 MD5 四轮算法i32.rotl i32.xor i32.and i32.add确认算法是 MD5。流程上是JS 调用 ↓get_signature(ptr)分配 stack frame从 JS object 读取字段判断 version “v0”构造字符串 bufferMD5(buffer)转 hex返回 sign至此分析完成。算法评价加密强度中环境检测点较少容易通过补环境绕过主要逆向难点wasm|yspsdksign需要用到 WASM 逆向相关知识WASM 由 Rust 构造逻辑较为清晰不要再使用 IDA 等逆向。其他全是送分题难度基本为 0。总强度5/10推荐分析后 手戳算法 无他 因为wasm不好补环境 同时使用了大量异步函数以下为纯算算法 下载视频后观看正常 终于可以美滋滋的看片了技术交流群 1091802710

相关文章:

某视频cKey signature yspsdkinput yspsdksign参数逆向

某视频 vkey 目标 通过算法协议全自动下载视频。 cKey 和 signature 观察到下载链接中包含 vkey、ysign 等加密参数。初步浏览器搜索并未发现相关参数,怀疑是加密了参数名或其他接口返回。 搜索后确定是由 get_video_info 接口返回。观察接口,内含诸多参…...

解放设计师双手:AI驱动的Illustrator自动化工作流革命

解放设计师双手:AI驱动的Illustrator自动化工作流革命 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 一、诊断设计工作中的效率顽疾 1.1 破解重复操作的时间黑洞 在当…...

RK3568平台OpenHarmony 4.0 Docker容器化部署实战:从环境适配到问题排查

1. 为什么要在RK3568上跑Docker? 最近不少做嵌入式开发的朋友都在问同一个问题:为什么要在资源受限的RK3568芯片上折腾Docker? 这得从实际项目痛点说起。去年我们团队接手了一个智能家居网关项目,客户要求将原有基于Linux的系统迁…...

SAP AA 事务代码AFAB报错“AA687”的深度解析与TABA表修复方案

1. 遇到AFAB报错AA687时先别慌 第一次在SAP资产会计模块执行AFAB折旧过账时弹出"AA687 - 在上一年结算之后您只能记帐到新的一年"这个红色报错,很多新手顾问都会心头一紧。其实这个错误在首次实施资产会计时非常典型,我帮客户处理过不下二十次…...

终极文件去重指南:用dupeGuru释放50%存储空间的完整方案

终极文件去重指南:用dupeGuru释放50%存储空间的完整方案 【免费下载链接】dupeguru Find duplicate files 项目地址: https://gitcode.com/gh_mirrors/du/dupeguru 当王设计师在deadline前打开项目文件夹时,他惊恐地发现10GB的设计源文件竟占用了…...

微信小程序tree组件实战:无限递归实现多级菜单(附完整代码)

微信小程序Tree组件实战:无限递归实现多级菜单(附完整代码) 在微信小程序开发中,树形菜单是一种常见但实现起来颇具挑战的UI组件。不同于传统的列表展示,树形结构需要处理层级嵌套、展开折叠等复杂交互。本文将带你从零…...

Steam账号保姆级养号教程:从注册到交易避坑全流程(附RPA脚本)

Steam账号全生命周期管理:从安全注册到高效运营的终极指南 在数字游戏时代,Steam平台已成为全球玩家不可或缺的数字分发平台。无论是资深玩家、游戏开发者还是虚拟物品交易者,掌握Steam账号的全生命周期管理技巧都至关重要。本文将深入探讨如…...

CentOS服务器被入侵?手把手教你排查暴力破解、后门植入与命令替换(附靶场复现)

CentOS服务器入侵排查实战指南:从暴力破解到后门清除 最近在帮朋友处理一台被入侵的CentOS服务器时,发现黑客不仅留下了后门账户,还替换了关键系统命令。这种经历让我意识到,很多管理员在服务器被入侵后往往手足无措。本文将分享一…...

从零开始:如何用Embedding和LLM构建一个智能问答系统(附代码示例)

从零构建基于Embedding与LLM的智能问答系统实战指南 引言 在信息爆炸的时代,如何快速准确地获取所需知识成为技术团队的核心诉求。传统的关键词匹配搜索早已无法满足复杂语义查询的需求,而结合Embedding技术与大语言模型(LLM)的智…...

构建跨平台AI工具:使用Java调用百川2-13B服务并开发桌面客户端

构建跨平台AI工具:使用Java调用百川2-13B服务并开发桌面客户端 很多Java开发者朋友可能都有过这样的想法:那些炫酷的AI对话功能,能不能用自己最熟悉的Java技术栈来实现,并且打包成一个独立的桌面应用,放在自己的电脑上…...

深入解析mlx5 RDMA网卡hw_counter指标及其故障排查应用

1. 认识mlx5 RDMA网卡的hw_counter指标 第一次接触RDMA网卡性能监控时,我也被/sys/class/infiniband/目录下密密麻麻的计数器文件弄得一头雾水。直到有次线上服务出现严重延迟,通过分析hw_counter指标快速定位到RNR NAK重传问题,才真正体会到…...

MedGemma X-RayGPU算力方案:单卡部署+多并发请求性能压测

MedGemma X-RayGPU算力方案:单卡部署多并发请求性能压测 1. 项目概述 MedGemma X-Ray 是一款基于前沿大模型技术开发的医疗影像智能分析平台,专门用于胸部X光片的智能解读。这个系统将人工智能的强大理解能力应用于放射科影像,能够协助用户…...

Qwen2.5-7B-Instruct保姆级教程:vLLM模型服务HTTPS安全访问配置

Qwen2.5-7B-Instruct保姆级教程:vLLM模型服务HTTPS安全访问配置 1. 教程概述与学习目标 本教程将手把手教你如何为基于vLLM部署的Qwen2.5-7B-Instruct模型服务配置HTTPS安全访问,并使用chainlit构建友好的前端交互界面。 通过本教程,你将学…...

Janus-Pro-7B多模态统一架构解析:视觉编码解耦如何提升像素级生成质量

Janus-Pro-7B多模态统一架构解析:视觉编码解耦如何提升像素级生成质量 1. 引言:多模态模型的架构革新 在人工智能快速发展的今天,多模态模型正成为技术前沿的热点。传统的多模态模型往往面临一个根本性挑战:理解任务和生成任务之…...

高效配置OpenCore引导:OCAuxiliaryTools图形化工具全指南

高效配置OpenCore引导:OCAuxiliaryTools图形化工具全指南 【免费下载链接】OCAuxiliaryTools Cross-platform GUI management tools for OpenCore(OCAT) 项目地址: https://gitcode.com/gh_mirrors/oc/OCAuxiliaryTools OCAuxiliaryTo…...

功率放大器匹配电路设计:如何用ADS2011的Smith圆图实现宽带匹配(以960MHz案例为例)

功率放大器匹配电路设计:ADS2011 Smith圆图宽带匹配实战解析 在射频功率放大器设计中,输入输出匹配网络的性能直接决定了系统的功率传输效率和带宽特性。传统教材往往侧重于理论推导,而实际工程中更依赖工具辅助下的可视化设计方法。本文将聚…...

UNIT-00:Berserk Interface驱动智能客服:对话生成与意图识别实战

UNIT-00:Berserk Interface驱动智能客服:对话生成与意图识别实战 最近和几个做电商的朋友聊天,他们都在头疼同一件事:客服成本越来越高,但服务质量却很难保证。高峰期咨询量一大,回复慢、答非所问的情况就…...

EPLAN实战:两台三相电机独立控制电路设计保姆级教程(附常见错误解析)

EPLAN实战:两台三相电机独立控制电路设计保姆级教程(附常见错误解析) 在工业自动化领域,三相电机的控制电路设计是电气工程师的必修课。特别是当系统需要同时控制多台电机时,如何实现独立操作与联动保护的平衡&#xf…...

从零开始搭建汽车电子Bootloader:UDS协议详解与常见问题排查

从零开始搭建汽车电子Bootloader:UDS协议详解与常见问题排查 当你按下汽车启动按钮时,ECU(电子控制单元)内部最先唤醒的不是你熟悉的车辆功能,而是一个默默无闻的"守门人"——Bootloader。这个不足千字节的小…...

5分钟搞定!用GISSaaS.MapDownloader一键下载高德/百度/腾讯地图离线包(附详细配置截图)

高效获取多平台地图数据:GISSaaS.MapDownloader全流程指南 在GIS开发或户外探险场景中,离线地图数据的重要性不言而喻。无论是应对网络不稳定环境,还是进行大规模地理数据分析,本地存储的地图资源都能显著提升工作效率。传统手动下…...

零基础入门Qwen3-ASR-1.7B:开箱即用的语音识别镜像实战

零基础入门Qwen3-ASR-1.7B:开箱即用的语音识别镜像实战 1. 模型介绍与核心优势 Qwen3-ASR-1.7B是阿里云通义千问团队开发的开源语音识别模型,作为ASR系列的高精度版本,具有以下突出特点: 多语言支持:覆盖52种语言和…...

墨语灵犀开发环境搭建:IntelliJ IDEA中配置与调试模型项目

墨语灵犀开发环境搭建:IntelliJ IDEA中配置与调试模型项目 如果你是一位Java或Python开发者,正想尝试墨语灵犀这类大模型项目,但看着命令行和远程服务器有点发怵,那这篇文章就是为你准备的。我们不用离开熟悉的开发环境&#xff…...

不用后端配合!纯前端实现图片下载/截屏保存的3种实战方案(含html2canvas配置详解)

纯前端实现图片下载与截屏保存的3种高阶方案 在Web开发中,经常会遇到需要让用户下载图片或保存页面截屏的需求。传统做法往往依赖后端配合,但现代前端技术已经能够独立完成这些任务。本文将深入探讨三种无需后端介入的纯前端解决方案,特别针对…...

内存泄漏:隐形杀手与防御指南

内存泄漏:隐形杀手与防御指南在软件开发的漫长生命周期中,**内存泄漏(Memory Leak)**往往是最隐蔽、最致命的性能杀手之一。它不像空指针异常那样会让程序立即崩溃,而是像“慢性毒药”,随着运行时间的推移&…...

SRTM 90m DEM数据应用指南:从下载到分析的完整工作流

SRTM 90m DEM数据应用指南:从下载到分析的完整工作流 在数字地形分析领域,SRTM(航天飞机雷达地形测绘任务)数据已成为全球范围内最常用的高程数据源之一。对于地理信息系统(GIS)从业者、环境科学研究人员以…...

破解抖音跳转限制:2023最新Schema唤醒技术实战

1. 抖音跳转限制的现状与破解思路 最近不少开发者发现,抖音对网页跳转APP的限制越来越严格。以前直接在网页里放个链接就能唤醒抖音APP,现在很多场景下都不管用了。我自己做项目时就遇到过这个问题:用户从H5页面点击跳转按钮,结果…...

人工智能如何辅助论文写作?这几款AI工具实测有效

AI 能帮你搞定论文全流程,从选题、文献、大纲、初稿、润色到降重,大幅提升效率;实测下来,PaperRed、毕业之家、豆包、DeepSeek、QuillBot、Grammarly 这几款最实用、最稳。一、AI 辅助论文写作的核心方式(全流程&#…...

基于C#与YOLO的身份证字段定位识别实战:从模型训练到ONNX部署

1. 身份证识别技术背景与应用场景 身份证识别技术在现代社会中扮演着越来越重要的角色。无论是银行开户、酒店入住,还是各种线上实名认证场景,快速准确地提取身份证信息都是刚需。传统OCR技术虽然能处理标准文本,但对于身份证这种包含固定字段…...

手机也能写论文?亲测好用的移动端论文工具推荐

还在为赶论文 deadline 挤在图书馆?出门在外、工位被占,手机就是你的移动论文写作站!这 5 款移动端工具覆盖写作、降重、查重、排版全流程,帮你随时随地高效搞定论文,告别焦虑~🌟 核心工具对比总…...

5分钟学会用FFmpeg调整视频速度:内含保持音调不变的音频处理技巧

5分钟掌握FFmpeg变速技巧:视频加速/减速与音频保真全攻略 在短视频创作和社交媒体内容爆炸的时代,视频处理技能已成为数字创作者的必备工具。想象一下这样的场景:你拍摄了一段完美的产品演示视频,但回放时发现节奏太慢&#xff1b…...