j东h5st参数多局部ob加密(js_security_v3_0.1.4.js)加密分析

jh5st参数多局部多次ob加密(js_security_v3_0.1.4.js


大家好呀,我是你们的好兄弟,【星云horseAK】,今天的主题真的是千呼万唤始出来,某东东的h5st参数,这个加密的js文件使用了obfuscator进行了混淆,而且是局部多次加密,不算嵌套,直接进行调试的话,看着确实头疼,没事,且看我一步一步带你还原、手撕这个参数的加密过程,记得关注我,并加入粉丝群呀:qq群:529528142

1.接口预览

image-20230813234124507

image-20230813234248459

2.接口分析

image-20230813234538524

3.js调试

  • 如何找到加密代码的位置,我列举几个,这个步骤就是经验的问题了,经验充足,就容易定位【/斜眼笑/】

    • 看启动器

      image-20230813235350947

    • 搜关键字

    • 使用hook+debugger

  • 关键位置

image-20230813235819865

image-20230814000202478

如图,搜索到h5st的位置,这里就是典型的ob混淆的switch控制流平展化混淆,可以跟着我一步一步用AST思想使用@babel解混淆,当然你也可以直接刚它。

解混淆效果对比:

image-20230814001108251

h5st加密部分的解混淆效果:

image-20230814001315350

那么我们就得到了,比较关键的加密逻辑如下:

 var c = "";var z = kp.Wzsfy(Km);var v = pb(z, kp.qbgpB);var a = kp.TWGdv(v, "04");if (this._isNormal) {var f = {code: 0};f.message = kp.nrOom;this["_onRequestToken"](f);c = this.__genKey(this._token, this["_fingerprint"], a, this._appId, this.algos).toString() || "";} else {this["_defaultToken"] = kp.AqAHu(a_, this["_fingerprint"]);var s = {code: 1};s.message = kp.yFtEs;this["_onRequestToken"](s);c = this["__genDefaultKey"](this["_defaultToken"], this["_fingerprint"], a, this._appId);}var C = {};if (!c) {if (this._token || this["_defaultToken"]) {var l = {};l.code = yb["GENERATE_SIGNATURE_FAILED"];l.message = "generate key failed";this._onSign(l);} else {var h = {};h.code = yb["TOKEN_EMPTY"];h.message = kp.tjKSX;this._onSign(h);}return C;}var b = this.__genSign(c, t);var y = kp.vJFed(mg, t).call(t, function (t) {return t.key;}).join(",");var _ = this["__genSignParams"](b, z, v, r);var g = {};g.key = c;g.signStr = b;g._stk = y;g._ste = 1;g.h5st = _;

接下来就是扣代码环节,今天时间有点晚了,后面的内容我会放在下一篇文章里,谢谢~记得加群,精彩内容提前尝鲜哦。

先放一张运行截图:

image-20230814002149613

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

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

相关文章

《Java-SE-第三十六章》之枚举

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页:KC老衲爱尼姑的博客主页 博主的github,平常所写代码皆在于此 共勉:talk is cheap, show me the code 作者是爪哇岛的新手,水平很有限&…

Linux 日志管理

Linux 日志管理 一.Linux 下的日志服务简介 1.1 CentOS5 之前的版本 centos5 之前的版本使用系统和内核日志分离的格式记录日志 syslogd:该服务专门用于记录系统日志(system application logs) klogd: 该服务专门用于记录内核日志(linux kernel logs) centos5 之前事件的记录格…

Redis_Geospatial(基于位置信息的应用)

12.Geospatial 12.1 简介 基于位置信息服务(Location-Based Service,LBS)的应用。Redis3.2版本后增加了对GEO类型的支持。主要来维护元素的经纬度。redis基于这种类型,提供了经纬度设置、查询、范围查询、距离查询、经纬度hash等一些相关操作 12.2 GEO底层结构 …

war和war exploded

war和war exploded的区别 war模式&#xff1a;将WEB工程以包的形式上传到服务器 &#xff1b; war exploded模式&#xff1a;将WEB工程以当前文件夹的位置关系上传到服务器&#xff1b;>> war包是自己打包生成的&#xff0c;如pom文件中<packaging>war</packag…

使用 Visual Studio Code 调试 CMake 脚本

之前被引入到 Visual Studio 中的 CMake 调试器&#xff0c;现已在 Visual Studio Code 中可用。 也就是说&#xff0c;现在你可以通过在 VS Code 中安装 CMake 工具扩展&#xff0c;来调试你的 CMakeLists.txt 脚本了。是不是很棒? 背景知识 Visual C 开发团队和 CMake 的维…

Flutter源码分析笔记:Widget类源码分析

Flutter源码分析笔记 Widget类源码分析 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/132259681 【介绍】&#x…

TestNG和Junit5测试框架梳理

一、testNG 1. testNG优势 注解驱动&#xff1a; TestNG 使用注解来标识测试方法、测试类和配置方法&#xff0c;使得测试更具可读性。 并行执行&#xff1a; TestNG 支持多线程并行执行测试&#xff0c;可以加速测试套件的执行。 丰富的配置&#xff1a; 可以通过 XML 配置文…

Qt下载安装及配置教程

进入qt中文网站&#xff1a;https://www.qt.io/zh-cn/ 下载开源版 往下滑&#xff0c;下载Qt在线安装程序 它已经检测出我的是windows系统&#xff0c;直接点击download就好。如果是其它的系统&#xff0c;需要找到对应自己系统的安装包。 然后跟网速有关&#xff0c;等…

Gitlab CI/CD笔记-第三天-使用主机docker in docker 进行构建并push镜像。

一、啥叫docker in docker 就是允许的镜像里头有一个docker,但这个docekr镜像只有docker的cli和/var/lib/docker.sock的套接字&#xff0c;没有允许build.然后里头又运行了一个docker&#xff0c;这个docker有build的能力&#xff0c;此时构建时就是里头的docker使用外部的dock…

登录验证码实现

Hutool代码改造 Hutool 有参考文档&#xff1b;很多工具类&#xff1b;把一些功能都封装好&#xff1b;都不用你自己去写&#xff1b;直接调用它的工具类 它这里会详细告诉你引入方式Hutool <dependency><groupId>cn.hutool</groupId><artifactId>hu…

STM32F429IGT6使用CubeMX配置SPI通信(W25Q256芯片)

1、硬件电路 需要系统性的看一下W25Q256芯片手册 2、设置RCC&#xff0c;选择高速外部时钟HSE,时钟设置为180MHz 3、配置SPI 4、生成工程配置 5、相关代码 #define sFLASH_ID 0XEF4019 // W25Q256#define SPI_FLASH_PageSize 256 #define SPI_FLASH_PerWritePageSize 256#def…

《雷达像智能识别对抗研究进展》阅读记录

&#xff08;1&#xff09;引言 ​ 神经网络通常存在鲁棒性缺陷&#xff0c;易受到对抗攻击的威胁。攻击者可以隐蔽的诱导雷达智能目标识别做出错误预测&#xff0c;如&#xff1a; ​ a图是自行车&#xff0c;加上对抗扰动后神经网络就会将其识别为挖掘机。 &#xff08;2&a…

【Quarkus技术系列】打造基于Quarkus的云原生微服务框架实践(1)

前提介绍 本系列文章主要讲解如何基于Quarkus技术搭建和开发"专为Kubernetes而优化的Java微服务框架"的入门和实践&#xff0c;你将会学习到如何搭建Quarkus微服务脚环境及脚手架&#xff0c;开发Quarkus的端点服务&#xff0c;系统和应用层级的配置介绍与Quarkus的…

单芯片3路CC管理的VR转接器解决方案

VR眼镜即VR头显&#xff0c;也称虚拟现实头戴式显示设备&#xff0c;随着元宇宙概念的传播&#xff0c;VR眼镜的热度一直只增不减&#xff0c;但是头戴设备的续航一直被人诟病&#xff0c;如果增大电池就会让头显变得笨重影响体验&#xff0c;所以目前最佳的解决方案还是使用VR…

C# BeginInvoke 加 EndInvoke实现异步操作

1、定义一个委托 delegate long MyDel(int first, int second); 2、 需异步操作的函数 static int sum(int x,int y) {Console.WriteLine("InSide Sum1");Thread.Sleep(1000);Console.WriteLine("InSide Sum2");return x y;} 3、回调方法…

[HDLBits] Exams/m2014 q3

Consider the function f shown in the Karnaugh map below. Implement this function. d is dont-care, which means you may choose to output whatever value is convenient. //empty

gitui 解决 git error:Bad credentials.

问题描述 cat .git/config """ [remote "origin"]url gitgitcode.net:xxx.gitfetch refs/heads/*:refs/remotes/origin/* """ls -lh ~/.ssh/ """ -rw------- 1 z z 2.6K 8月 12 15:04 id_rsa -rw-r--r-- 1 z z 56…

学习左耳听风栏目90天——第六天 6/90(学习左耳朵耗子的工匠精神,对技术的热爱)【如何拥有技术领导力】

学习左耳听风栏目90天——第六天 6/90&#xff08;学习左耳朵耗子的工匠精神&#xff0c;对技术的热爱&#xff09;【如何拥有技术领导力】

【第358场周赛】限制条件下元素之间的最小绝对差,Java解密。

LeetCode 第358场周赛 恒生专场。 文章目录 剑指Offer:限制条件下元素之间的最小绝对差示例:限制:解题思路:剑指Offer:限制条件下元素之间的最小绝对差 【题目描述】 给你一个下标从 0 开始的整数数组 nums 和一个整数 x 。 请你找到数组中下标距离至少为 x 的两个元素的…