简单分析jsjiami.v6加密逻辑

news2025/1/10 21:38:41

代码案例:

var _0xodR='jsjiami.com.v6',_0xodR_=function(){return['‮_0xodR'],_0x4311=[_0xodR,'TMO+w51jPALDkw==','w6LDqcOhw7PCqQ==','I8OkP0zDs8KF','fyjCv8OB','CMOdEk5b','OnthccOZHXXDoA==','UnDCrcKvw61VAsKNw7TCoRN8wpkhFVzCgA40woV6wrTCtMOXbXo=','CMOiwohCXsKhw4PDq8KKw5MbPMOnWVjCpzQJw6t0','woVfIsOiw6w=','BMOLFFnDsw==','bTnCscORMgQ=','TEEIjEWesjxMidwKyMamQi.com.v6=='];}();if(function(_0x8b258c,_0x327557,_0x139c24){function _0x597bb6(_0x4fb83f,_0x11ca90,_0x195cb6,_0x59118d,_0x29fcaf,_0xebc496){_0x11ca90=_0x11ca90>>0x8,_0x29fcaf='po';var _0x33469c='shift',_0x190c3c='push',_0xebc496='‮';if(_0x11ca90<_0x4fb83f){while(--_0x4fb83f){_0x59118d=_0x8b258c[_0x33469c]......._0x114f49+_0x518696;},'TZIft':_0x5a74('‮0','W&Tp'),'jqRNp':_0x5a74('‮1','Zw17'),'MikaT':_0x5a74('‮2','nW61')};var _0xe31fcc=new RegExp('#','g');var _0x291526=_0xbc6d99[_0x5a74('‫3','qu1r')](top[_0xbc6d99[_0x5a74('‮4','F7FK')]][_0x5a74('‫5','gX]b')],top[_0xbc6d99['TZIft']]['hash'][_0x5a74('‫6','fI0!')](_0xe31fcc,'&'));var _0x592bb8=new RegExp(_0xbc6d99[_0x5a74('‫7','BgB[')],'i');var _0x26c640=_0x291526[_0x5a74('‫8','F7FK')](0x1)['match'](_0x592bb8);var _0x180276;jiami=_0x26c640[0x2];try{_0x180276=window[_0x5a74('‮9','gX]b')](_0x26c640[0x2]);}catch(_0x207358){location['href']=_0xbc6d99[_0x5a74('‮a','T5$V')];}return _0x180276['split'](',');}

开始:

首先,我们来看整段代码的结构:

var _0xodR = 'jsjiami.com.v6';
var _0xodR_ = function () {
  return ['‮_0xodR'], _0x4311 = [
    _0xodR, 'TMO+w51jPALDkw==', 'w6LDqcOhw7PCqQ==', 'I8OkP0zDs8KF', 'fyjCv8OB',
    'CMOdEk5b', 'OnthccOZHXXDoA==', 'UnDCrcKvw61VAsKNw7TCoRN8wpkhFVzCgA40woV6wrTCtMOXbXo=',
    'CMOiwohCXsKhw4PDq8KKw5MbPMOnWVjCpzQJw6t0', 'woVfIsOiw6w=', 'BMOLFFnDsw==',
    'bTnCscORMgQ=', 'TEEIjEWesjxMidwKyMamQi.com.v6=='
  ];
}();

// Step 1: 定义变量 _0xodR,赋值为字符串 'jsjiami.com.v6'
var _0xodR = 'jsjiami.com.v6';

// Step 2: 定义函数 _0xodR_,函数体为空,返回一个包含一个元素 '‮_0xodR' 的数组
var _0xodR_ = function () {
  return ['‮_0xodR'], _0x4311 = [
    _0xodR, 'TMO+w51jPALDkw==', 'w6LDqcOhw7PCqQ==', 'I8OkP0zDs8KF', 'fyjCv8OB',
    'CMOdEk5b', 'OnthccOZHXXDoA==', 'UnDCrcKvw61VAsKNw7TCoRN8wpkhFVzCgA40woV6wrTCtMOXbXo=',
    'CMOiwohCXsKhw4PDq8KKw5MbPMOnWVjCpzQJw6t0', 'woVfIsOiw6w=', 'BMOLFFnDsw==',
    'bTnCscORMgQ=', 'TEEIjEWesjxMidwKyMamQi.com.v6=='
  ];
}();

以上是代码的前两个步骤,主要是定义了两个变量 _0xodR_0xodR_。其中 _0xodR 被赋值为字符串 'jsjiami.com.v6',而 _0xodR_ 是一个函数,返回一个包含单个元素 '‮_0xodR' 的数组。请注意,'‮_0xodR' 中的 字符是一个特殊字符,可能影响代码的执行和解读。

接下来,我们继续分析代码的其余部分:

if (function (_0x8b258c, _0x327557, _0x139c24) {
  // Step 3: 使用了一个立即执行函数
  !function (_0x327557) {
    for (; --_0x327557; ) {
      // Step 4: 对变量 _0x8b258c 进行一系列位运算操作
      _0x8b258c['push'](_0x8b258c['shift']());
    }
  }(++_0x327557);
}(/* 数字参数1 */, /* 数字参数2 */),

Step 3 中,代码使用了一个立即执行函数,其参数为两个数字。这个立即执行函数在执行过程中,会对参数 _0x8b258c 进行一系列位运算操作。具体操作的目的和含义需要进一步解析 _0x8b258c 变量的定义。

继续分析代码的下一部分:

function (_0x4688b3, _0x33d81e) {
  // Step 5: 使用了一个立即执行函数
  var _0x4e9d98 = function (_0x8b258c) {
    // Step 6: 在函数内部定义了一个变量 _0x8b258c,并赋值为参数值
    while (--_0x8b258c) {
      // Step 7: 对变量 _0x4688b3 进行一系列位运算操作
      _0x4688b3['push'](_0x4688b3['shift']());
    }
  };
  // Step 8: 调用函数 _0x4e9d98,传入参数 _0x33d81e
  _0x4e9d98(++_0x33d81e);
}(/* 数字参数1 */, /* 数字参数2 */);

在 Step 5 中,又出现了一个立即执行函数,该函数接受两个数字作为参数。函数内部定义了一个函数 _0x4e9d98,该函数接受一个参数 _0x8b258c,并进行一系列位运算操作。

在 Step 7 中,对变量 _0x4688b3 进行了一系列位运算操作。与之前的 _0x8b258c 相关的操作类似,这里需要进一步解析 _0x4688b3 变量的定义。

以上是对jsjiami.v6加密结构的简单分析,今天就写这么多,有需要点点关注收藏后续继续跟进。

如果您对文章内容有不同看法,或者疑问,欢迎到评论区留言,或者私信我、到我们的官网找客服号都可以。

如遇自己js加密源码加密后没备份,可以找我们解决解出恢复源码,任何加密都可以

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

基于LayUI+Servlet的权限管理系统的设计

权限管理是所有后台系统的都会涉及的一个重要组成部分&#xff0c;主要目的是对不同的人访问资源进行权限的控制&#xff0c;避免因权限控制缺失或操作不当引发的风险问题&#xff0c;如操作错误&#xff0c;隐私数据泄露等问题。本系统基于JSPServletJDBCLayUI的技术&#xff…

Java并发体系-第三阶段-JUC并发包-[2]-CompleableFuture,SynchronousQueue

Phaser工具(有时间就了解一下&#xff0c;下面还有队列) 简介 java7中引入了一种新的可重复使用的同步屏障,称为移相器Phaser。Phaser拥有与CyclicBarrier和CountDownLatch类似的功能. 但是这个类提供了更加灵活的应用。CountDownLatch和CyclicBarrier都是只适用于固定数量的…

(5)NUC980先来点个灯如何设置开启自启动

嵌入式Linux开机启动过程&#xff1a; 可以分为以下几个步骤&#xff1a; CPU复位&#xff1a;开机时&#xff0c;CPU会执行复位操作&#xff0c;将内存的内容清空&#xff0c;寄存器的初始值复位。 ROM启动&#xff1a;CPU会从ROM中读取启动程序&#xff0c;将其加载到内存中…

【阅读笔记】时间序列之TPA-LSTM(含Pytorch代码实现)

本文作为自己阅读论文后的总结和思考&#xff0c;不涉及论文翻译和模型解读&#xff0c;适合大家阅读完论文后交流想法&#xff0c;关于论文翻译可以查看参考文献。论文地址&#xff1a;https://arxiv.org/abs/1809.04206 TPA-LSTM 一. 全文总结二. 研究方法三. 结论四. 创新点…

C++ 学习 ::【基础篇:13】:C++ 类的基本成员函数:类类型成员的初始化与构造函数问题

本系列 C 相关文章 仅为笔者学习笔记记录&#xff0c;用自己的理解记录学习&#xff01;C 学习系列将分为三个阶段&#xff1a;基础篇、STL 篇、高阶数据结构与算法篇&#xff0c;相关重点内容如下&#xff1a; 基础篇&#xff1a;类与对象&#xff08;涉及C的三大特性等&#…

科技云报道:数字化时代,企业终端安全防护该“上新”了!

科技云报道原创。 随着云计算、大数据、物联网等创新技术的加速落地&#xff0c;企业原有的网络边界被打破&#xff0c;各种终端设备如&#xff1a;笔记本电脑、台式机、平板电脑、智能手机、物联网终端等成为了新的安全边界。 在此背景下&#xff0c;想确保企业高效办公的灵活…

罗德与施瓦茨FSWP26相位噪声分析仪

罗德与施瓦茨FSWP26 相位噪声分析仪和VCO测试仪 FSWP相位噪声分析仪和VCO测试仪结合极低噪声内源和互相关技术&#xff0c;实现了相位噪声测量的超高灵敏度。因此&#xff0c;即便测量高度稳定的源 (例如在雷达应用中的源) 也只需几秒钟。脉冲信号测量、附加相位噪声 (包括脉冲…

【敲敲云】免费的零代码产品 — 应用用户角色与权限

之前的文章我们介绍了应用创建与设置&#xff0c;应用的使用离不开权限设置&#xff0c;毕竟不是每个人都可以查看所有的工作表&#xff0c;下面我们再来看一下应用的角色与权限。 一、应用用户 应用用户&#xff1a; 结合应用角色&#xff0c;可设置哪些用户可以访问哪些应用或…

Numpy---ndarray的特点、效率

1. Numpy Numpy&#xff08;Numerical Python&#xff09;是一个开源的 Python 科学计算库&#xff0c;用于快速处理任意维度的数组。 Numpy 支持常见的数组和矩阵操作。对于同样的数值计算任务&#xff0c;使用 Numpy 比直接使用 Python 要简洁的多。 Numpy 使用 ndarray 对…

Redis五大数据结构的底层实现

一)String类型:可以使用object encoding name就可以查看字符串的编码 SDS&#xff0c;flags的值不同&#xff0c;那么len和alloc所表示的值的数据范围也不同&#xff0c;所以flags的只是为了标识SDS头的总大小&#xff1b; alloc和len刚开始进行申请内存空间的时候都是相同的 S…

Vue.js 中的父子组件通信方式

Vue.js 中的父子组件通信方式 在 Vue.js 中&#xff0c;组件是构建应用程序的基本单元。当我们在应用程序中使用组件时&#xff0c;组件之间的通信是非常重要的。在 Vue.js 中&#xff0c;父子组件通信是最常见的组件通信方式之一。在本文中&#xff0c;我们将讨论 Vue.js 中的…

原神3.2服务端PC端架设教程

安装教程 安装 MongoDB&#xff0c;不会安装建议使用宝塔面板 sudo apt updatesudo apt install mongodb-orgsudo systemctl enable --now mongod 直接启动.如果失败看看数据库启动了没有.端口一致 ./start.sh 安装配置JDK17 双击 OpenJDK17U-jdk_x64_windows_hotspot_1…

4年经验,面试二十多家公司后的整理....

先说一下自己的个人情况&#xff0c;普通二本计算机专业毕业&#xff0c;懂python&#xff0c;会写脚本&#xff0c;会selenium&#xff0c;会性能&#xff0c;然而离职后到今天都没有收到一份offer&#xff01;一直在待业中&#xff0c;从离职第一天就开始准备简历&#xff0c…

【Proteus仿真】【51单片机】智能婴儿车

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使用LCD1604显示模块、按键模块、LED和蜂鸣器、DHT11温湿度、DS18B20温度传感器、SR04超声波&#xff0c;声音传感器、L298N直流电机、语音蓝牙控制等。…

搭建属于你自己的New Bing

前言 在这篇博客中&#xff0c;您将学习如何使用 Render 部署 go-proxy-bingai 项目&#xff0c;以便在不需要登录的情况下体验微软 Bing AI 的所有功能。 作者GitHub项目地址&#xff1a;adams549659584/go-proxy-bingai: 用 Vue3 和 Go 搭建的微软 New Bing 演示站点&#x…

工业场景中的RFID技术应用有哪些?

您是否好奇于如何在工业场景中利用RFID技术实现更高效的操作和生产流程优化&#xff1f;本文将带您深入探索RFID技术在工业领域的应用&#xff0c;揭示其优势和挑战&#xff0c;并通过实际案例为您呈现RFID技术在工业自动化和生产流程优化方面的成功应用。 一、RFID技术在工业…

OpenWrt 软路由解析公网IPV6域名访问家庭NAS的问题答疑

1、非要使用 Padavan 或者 OpenWrt固件的软路由才能IPV6公网访问吗&#xff1f; 答&#xff1a;这个并不是这样的&#xff0c;一般家用路由器都无法放行防火墙规则&#xff0c;这种情况当然无法实现IPV6公网访问&#xff0c;但是少部分路由器是可以的&#xff0c;只要有防火墙设…

MySQL6-深入理解MVCC和BufferPool缓存机制

❤️ 个人主页&#xff1a;程序员句号 &#x1f680; 支持水滴&#xff1a;点赞&#x1f44d; 收藏⭐ 留言&#x1f4ac;关注 &#x1f338; 订阅专栏&#xff1a;MySQL性能调优 原创博文、基础知识点讲解、有一定指导意义的中高级实践文章。 认真或有趣的技术分享。 MySQL性…

Vue.js 中的路由是什么?如何使用路由?

Vue.js 中的路由是什么&#xff1f;如何使用路由&#xff1f; 在 Vue.js 中&#xff0c;路由是指为不同的 URL 地址提供不同的页面内容或视图的机制。Vue.js 中的路由可以使用 Vue Router 库来实现&#xff0c;它是 Vue.js 官方提供的路由管理库。 Vue Router 简介 Vue Route…

vue (8)

vue8 文章目录 1. 浏览器本地存储1.1 localStorage1.2 sessionStorage1.3 总结 2. 修改 TodoList 案例3. 绑定自定义事件3.1 绑定3.2 解绑3.3 两个注意点3.4 总结3.5 修改 TodoList 案例 4. 全局事件总线4.1 总结4.2 修改 TodoList 案例 1. 浏览器本地存储 1.1 localStorage 图…