h5st最新5.1版本逆向分析

    • 申明
    • 定位h5st生成的位置
    • 动态插桩,事半功倍
    • 日志分析,十分钟还原算法逻辑

申明

本文仅用来记录学习过程以免日后忘了,如有侵权请联系删除。

定位h5st生成的位置

通过关键字“sign”搜索,可以定位到window.PSign.sign(f)这个位置,f参数的值为{ "appid": "pc-item-soa", "functionId": "pc_detailpage_wareBusiness", "client": "pc", "clientVersion": "1.0.0", "t": 1749631063675, "body": "bbc844*****c5c9cae4356" },这里的body是把请求params里面的body经过标准的sha256加密得到的
在这里插入图片描述
打上断点动态调试一下,会定位到 c = new window.ParamsSignMain和 c.sign® ,
在这里插入图片描述
单步跟进c.sign®,会定位到 this._KaTeX parse error: Expected group after '_' at position 7: sdnmd(_̲CW),通过观看入参和返回值,可以确定这里就是真正调用h5st加密方法的位置。
在这里插入图片描述

动态插桩,事半功倍

this._KaTeX parse error: Expected group after '_' at position 7: sdnmd(_̲CW)方法这里打上日志断点,"h5st:",_$Cz['h5st']
在这里插入图片描述
接着搜索MD5,找到md5算法的_doFinalize方法并插入日志断点"md5加密结果:", _$CN.toString()
在这里插入图片描述
搜索Base64,找到base64的encode方法,这里是一个循环,直接找到循环return的位置打上日志断点"base64加密结果:",p[0]

在这里插入图片描述
如法炮制,找到sha256的_doFinalize方法,打上日志断点"sha256 加密结果:", this._hash.toString()
在这里插入图片描述
接下来搜索关键字“_createHelper”,这几个加密方法都会通过_createHelper方法进行调用,插入日志断点"加密参数:",_$CV
在这里插入图片描述
最后找到下图所示方法,这是h5st开头那个日期生成的地方,插入日志断点"传入时间戳:",_$CW,"返回时间:",_$Cv
在这里插入图片描述
打好以上日志断点后,就可以通过日志分析还原出h5st算法

日志分析,十分钟还原算法逻辑

执行一次代码,观察一下日志,日志信息非常简洁,逻辑也非常清晰,
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/bddfdc9c883542649c23c930d18f027d.png

body = params['body']
sha256_hash = hashlib.sha256()
# 更新数据(需要传入字节流)
sha256_hash.update(body.encode('utf-8')

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

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

相关文章

湖北理元理律师事务所企业债务优化路径:司法重整中的再生之道

一、企业债务危机的核心矛盾:生存与清偿的博弈 通过分析湖北理元理律师事务所经办的17件企业债务案件,发现共性难题: 债权人要求立即清偿 → 企业需持续经营造血 → 司法程序存在时间差 解决方案:构建“三重防火墙”机制 经…

链家Android面试题及参考答案

目录 请详细解释类加载的过程,包括每一步的具体实现。并说明Android中的dex分包技术及其在热更新中的应用 比较JVM和DVM的区别。在JVM中一个程序崩溃是否可能导致系统崩溃?DVM中呢? 请解释网络IP协议、TCP、UDP、HTTP、HTTPS、Socket的概念,并说明它们之间的区别 请深入…

LeetCode-多语言实现冒泡排序以及算法优化改进

目录 一、冒泡排序算法 二、应用场景/前提条件 🌈 优点 📢 缺点 三、经典算法实现并优化改进 方法一:记录最后一次交换位置,下一轮只遍历到该位置 方法二:添加标志位跟踪是否发生交换,无交换则提前终…

JAVA毕业设计227—基于SpringBoot+hadoop+spark+Vue的大数据房屋维修系统(源代码+数据库)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于SpringBoothadoopsparkVue的大数据房屋维修系统(源代码数据库)227 一、系统介绍 本项目前后端分离,分为业主、维修人员、管理员三种角色 1、业主: 登…

MADlib —— 基于 SQL 的数据挖掘解决方案(9)—— 数据探索之概率统计

目录 一、概率 1. 概率的定义 2. 概率质量函数与概率密度函数 3. 条件概率 4. 期望值 二、MADlib 的概率相关函数 1. 函数语法 2. 示例 (1)求标准正态分布下,1 的概率密度函数 (2)求标准正态分布下&#xff…

耳蜗里的春天

早春的郑州飘着细雨,我牵着女儿小满的手走进市残疾人康复中心时,玻璃门内突然传来一阵清脆的笑声。穿天蓝色毛衣的小女孩戴着粉色耳蜗,正踮脚拍打着墙上的卡通贴画,银色的连接线在她耳后晃动,像一只折翼却仍在起舞的蝴…

OCR(光学字符识别)算法

OCR(光学字符识别)算法在景区护照阅读器中的应用是核心技术之一,它通过图像处理和机器学习快速提取护照信息,显著提升自动化水平。以下是其具体应用场景、技术实现及优化方向: 一、OCR在护照阅读器中的核心作用 关键信…

html打印合同模板

概述(吐槽):记录一个html打印合同模板的功能,技术栈有点杂,千禧年出产老系统的数据库是sqlserver2008,原系统框架是c#,无法二开,因为原系统的合同生成功能出现bug,没有供…

DeepCritic: SFT+RL两阶段训练突破LLM自我监督!显著提升大模型的自我批判能力!!

摘要:随着大型语言模型(LLMs)的迅速发展,对其输出进行准确反馈和可扩展监督成为一个迫切且关键的问题。利用LLMs作为批评模型以实现自动化监督是一个有前景的解决方案。在本研究中,我们专注于研究并提升LLMs在数学批评…

【深度学习】深度学习中的张量:从多维数组到智能计算单元

✅ 一、n维数组(张量,Tensor) 1. 定义 张量(Tensor)是一个通用的n维数组数据结构。 它的维度(维数)决定了它的形状,例如: 维度名称举例说明0维标量(scalar…

以太网MDI信号PCB EMC设计要点

1. PHY侧和RJ45连接器侧通用MDI布局建议 1. MDI差分对保持对称走线,走线上的焊盘封装应一致,焊盘放置位置也应对称。可以减少EMI测试中的模式转换。   2. MDI走线应保持阻抗匹配,从而减少信号线上的反射。   3. MDI走线下需有连续完整的接…

深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙

WebGL:在浏览器中解锁3D世界的魔法钥匙 引言:网页的边界正在消失 在数字化浪潮的推动下,网页早已不再是静态信息的展示窗口。如今,我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室,甚至沉浸式的V…

pysnmp模块中 GET、SET、WALK操作详细分步解析

1. SNMP GET 操作详解 1.1 核心代码结构 from pysnmp.hlapi import *# 定义参数 community public # SNMPv2c 社区名 target_ip 192.168.1.1 # 目标设备 IP oid 1.3.6.1.2.1.1.1.0 # 要查询的 OID# 发起 GET 请求 error_indication, error_status, error_index, …

接收rabbitmq消息

以下是一个使用纯Java&#xff08;非Spring Boot&#xff09;接收RabbitMQ消息的完整实现&#xff0c;包含Maven依赖和持续监听消息的循环&#xff1a; 1. 首先添加Maven依赖 (pom.xml) <dependencies><!-- RabbitMQ Java Client --><dependency><group…

SQL进阶之旅 Day 23:事务隔离级别与性能优化

【SQL进阶之旅 Day 23】事务隔离级别与性能优化 文章简述 在数据库系统中&#xff0c;事务是确保数据一致性和完整性的核心机制。随着业务复杂度的提升&#xff0c;如何合理设置事务隔离级别以平衡并发性能与数据一致性成为开发人员必须掌握的关键技能。本文深入解析事务隔离级…

六.原型模式

一.原型模式的定义 原型模式是一种创建型设计模式&#xff0c;通过复制现有对象&#xff08;原型&#xff09;生成新对象&#xff0c;避免重复初始化成本。需了解以下关键概念&#xff1a; ‌浅拷贝‌&#xff1a;复制基本类型字段&#xff0c;引用类型字段共享内存地址&#…

【笔记】LoRA 理论与实现|大模型轻量级微调

论文链接&#xff1a;LoRA: Low-Rank Adaptation of Large Language Models 官方实现&#xff1a;microsoft/LoRA 非官方实现&#xff1a;huggingface/peft、huggingface/diffusers 这篇文章要介绍的是一种大模型/扩散模型的微调方法&#xff0c;叫做低秩适应&#xff08;也就是…

Cilium动手实验室: 精通之旅---15.Isovalent Enterprise for Cilium: Network Policies

Cilium动手实验室: 精通之旅---15.Isovalent Enterprise for Cilium: Network Policies 1. 环境信息2. 测试环境部署3. 默认规则3.1 测试默认规则3.2 小测验 4. 网络策略可视化4.1 通过可视化创建策略4.2 小测试 5. 测试策略5.1 应用策略5.2 流量观测5.3 Hubble观测5.4 小测试 …

opencv RGB图像转灰度图

这段代码的作用是将一个 3通道的 RGB 图像&#xff08;CV_8UC3&#xff09;转换为灰度图像&#xff08;CV_8UC1&#xff09;&#xff0c;并使用 OpenCV 的 parallel_for_ 对图像处理进行并行加速。 &#x1f50d; 一、函数功能总结 if (CV_8UC3 img.type()) {// 创建灰度图 d…

React Hooks 的原理、常用函数及用途详解

1. ​​Hooks 是什么&#xff1f;​​ Hooks 是 React 16.8 引入的函数式组件特性&#xff0c;允许在不编写 class 的情况下使用 state 和其他 React 特性&#xff08;如生命周期、副作用等&#xff09;。​​本质是一类特殊函数​​&#xff0c;它们挂载到 React 的调度系统中…