jsvmp逆向(补环境篇)

news2024/11/25 2:57:51
书接上回

上篇文章写到tx的jsxmp的算法逆向,文章链接在这里。初试jsvmp加密

。但是可能有伙伴觉得不够详细。

这里放一个大佬的文章链接。

https://www.52pojie.cn/thread-1521480-1-1.html

。其实就是一个变形的xtea加密。

大佬的文章已经讲了很清楚了,我这里就不狗尾续貂了。

查看node环境参数

在逆向算法的时候,我们简单补了一下环境,让jsvmp能再node环境里面跑起来。但是生成结果肯定是不对的。直接拿来用是不行的。

我们上次在jsvmp里面插桩。拿到输出结果。

图片

我们可以找到四个类似的字符串,我们逆向出算法可以知道,就是collect就是由这四个的字符串加密出来的。

我们拿到这个四个字符串和浏览器生成的进行对比。

查看浏览器生成的参数

我们在浏览器进行覆盖js,把我们本地js拿到浏览器里面运行,查看浏览器输出的环境,看看有啥不一样。

图片

最后对比浏览器环境和node环境生成参数

这里拿别人大佬分析的参数,我自己再补充几个

data = {
  "0": 1,
  "1": "Mozilla/5.0 不给看 Edg/100.0.1185.44",
  "2": 12,
  "3": 0,
  "4": 1,
  "5": "2560-1440-1392-24-*-*-|-*",
  "6": "**0.***.***.*46",
  "7": "GgoAAAANSUhEUgAA 不给看 iPegAAAABJRU5ErkJggg==",
  "8": [],
  "9": 1440,
  "10": 0,
  "11": 0,
  "12": "ANGLE 不给看 vs_5_0 ps_5_0, D3D11)",
  "13": "https://captcha.gtimg.com/1/template/drag_ele.html?rand=1519713624347",
  "14": ["zh-CN", "en", "en-GB", "en-US"],
  "15": 1689646445,
  "16": 396149498,
  "17": 1689155967,
  "18": 1689646443,
  "19": "Google 不给看 ",
  "20": 1520994948,
  "21": [300, 230],
  "22": 2560,
  "23": "iframe",
  "24": "",
  "25": 24,
  "26": "+08",
  "27": 0,
  "28": 2,
  "29": 0,
  "30": "https://y.qq.com/portal/close.html",
  "31": "UTF-8",
  "32": 1023,
  "33": "98k",
  "34": "",
  "35": "Win32",
  "36": 0
}

按照索引进行解释

  • 1 userAgent

  • 2 Navigator.hardwareConcurrency

  • 3 dom检测自动化检测,相当残暴,正确为0,否则为其他的数字, 创建节点,设置属性, 追加节点, 删除节点, innertHTML 正则匹配, (createElement, cloneNode,appendChild, insertBefore...)

  • 5-22-25 Screen width, height,availHeight, colorDepth, pixelDepth 拼接而成

  • 6 RTC sdp 正则匹配出来的ip地址 (我这边没有看到这个参数)

  • 7 canvas指纹

  • 8 deviceorientation事件 , 不调用就对了

  • 9 Screen.height

  • 12-19 webgl指纹

  • 13 location.href

  • 14 languages

  • 16 -17 TDC_itoken

  • 20 这个参数应该是每个js不一样的。js字节码里面有

  • 21 window innerHeight, innerWidth;

  • 23 正确创建 iframe节点 contentWindow, contentDocument

  • 28 会检测div的touchstart属性

  • 27-29 dom检测

  • 30 window.TCaptchaReferrer

  • 32 样式检测,正确为1023(可能不同浏览器不一样), 包括(getPropertyValue, matchMedia), 初始化默认全为false(0)

    这里还是拿的y小白的笔记的csdn的文章。链接在这里

  • https://blog.csdn.net/weixin_44437016/article/details/131785557
总结

接下来就是自己慢慢补了,上次我有分享一个qxvm补环境框架,但是里面没有实现动态dom。

要自己实现。但是这个tx的jsvmp对dom补环境比较严格,自己实现动态dom比较麻烦。

我这边魔改的jsodom。里面已经实现了动态dom了,是一个非常完美的补环境框架。然后就是缺啥补啥。最后测试没啥问题。

图片

交流群:835342318

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

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

相关文章

小程序测试应该进行哪些测试?起到什么作用?

在如今小程序蓬勃发展的时代,越来越多的企业选择开发小程序来扩大业务。在推出小程序之前,进行全面的测试是至关重要的。 一、小程序测试的注意事项 1、功能测试:测试小程序的各项功能是否正常,包括页面跳转、数据加载、提交操作…

依赖导入失败场景和解决方案

在使用 Maven 构建项目时,可能会发生依赖项下载错误的情况,主要原因有以下几种: 下载依赖时出现网络故障或仓库服务器宕机等原因,导致无法连接至 Maven 仓库,从而无法下载依赖。 依赖项的版本号或配置文件中的版本号错…

恒运资本:股市板块轮动顺口溜?

股市是一个变化多端的场所,不同的板块会因为不同的方针、商场影响、经济形势等多种原因而有不同的体现。因而,不同时期不同板块的轮动也成为了研究的热门。下面咱们就通过一个顺口溜,来深化了解股市板块轮动: “钢铁、水泥、煤炭…

Linux如何安装MySQL

Linux安装MySQL5.7 1、下载 官网下载地址:http://dev.mysql.com/downloads/mysql/ 2、复制下面几个文件 3、检查当前系统是否安装过mysql、检查当前mysql依赖环境、检查/tmp文件夹权限 1)检查当前系统是否安装过mysql,执行安装命令前&am…

CAS策略

CAS CAS(Compare And Swap)比较并交换 CAS是多线程环境下对共享变量进行修改时的一种策略,主要存在三个参数:当前值、预估值、结果 CAS采用的策略是当一个线程要对共享变量进行修改时,需要获取内存中共享变量的值作…

自动驾驶中间件

自动驾驶中间件 1. 什么是中间件2. 中间件的分类3. 自动驾驶为什么需要中间件4. 通信中间件 Reference: 自动驾驶中间件:量产落地的关键技术通俗易懂的告诉你什么是中间件 对于初入自动驾驶行业的人来说,各色各样的新型传感器、线控系统、芯…

基于Java+SpringBoot+Vue前后端分离家政服务管理系统的设计与实现【Java毕业设计·文档报告·代码讲解·安装调试】

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

【考研数学】高等数学第五模块 —— 级数(2,幂级数)

文章目录 引言二、幂级数2.1 基本概念2.2 幂级数的收敛半径与收敛域2.3 幂级数的性质2.4 将函数展开为幂级数2.4.1 直接法2.4.2 间接法 2.5 求幂级数的和函数 写在最后 引言 承接前文的常数项级数,我们来继续看看关于幂级数的内容。 二、幂级数 2.1 基本概念 函数…

SpringCloud(二)

1.Nacos配置管理 Nacos除了可以做注册中心,同样可以做配置管理来使用。 1.1.统一配置管理 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案&#…

php使用jwt作登录验证

1 在项目根目录下,安装jwt composer require firebase/php-jwt 2 在登录控制器中加入生成token的代码 use Firebase\JWT\JWT; use Firebase\JWT\Key; class Login extends Cross {/*** 显示资源列表** return \think\Response*/public function index(Request $r…

在贸易发展新时代,我为什么推荐你使用全渠道支持平台?

在当今世界,客户希望在与企业互动时获得无缝体验,无论他们使用什么渠道进行联系。这就是全渠道支持的用武之地。通过提供全渠道客户支持,企业可以满足客户期望并提高客户满意度。在本文中,我们将探讨它的好处以及认识全渠道客户沟…

前人栽树,后人才能乘凉!聊聊低代码对开发者的意义

一、低代码很火 LCDP(低代码开发平台)市场规模大,增长迅速。Gartner机构的预测,到2025年,企业70%的新应用将会通过低代码或者无代码技术开发,这将加快低代码市场的全面爆发。而另外一家研究机构海比研究院数…

YOLOv5:对yolov5n模型进一步剪枝压缩

YOLOv5:对yolov5n模型进一步剪枝压缩 前言前提条件相关介绍具体步骤修改yolov5n.yaml配置文件单通道数据(黑白图片)修改models/yolo.py文件修改train.py文件 剪枝后模型大小 参考 前言 由于本人水平有限,难免出现错漏,…

2023高教社杯数学建模国赛题目这样选择

2023高教社杯数学建模国赛题目如何选择 一年一度的数学建模国赛要来啦!!!小编仔细阅读了比赛官方网站上的规则和要求,以及比赛的题型和时间安排,现总结分享给大家。小编将会在开赛后第一时间发布选题建议、所有题目的…

Leetcode - 112双周赛

一,2839. 判断通过操作能否让字符串相等 I ​ 该题的题意就是看 单数下标 和 偶数下标的 s1 和 s2 中的字母及其数量是否相等。 代码如下(也可以使用哈希表来做): class Solution {public boolean canBeEqual(String s1, String s2) {int[] a new in…

Debian11安装Geoserver+矢量插件

呕心之作,小白教程 1 安装 Java 112 安装Geoserver2.1 安装2.2 设置自启动2.3 跨域问题 3 安装矢量插件 Geoserver的官网安装手册。 GeoServer需要 Java 8 或者 Java 11 环境 1 安装 Java 11 Debain默认安装 Java 11 版本,直接执行: # 确认…

​​​​​​​程序流程图怎么画?几步教你快速绘制流程图

程序流程图怎么画?在工作中,我们经常需要向同事或者客户展示我们的工作流程,让他们对我们的工作有更全面的了解和认识。此时,流程图就成为了一个非常有用的工具,通过它,我们可以将复杂的工作流程清晰地展示…

华为云云服务器评测|华为云耀云L搭建zerotier服务测试

0. 环境 - Win10 - 云耀云L服务器 1. 安装docker 检查yum源,本EulerOS的源在这里: cd /etc/yum.repos.d 更新源 yum makecache 安装 yum install -y docker-engine 运行测试 docker run hello-world 2. 运行docker镜像 默认配…

Spring6.1之RestClient分析

文章目录 1 RestClient1.1 介绍1.2 准备项目1.2.1 pom.xml1.2.2 创建全局 RestClient1.2.3 Get接收数据 retrieve1.2.4 结果转换 Bean1.2.5 Post发布数据1.2.6 Delete删除数据1.2.7 处理错误1.2.8 Exchange 方法 1 RestClient 1.1 介绍 Spring 框架一直提供了两种不同的客户端…

DataX(MySQL同步数据到Doris)

1.场景 这里演示介绍的使用 Doris 的 Datax 扩展 DorisWriter实现从Mysql数据定时抽取数据导入到Doris数仓表里 2.编译 DorisWriter 这个的扩展的编译可以不在 doris 的 docker 编译环境下进行,本文是在 windows 下的 WLS 下进行编译的 首先从github上拉取源码 …