jsvmp逆向(补环境篇)

2024-01-10 02:10
文章标签 环境 逆向 jsvmp

本文主要是介绍jsvmp逆向(补环境篇),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

书接上回

上篇文章写到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

这篇关于jsvmp逆向(补环境篇)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/589202

相关文章

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

高并发环境中保持幂等性

在高并发环境中保持幂等性是一项重要的挑战。幂等性指的是无论操作执行多少次,其效果都是相同的。确保操作的幂等性可以避免重复执行带来的副作用。以下是一些保持幂等性的常用方法: 唯一标识符: 请求唯一标识:在每次请求中引入唯一标识符(如 UUID 或者生成的唯一 ID),在处理请求时,系统可以检查这个标识符是否已经处理过,如果是,则忽略重复请求。幂等键(Idempotency Key):客户端在每次

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用