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

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

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

相关文章

Spring MVC入门必读:注解、参数传递、返回值和页面跳转

一、常用注解 1.1.RequestMapping 作用:用于映射请求路径与处理请求的方法之间的关系,可以用在类或方法上 。 标注在方法上 用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法 Controller public class HelloContro…

Redis集群服务器

集群简介 试想有一家餐厅,如果顾客人数较少,那么餐厅只需要一个服务员即可,如图1。但是,当顾客人数非常多时,一个服务员是绝对不够的,如图2。此时,餐厅需要雇用更多的服务员来解决大量访问&…

Acwing算法心得——现代艺术(统计遍历)

大家好,我是晴天学长,先用两个一维数组维护数据,再统计遍历二维数组,需要的小伙伴请自取哦!💪💪💪 1 )现代艺术 2) .算法思路 现代艺术 1.两个数组维护行和列 2.遍历数组…

git在windows上安装

介绍git工具在windows上如何安装 git官网下载地址 1.1、下载 https://github.com/git-for-windows/git/releases/download/v2.36.0.windows.1/Git-2.36.0-64-bit.exe自行选择版本,这里我选择的是 Git-2.36.0-64-bit这个版本 1.2、安装 安装路径选择英文且不带空格…

Vue组件之间传值

聊一聊vue里面组件之间的传值 首先总结一下vue里面传值的几种关系: 如上图所示, A与B、A与C、B与D、C与F组件之间是父子关系; B与C之间是兄弟关系;A与D、A与E之间是隔代关系; D与F是堂兄关系,针对以上关系 我们把组件…

Java中级面试题记录(三)

1.职业规划? 2.每家公司离职原因? 3.SpringCloud用到了哪些组件? GateWayNacosOpenFeignSeataHystrix 4.PG和Mysql的区别? 5.两种数据库的存储区别? 6.MySQL索引了解的内容? 一口气搞定索引的所有知识…

uniapp 解决跨域的问题

uniapp 解决跨域的问题 我真的是个 沙雕 找对了解决办法 写错了地方 "h5" : {"devServer" : {"disableHostCheck" : true,"https": false,"proxy" : {"/app" : {"target" : "https://192.16…

算法的时间复杂度

算法的时间复杂度 ⭐算法效率⭐时间复杂度🌟时间复杂度🐟时间复杂度的概念🐳例1 🐟大O的渐进表示法🐳 例2🐳例3🐳例4🐳例5🐳例6🐳例7 ⭐算法效率 如何衡量一…

支付宝pc支付(springboot版),简单配置即可实现支付

概述 支付宝pc支付,只需要修改配置就可以实现支付,0基础小白都可以用。使用springboot编写,简单易用。 详细 DEMO简介 springboot整合支付宝pc支付,仅仅需要少量的配置,就可以实现pc支付。 项目截图 支付流程 用户…

sql:SQL优化知识点记录(十一)

(1)用Show Profile进行sql分析 新的一个优化的方式show Profile 运行一些查询sql: 查看一下我们执行过的sql 显示sql查询声明周期完整的过程: 当执行过程出现了下面这4个中的时,就会有问题导致效率慢 8这个sql创建…

数学建模--Topsis评价方法的Python实现

目录 1.算法流程简介 2.算法核心代码 3.算法效果展示 1.算法流程简介 """ TOPSIS(综合评价方法):主要是根据根据各测评对象与理想目标的接近程度进行排序. 然后在现有研究对象中进行相对优劣评价。 其基本原理就是求解计算各评价对象与最优解和最劣解的距离…

【力扣每日一题】2023.9.5 从两个数字数组里生成最小数字

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们两个数字数组,要我们用这两个数组里的元素组成一个数字,这个数字里需要同时拥有两个数组里的至少一个元…

uniapp移动端地图,点击气泡弹窗并实现精准定位

记录移动端地图map组件的使用 需求记录: 移动端地图部分需要展示两个定位点,上报点及人员定位点。通过右上角的两个按钮实现地图定位。点击对应定位气泡,弹出定位点的信息。 效果图如下: map在nvue中的使用。直接用nvue可以直接…

算法笔记:平衡二叉树

1 介绍 平衡二叉树(AVL树)是一种特殊的二叉搜索树(BST),它自动确保树保持低高度,以便实现各种基本操作(如添加、删除和查找)的高效性能。 ——>时间都维持在了O(logN)它是一棵空…

科技成果鉴定之鉴定测试报告

鉴定测试 由于软件类科技成果的复杂、内部结构难以鉴别等特点,我们提供了软件类科技成果鉴定测试服务。软件类科技成果鉴定测试是依据其科研项目计划任务书或技术合同书,参照相应的国家标准对要申请鉴定的软件类科技成果进行的一种符合性测试&#xff0…

毕业设计-摄像头识别二维码

本毕业设计采用imx6ull-linux4.1.15-qt5.6开发板进行测试 相关交叉编译包和摄像头测试程序已上传:https://download.csdn.net/download/qq_42952079/88282608 将zbar和opencv下的lib库文件拷贝到开发板的lib目录下,将camera可执行文件拷贝到开发板目录下…

鞋业的数字化转型:3D建模与3D打印

3D打印正在成为时尚行业的一笔重要资产。 正如我们在之前的博客文章中看到的那样,制鞋行业实际上正在充分利用这种新的制造工艺。 这是改进许多不同公司的原型设计和生产流程的一种方法。 但为了改进这些流程,获得正确的 3D 建模软件非常重要。 即使你不…

Ansible之playbook详解和应用实例

目录 一、playbook简介 1.什么是playbook 2.playbook组成 二、应用实例 1.使用playbook安装启用httpd服务 2.使用playbook安装启用nginx服务 三、ansible-playbook其他用法 1.检查yaml文件的语法是否正确 2.检查tasks任务 3.检查指定的主机 4.指定从某个task开始运行…

qt day

#include "widget.h" #include "ui_widget.h" void Widget::my_slot() {} Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);this->setWindowIcon(QIcon(":/wodepeizhenshi.png"));//設置窗口的…

国内 11 家通过备案的 AI 大模型产品

国内 11 家通过《生成式人工智能服务管理暂行办法》备案的 AI 大模型产品将陆续上线。 一、北京5家 1、百度的 “文心一言”https://yiyan.baidu.com 2、抖音的 “云雀”,基于云雀大模型开发的 AI 机器人 “豆包” 开始小范围邀请测试。用户可通过手机号、抖音或…