HU航司, JS逆向,TD风控,加密算法纯算
技术文章大纲HU航司App逆向与验签协议算法分析背景与目标目标网址aHR0cHM6Ly9uZXcuaG5haXIuY29tL2hhaW5hbmFpci9pYmUvY29tbW9uL2xvZ2luLmRvJS逆向分析流程流程分析获取验证码打开登录页面输入手机号点击获取验证码触发验证码里面需要还原的值有q1-q2,p3-p9清除浏览器cookie刷新网页重新请求并打上断点往下跟栈此时数据已生成。q1在文件里面搜索QO00Qo可以看到这个值是一个变量fmopt.tokenfmopt.partnerfopt.appname, fmopt的属性值都可以写死搜索这个变量oOO0OQ是个定值。回到最初这几个值拼接后进行url编码就是q1q2:全局搜索o00ooQ这个可以写死有两种状态一种|^^1^^1^^1 然后url编码一种 blackbox替换|然后url编码var o00ooQ (O0oOoQ.blackBox || |) ^^ O0oOoQ.requestType ^^ (QoQ0oO(OOOQoQ.lang) 1) ^^ (Q0QQO0.support_css3_value(QOOO0o(usbotgpsn-tuzmf), QOOO0o(qsftfswf-3e)) !(!!window.ActiveXObject || QOOO0o(AdujwfXOckfdu)in window) ? 1 : 2);p3经过位置加密函数生成未加密数据搜索这个值a函数(p1p2)validateCodeObj/| userAnsewr/| 函数(变量b)var o00OQ0 oOQoOo(QO00Qo ^^ o00ooQ) ^^ (O0oOoQ.validateCodeObj || |) ^^ (O0oOoQ.userAnswer || |) ^^ (O0oOoQ.validateToken || |) oOQoOo(QoQQ0O);搜索变量b b变量c/| true/| true/|时间戳var QoQQ0O (Q00oo0 || |) ^^ (Oo0O0O || |) ^^ (O0Oo0O || |) ^^ new Date().getTime();搜索变量c还原一下代码 cargumentss[callee][caller][toString][length]var Q00oo0 function() { return arguments[callee]caller][toString]()[length]; }();秘钥 de(stq67pv9)p1.substring(10,18)这里后面的属性是p1进行截取充当var o0o0oo QOOO0o(stq67pv9) Q0QOoQ.substring(10, 18);e函数直接扣下来转成pythonASCII编码每个小写的ASCII编码-1相当于小写字母循环向前移动一位p4sensorInfo/| mouseInfo/| usedTime/|然后p3和p4进行同一个函数加密var oQooQQ (O0oOoQ.sensorInfo || |) ^^ (O0oOoQ.mouseInfo || |) ^^ (O0oOoQ.usedTime || |);跟栈进入方法可以明显看到是AES加密p5固定为 webp6 OOQ00O(8);window.location.href秘钥 OOQ00O(8);是一个八位的随机数var OQoQOQ OOQ00O(8); var oO0oQo Qo0QO0(OQoQOQ window.location.href, o0o0oo);p7另外一个是函数(p6)函数(p2)QooQQO.p7 QO0QOQ OOQ00O(32); var QO0QOQ oOQoOo(oO0oQo) oOQoOo(QoQQ0O);OOQ00O(32);是一个32随机数p8: 八位随机数QooQQO.p8 OQoQOQ; var OQoQOQ OOQ00O(8);p9 函数(p2,秘钥)函数---》以上的统称全局搜索这个变量发现是md5验证接口触发接口流程和获取一样注重关注以下几点p2初始化状态是1验证的状态是3p3里面的validateCodeObj是初始化返回的数据里面存放id背景图的url等信息。userAnswer里面存放移动距离时间戳往上再跟一层里面的userAnswer是图片的缺口距离固定10当前时间mouserInfo:里面存放的是页面的xy。所以这个鼠标轨迹可以固定验证码图片还原保存完图片是这种切片所以需要还原一下重新触发验证码获取初始化返回了一个imageType可以全局搜一下这个字段这里就是把返回的两行八列的图片转成原图。丢给ai转一下就行签名参数构造流程时间戳、设备信息、密钥派生算法还原常见加密模式AES、RSA、HMAC-SHA256等OPENVC识别距离def extract_slider_mask_and_bbox(slider_img): 从滑块图片提取精确掩码和边界框。 优先使用 alpha 通道否则用阈值二值化。 Returns: mask: 二值掩码 (h, w), 255滑块区域 bbox: (x, y, w, h) 滑块有效区域的边界框 piece_bgr: 裁剪后的滑块 BGR 图像 piece_mask: 裁剪后的掩码 h, w slider_img.shape[:2] channels slider_img.shape[2] if len(slider_img.shape) 2 else 1 if channels 4: # PNG 有 alpha 通道直接使用 alpha slider_img[:, :, 3] _, mask cv2.threshold(alpha, 128, 255, cv2.THRESH_BINARY) bgr slider_img[:, :, :3] else: # 没有 alpha 通道用阈值提取 gray cv2.cvtColor(slider_img, cv2.COLOR_BGR2GRAY) if channels 3 else slider_img _, mask cv2.threshold(gray, 30, 255, cv2.THRESH_BINARY) # 获取最大连通域去除噪声 num_labels, labels, stats, _ cv2.connectedComponentsWithStats(mask, connectivity8) if num_labels 1: largest_label 1 np.argmax(stats[1:, cv2.CC_STAT_AREA]) mask np.where(labels largest_label, 255, 0).astype(np.uint8) bgr slider_img[:, :, :3] if channels 3 else cv2.cvtColor(slider_img, cv2.COLOR_GRAY2BGR) # 获取边界框 coords cv2.findNonZero(mask) if coords is None: return mask, None, None, None x, y, w_box, h_box cv2.boundingRect(coords) # 裁剪 piece_bgr bgr[y:y h_box, x:x w_box] piece_mask mask[y:y h_box, x:x w_box] bbox (x, y, w_box, h_box) return mask, bbox, piece_bgr, piece_mask验证结果法律与伦理边界逆向技术的合法使用范围企业防护与用户隐私的平衡个人观点禁止商业行为侵权请联系下架

相关新闻

华为OD机试真题解析:压缩日志查询与区间查找算法实践

华为OD机试真题解析:压缩日志查询与区间查找算法实践

1. 项目概述与核心需求解析最近在准备华为OD机试的朋友,应该都听说了2025年新系统启用了“双机位”监考模式,并且题库也进行了更新。我拿到了一道来自A卷的真题,题目叫“压缩日志查询”。这道题乍一看名字,可能觉得是简单的字符串…

2026/7/21 7:34:05 阅读更多 →
TurtleBot3 ROS入门:从硬件连接到自主导航的实战指南

TurtleBot3 ROS入门:从硬件连接到自主导航的实战指南

1. 项目概述:这不是一本“说明书”,而是一张通往真实机器人世界的入场券 如果你刚拆开TurtleBot3的包装盒,手指还沾着防静电袋的微凉触感,心里却盘算着“这玩意儿到底能干啥”——恭喜,你站在了绝大多数机器人初学者共…

2026/7/21 7:34:04 阅读更多 →
C++开发环境配置与常见编译链接错误排查指南

C++开发环境配置与常见编译链接错误排查指南

1. 项目概述:从“Hello World”到第一个报错 如果你刚开始学习C,或者正准备从其他语言转向C,那么恭喜你,你即将踏入一个强大但也充满“惊喜”的世界。我说的“惊喜”,很多时候指的就是那些让你抓耳挠腮、一头雾水的编译…

2026/7/21 7:34:04 阅读更多 →

最新新闻

移动硬盘数据误删恢复实战指南

移动硬盘数据误删恢复实战指南

1. 移动硬盘数据误删的常见场景与恢复原理上周帮同事恢复了一个存满设计稿的移动硬盘,那种"起死回生"的成就感让我决定把多年积累的数据恢复经验系统整理出来。移动硬盘作为我们最常用的外置存储设备,误删文件的情况几乎每天都在发生——可能是…

2026/7/21 23:58:25 阅读更多 →
一个更刁钻的问题——如果我的部署模型是少步生成器,还能不能愉快地吃下 RL 的奖励?

一个更刁钻的问题——如果我的部署模型是少步生成器,还能不能愉快地吃下 RL 的奖励?

论文:MeanFlowNFT: Bringing Forward-Process RL to Average-Velocity Generators 项目页 | GitHub | Hugging Face 作者团队:Tencent Hunyuan 一、为什么这篇论文值得你停下来读? 如果你接触过 MeanFlow、DMD、CDM、AnyFlow 这类少步生成器…

2026/7/21 23:58:25 阅读更多 →
C++游戏开发实战:从环境配置到ECS架构与性能优化

C++游戏开发实战:从环境配置到ECS架构与性能优化

1. 项目概述与核心思路 “C 游戏开发示例(三)”这个标题,听起来像是某个系列教程的第三部分。对于正在学习C游戏开发的朋友来说,这通常意味着内容会深入到更具体的游戏机制、性能优化或者复杂系统的实现。从网络热词来看&#xf…

2026/7/21 23:58:25 阅读更多 →
Python ageliaco-rd 包:功能详解、安装配置与实战案例

Python ageliaco-rd 包:功能详解、安装配置与实战案例

1. 引言ageliaco-rd 是一个面向 Python 生态的专业数据处理与算法加速包,专注于提供高性能的数值计算、数据读取与分布式处理能力。本文将从功能特性、安装配置、核心语法与参数、8 个实际应用案例以及常见错误与注意事项五个维度,全面介绍 ageliaco-rd …

2026/7/21 23:58:25 阅读更多 →
各平台AIGC率要求降到多少?讲清标准和降的方法

各平台AIGC率要求降到多少?讲清标准和降的方法

各平台AIGC率要求降到多少?讲清标准和降的方法 你现在最想要一个明确的数字:AIGC 率到底降到多少才算过?是低于 20% 就行,还是得压到 10% 以内,还是干脆越低越好?你翻了半天,发现每个人说的都不…

2026/7/21 23:58:25 阅读更多 →
KVM主题:大页内存HugePages配置实践

KVM主题:大页内存HugePages配置实践

KVM主题:大页内存HugePages配置实践 在虚拟化环境中,内存管理是影响性能的关键因素之一。KVM(Kernel-based Virtual Machine)作为Linux内核中的一个虚拟化模块,为虚拟机提供了高效的硬件虚拟化支持。为了进一步提升KVM…

2026/7/21 23:57:24 阅读更多 →

日新闻

Octane Render与C4D汉化版安装与优化指南

Octane Render与C4D汉化版安装与优化指南

1. Octane Render与C4D的黄金组合:为什么选择这个方案?在三维创作领域,渲染器的选择往往决定了作品的最终呈现质量和工作效率。作为Cinema 4D(C4D)用户,Octane Render的GPU加速特性与实时预览功能&#xff…

2026/7/21 0:00:19 阅读更多 →
GPMC接口设计:异步/同步模式与多路复用配置实战

GPMC接口设计:异步/同步模式与多路复用配置实战

1. GPMC接口设计:从硬件连接到软件配置的全局视角在嵌入式系统开发中,尤其是基于TI Sitara系列如AM263x这类高性能微控制器的项目里,外部存储器的扩展几乎是绕不开的一环。无论是存放大量非易失性代码的NOR Flash,还是作为高速数据…

2026/7/21 0:00:19 阅读更多 →
UE5 GAS框架下RPG被动技能系统:从核心原理到实战实现

UE5 GAS框架下RPG被动技能系统:从核心原理到实战实现

1. 项目概述:UE5 GAS RPG被动技能的核心价值在UE5里用GAS(Gameplay Ability System)做RPG游戏,主动技能像是你手里的武器,按一下打一下,逻辑直接,反馈也快。但被动技能,它更像是你身…

2026/7/21 0:00:19 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻