逆向实战32——某东最新h5st4.4算法分析
前言
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
目标网站
aHR0cHM6Ly93d3cuamQuY29tLw==
备注
本文所有的参数只具备参考意义。并且调试时参数也会一直改变。
没关注我公众号的关注下公众号 xdm 谢谢了
参数分析
由于本人没有研究过之前4.3 4.2的算法。这里直接研究上个礼拜新搞的。说实话很多地方都不一样了。教程很多也都对不上了。
这里就大致的梳理一下。
首先。找出逆向的参数

然后我们可以发现这个参数是由很多个;链接出来的。
这里先不着急找参数啊。我们先复制出来然后挨个看看。
这里可以用js给他切割一下

1: "20240228224459938"
2: "fe5yh66mfn6ckkk5"
3: "b5216"
4: "tk03w8d831b8318nS53LDniClCgeVduha5vPE3CC0OeX4RZaxzY28MApAsO4XTCjwpDtXfSTLjDz0Iv541ejb72Jz8wS"
5: "3ec9dfa79549f910854258bfa3de7bb61f496e845785129c2490286c1cfbd6d0"
6: "4.3"
7: "1709131499938"
8:"dd5cf478e70f....太长 自己看到就行"
这里可以看到 除了第一个 第六个 第七个。其他的值我们都是不确定的。
那没办法了 只好走断点 追栈慢慢看了
(混淆很多 能脱的最好脱下。这里我没用任何工具。强撸!)
断点分析
这里直接搜索 h5st 然后选择第一个


言简意赅。一眼看过去
加密 body 得到传参。异步调用函数得到返回值。最终得到h5st。
这里跟栈 单步跟踪 跳到下图这个文件中

这里就到了控制流的地方。

我们再这个地方打上断点。然后挨个进去 把每个switch的case都看一遍。主打的就是一手有耐心。
这里不每个都写了。浪费时间。
断点如下 。生成

看看这个函数最终生成了什么值

好的。最终生成了h5st 先不用管具体有没有这个值。我们继续追。

很好 又是一堆swtich。那没办法。我们还原不太会。慢慢看呗。
这里断点到这个地方。

这里打印一下。生成了什么值应该一目了然了吧。

其他的值 大家自己看都能追上。这里重点关注下最后的这个

先记上 这里面存放了这6种加密。最后再继续走。(这是个耐心的过程。)
然后走到这个地方。


欸 这里又生成了个值。先不管
继续走。
最后走到这个地方了。哦~~~ 然后一切的谜团就解开了。

代码分析
下图函数讲述了 拼接。这里我还原一下。

[""['concat'](c), ""['concat'](_fingerprint), ""['concat'](_app_id), ""['concat'](_token), "".concat(A), ""['concat'](_version), ""['concat'](s), ""['concat'](e)].join(";")
好了 这个变量都这么清楚了。
ok。这里小小分析一波。具体的参数就不带大家跟了。
大家跟着这个找都能找到的。
后面具体的教程我放到星球里了。
这里简单讲讲
- c值:很明显是 时间字符串。
- _fingerprint值:可以写死。算法我也放到星球里了。
- _app_id值:也可以写死 页面里获取。
- token值:同上
- A值:即sign值 由HmacSHA256 算法生成的64位字符产。传递两个值。第一个值也是加密的值。加密的地方与上文重点关注地方呼应。第二个值是传参。
- _version值:版本号 (4.3/4.4)
- s值:时间戳
- e值: 由Aes生成。_fingerprint写死 他好像也可以写死。
结果
这也就大功搞成了。

文中我省略了很多步骤。包括但不局限于VM加密代码的生成。sign值加密步骤。
只能说步骤还是挺多的。不过一晚上估计也能弄出来了。
详细步骤和代码详见星球

逆向实战32——某东最新h5st4.4算法分析的更多相关文章
- 32位汇编第五讲,逆向实战干货,(OD)快速定位扫雷内存.
32位第五讲,逆向实战干货,快速定位扫雷内存. 首先,在逆向之前,大家先对OD有一个认识. 一丶OD的使用 标号1: 反汇编窗口 (显示代码的地址,二进制指令,汇编代码,注释) 标号2: 寄存器窗口( ...
- GIF Movie Gear逆向实战+注册代码+补丁
GIF Movie Gear逆向实战+注册代码+补丁 准备 我是在windows 8.1 x64上进行的操作.有不足之处,还望大虾指出. 获取资源 网站下载:http://www.gamani.com ...
- 逆向实战干货,快速定位自动捡阳光Call,或者标志
逆向实战干货,快速定位自动捡阳光Call,或者标志 注意: 关于CE和OD的使用,这里不再多说,快速定位,默认大家已经有了CE基础,或者OD基础. 第一种方法,找Call 第一步,打开CE,搜索阳光值 ...
- 逆向实战第一讲,寻找OllyDbg调试工具的Bug并修复
逆向实战第一讲,寻找OllyDbg调试工具的Bug并修复 首先我们要知道这个OD的Bug是什么. 我们调试一个UNICODE的窗口,看下其窗口过程. 一丶查看OllyDbg 的Bug 1.1spy++ ...
- 逆向实战干货,植物大战僵尸快速定位自动捡阳光Call,或者标志
逆向实战干货,快速定位自动捡阳光Call,或者标志 注意: 关于CE和OD的使用,这里不再多说,快速定位,默认大家已经有了CE基础,或者OD基础. 第一种方法,找Call 第一步,打开CE,搜索阳光值 ...
- iOS逆向实战与工具使用(微信添加好友自动确认)
iOS逆向实战与工具使用(微信添加好友自动确认) 原文链接 源码地址 WeChatPlugin-iOS Mac OS 版微信小助手(远程控制.消息防撤回.自动回复.微信多开) 一.前言 本篇主要实现在 ...
- Android apk逆向实战
简介 逆向Android apk其实是一个分析Android apk的一个过程,必须了解Android程序开发的流程.结构.语句分支.解密原理等等. 功能 破解一个注册验证程序(自写一个简单的注册验证 ...
- Android 逆向实战篇(加密数据包破解)
1. 实战背景由于工作需要,要爬取某款App的数据,App的具体名称此处不便透露,避免他们发现并修改加密逻辑我就得重新破解了. 爬取这款App时发现,抓包抓到的数据是加密过的,如图1所示(原数据较长, ...
- JS逆向实战3——AESCBC 模式解密
爬取某省公共资源交易中心 通过抓包数据可知 这个data是我们所需要的数据,但是已经通过加密隐藏起来了 分析 首先这是个json文件,我们可以用请求参数一个一个搜 但是由于我们已经知道了这是个json ...
- Spring cloud微服务安全实战-3-2 第一个API及注入攻击防护
先来写一些用户的基础数据的管理的api.就是用户的基本的增删改查.用spring boot可以很容易的写出这种api 首先新建maven的项目 依赖关系 引入依赖.用最新的spring boot ht ...
随机推荐
- Vue 中keep-alive组件将会被缓存
动态包裹哈 <keep-alive> <component :is="comName"></component> </keep-alive ...
- PKI系统
PKI系统简介 PKI(Public Key Infrastructure,公钥基础设施)是一种密码学框架,用于安全地管理数字证书.公钥和私钥,以确保通信和数据的机密性.完整性和身份验证.PKI建立在 ...
- lua开发和调试环境
Lua开发环境搭建 Lua官网提供源码下载需要自己编译,Lua官网:https://www.lua.org/ftp/ lua for windows.exe(占二十多MB那个) 目前在网络上没有找到 ...
- PDF标准详解(一)——PDF文档结构
已经很久没有写博客记录自己学到的一些东西了.但是在过去一年的时间中自己确实又学到了一些东西.一直攒着没有系统化成一篇篇的文章,所以今年的博客打算也是以去年学到的一系列内容为主.通过之前Vim系列教程的 ...
- Vue双向数据绑定原理-中
defineProperty方法 defineProperty除了可以动态修改/新增对象的属性以外, 还可以在修改/新增的时候给该属性添加get/set方法, 从而实现数据劫持. defineProp ...
- SqlSugar子查询
1.基础教程 1.1 API目录 *****只查一列***** //First: SqlFunc.Subqueryable<School>().Where(s => s.Id == ...
- 6.9 Windows驱动开发:内核枚举进线程ObCall回调
在笔者上一篇文章<内核枚举Registry注册表回调>中我们通过特征码定位实现了对注册表回调的枚举,本篇文章LyShark将教大家如何枚举系统中的ProcessObCall进程回调以及Th ...
- 驱动开发:内核读取SSDT表基址
在前面的章节<X86驱动:挂接SSDT内核钩子>我们通过代码的方式直接读取 KeServiceDescriptorTable 这个被导出的表结构从而可以直接读取到SSDT表的基址,而在Wi ...
- Hadoop超详细讲解之单节点搭建
1 Hadoop介绍 Hadoop是Apache旗下的一个用java语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台.允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理. ...
- linux(centos) 下搭建svn服务器
1. 使用yum安装svn yum -y install subversion 安装完成之后,验证安装结果 此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行 若需查看svn安 ...