某视频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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2423274.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!