最常用的js混淆加密解

news2024/11/18 23:32:35

JS混淆加密是一种用于保护JS代码的技术,它能够将代码变得难以理解和修改,从而提高代码的安全性。但是,当我们需要修改和维护这些代码时,我们就会面临困难。因此,在某些情况下,我们需要解这些JS代码。

下面,我将给大家介绍一些JS混淆加密的常用技术,并提供一个案例代码以供参考。但是,我希望大家注意到,解他人的代码可能会侵犯他人的权益,因此请确保您拥有合法的使用权。

JS混淆加密的常用技术:

  1. 变量名混淆:将代码中的变量名替换为更难以理解的名称,例如_0x2c97
  2. 字符串加密:将字符串转换为字符编码形式,例如将字符串"hello"转换为"\x68\x65\x6c\x6c\x6f"
  3. 函数名称加密:将函数名称替换为更难以理解的名称,例如_0x353b6a
  4. 代码重构:将代码中的函数调用、循环、判断等结构进行重构,使其变得更难以理解。

以下是一个案例代码:

var _0x2c97 = ['\x61\x70\x70\x6c\x79', '\x62\x61\x73\x65\x36\x34', '\x64\x65\x63\x72\x79\x70\x74', '\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'];
(function(_0x2ec8, _0x36506f) {
    var _0x353b6a = function(_0x32cb4f) {
        while (--_0x32cb4f) {
            _0x2ec8['push'](_0x2ec8['shift']());
        }
    };
    _0x353b6a(++_0x36506f);
}(_0x2c97, 0x6a));
var _0x353b6a = function(_0x2ec8, _0x36506f) {
    _0x2ec8 = _0x2ec8 - 0x0;
    var _0x32cb4f = _0x2c97[_0x2ec8];
    return _0x32cb4f;
};
_0x353b6a['decrypt'] = function(_0x32cb4f) {
    return window[_0x2c97[2]](unescape(encodeURIComponent(_0x32cb4f)));
};
_0x353b6a['base64'] = function(_0x32cb4f) {
    return window[_0x2c97[3]](window[_0x2c97[2]](unescape(encodeURIComponent(_0x32cb4f))));
};
_0x353b6a['fromCharCode'] = function(_0x32cb4f) {
    return window[_0x2c97[

2.主题是js混淆加密

这段代码中,变量名和函数名都被混淆了,例如_0x2c97_0x353b6a。此外,还使用了字符串加密和代码重构等技术,使得代码更加难以阅读和理解。但是,如果我们需要修改和维护这段代码,就需要对其进行解。

解这段代码的方法也比较简单,只需要将混淆的变量名和函数名替换为更易读的名称,例如applybase64等,再将字符串加密的内容进行解码,就可以得到原始的JS代码。

下面是解后的代码:

var methods = ['apply', 'base64', 'decodeURIComponent', 'fromCharCode'];
(function(obj, index) {
    var rename = function(num) {
        while (--num) {
            obj['push'](obj['shift']());
        }
    };
    rename(++index);
}(methods, 0x6a));
var decodeURIComponent = function(obj, index) {
    obj = obj - 0x0;
    var num = methods[obj];
    return num;
};
decodeURIComponent['decrypt'] = function(str) {
    return window['decodeURIComponent'](unescape(str));
};
decodeURIComponent['base64'] = function(str) {
    return window['btoa'](window['unescape'](encodeURIComponent(str)));
};
decodeURIComponent['fromCharCode'] = function(str) {
    return String['fromCharCode'](str);
};

通过解,我们可以看到这段代码中定义了三个函数,分别是decryptbase64fromCharCode。其中,decrypt函数用于解字符串,base64函数用于将字符串转换为base64编码,fromCharCode函数用于将编码转换为字符。

总结

JS混淆加密是一种常用的技术,它能够保护JS代码,但也增加了代码的阅读和维护难度。如果需要解这些代码,我们可以通过替换变量名和函数名,以及解码字符串的方式来实现。但需要注意,解他人的代码可能会侵犯他人的权益,所以请确保您拥有合法的使用权。

如果您对文章内容有不同看法,或者疑问,欢迎到评论区留言,或者私信我都可以。

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

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

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

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

相关文章

新唐NUC980使用记录(5.10.y内核):访问以太网(LAN8720A) 启用SSH

文章目录 目的修改内核和设备树以访问以太网制作根文件系统并启用SSH总结 目的 这篇文章主要测试新唐NUC980(5.10.y内核)访问以太网(PHY为LAN8720A)以及启用SSH。 这篇文章中内容均在下面的开发板上进行测试: 《新唐…

【三维几何学习】网格可视化-Cube engraving数据集

网格可视化-Cube engraving数据集 引言一、blender二、meshlab三、3D查看器 引言 三角网格(Triangular Mesh)分类数据集 MeshCNN: A Network with an Edge 可参考以上链接深入了解 or 下载数据集。Cube engraving(论文叫法)数据集,又称为Cubes classification datas…

ClickHouse之Explain查看执行计划

文章目录 前言基本语法EXPLAIN 类型EXPLAIN PLANEXPLAIN ASTEXPLAIN SYNTAXEXPLAIN PIPELINEEXPLAIN ESTIMATE 补充忠告 前言 在 clickhouse 20.6 版本之前要查看 SQL 语句的执行计划需要设置日志级别为 trace 才能 可以看到,并且只能真正执行 sql,在执…

快商通联合创始人李稀敏入选“科技专家库专家名单”

3月10,厦门市科学技术局关于2023年第一批拟入选科技专家库专家名单进行公示。经过层层审核,快商通联合创始人李稀敏入选“科技专家库专家名单”。 据了解,厦门市科学技术局的“科技专家库专家名单”是由市科技局精心挑选的一批优秀专家&…

Unsupervised Domain Adaption (UDA)及domain shift介绍

UDA UDA想解决的问题是目标域上数据标签的缺乏,具体而言,存在着源域和目标域,源域上存在大量的标注样本对 D s { ( X i , y i ) } D_s\{(X_i,y_i)\} Ds​{(Xi​,yi​)},我们可以在上面以有监督的方式训练各种模型,但此…

常见舆情监测系统的分类和特点

随着网络和社交媒体的发展,舆情监测系统逐渐成为企业和政府机构必备的工具之一。舆情监测系统可以帮助企业和政府机构全面了解公众对其品牌、产品、政策等的反应和态度,及时发现和解决问题,提高公信力和形象。本文将介绍常见的舆情监测系统的…

Python Tox

tox其核心作用是支持创建隔离的 Python 环境,在里面可以安装不同版本的 Python 解释器与各种依赖库,以此方便开发者做自动化测试、打包、持续集成等事情。 简单来说,tox 是一个管理测试虚拟环境的命令行工具。 我介绍一种应用场景&#xff…

如何在Jetpack Compose中设置渐变背景

如何在Jetpack Compose中设置渐变背景 只需几步即可通过平滑渐变增强应用程序的用户界面 虽然它经常出现在网络前端的世界中,但渐变背景可以为您的移动应用程序增添专业和美观的触感,使其对您的用户更具吸引力。 第 1 步:创建渐变画笔 为…

Semantic Segmentation using Adversarial Networks

首次将GAN用于语义分割,用于辨别分割图是来自GT还是来自分割网络。作者的想法来自借助GAN可以检测和矫正GT和模型分割图的高阶不一致。最后在Standford和PASCAL VOC 数据集上验证了想法。 对抗学习: 使用两个权重和的混合损失函数进行优化,第…

从win7升级到win10过程中遇到的问题:安装工具无法运行、卸载VMware

目录 1. 概述2. 微软官方安装工具无法运行3. 控制面板的卸载程序里面找不到VMware4. 输入产品密钥5. 安装完后仍然未激活6. 雨林木风 1. 概述 因为新电脑还没有到,把上学时候的笔记本翻出来顶一顶。旧笔记本还是win7,我的鼠标没办法使用,干脆…

HDCTF web复现

[HDCTF 2023]SearchMaster 传data 使用{if}标签闭合达到命令执行的效果 {if phpinfo()}{/if} NSSCTF{f578f8ba-246e-452b-b070-22bc4fc4313d} Smarty模板注入&CVE-2017-1000480 - 先知社区 (aliyun.com) [HDCTF 2023]YamiYami 非预期解 第一个连接 跳转到百度&#xf…

远程访问(内网穿透)

文章目录 介绍cpolar安装使用终端访问远程桌面访问 仅靠ssh,等只能实现同局域网下的服务器访问,本文介绍使用cpolar内网穿透工具实现非同局域网下的访问 介绍 远程:1804 ubuntu 软件依赖:ssh,xrdp, cpolar…

【K8s】资源管理与实战入门

文章目录 一、资源管理1、资源管理介绍2、YAML语言语法3、资源管理方式4、命令式对象管理--kubectl5、命令式对象配置6、声明式对象配置7、报错 二、实战入门1、namespace2、Pod3、Label4、deployment5、Service 一、资源管理 1、资源管理介绍 在kubernetes中,所有…

如何有效的向 AI 提问 ?

文章目录 〇、导言一、Base LLM 与 Instruction Tuned LLM二、如何提出有效的问题 ?1. 明确问题:2. 简明扼要:3. 避免二义性:4. 避免绝对化的问题:5. 利用引导词:6. 检查语法和拼写:7. 追问细节…

7天获邀请函|环境科学研究学者持加拿大麦吉尔大学Offer申报CSC

I老师要求2周内获得邀请函且指定加拿大。我们只用了7天时间就获得加拿大排名榜首的麦吉尔大学邀请函,整整提前了一半时间,效率奇高。 I老师背景: 申请类型:CSC访问学者 工作背景:某研究所研究人员 教育背景&#xf…

g++编译静态库与动态库

该文目的是基本理清一个在linux在c静态库与动态库的编译和使用 一个非常基础的一节,简单的整合了一下目前已有的文章 前提准备: 文件: touch SoDemoTest.h one.cpp two.cpp three.cpp main.cpp代码 /* SoDemoTest.h */ #ifndef _SO_DEMO_TEST_HEADE…

【Ubuntu22.04】内网部署Ubuntu Server 22.04.2

镜像下载 方式一:官网下载 https://ubuntu.com/download/server 方式二:清华镜像站 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04.2/ 方式三:百度网盘 链接: https://pan.baidu.com/s/1g24PDfAiPVsxMm7DVpERdg?pwd1020 …

myql的三种删除方式:delete truncate drop

前言 在 MySQL 中,删除的方法总共有 3 种:delete、truncate、drop,而三者的用法和使用场景又完全不同,接下来我们具体来看。 1.delete detele 可用于删除表的部分或所有数据,它的使用语法如下: delete …

独立产品灵感周刊 DecoHack #052 - 100个AI 工具导航网站

本周刊记录有趣好玩的独立产品设计开发相关内容,每周发布,往期内容同样精彩,感兴趣的伙伴可以 点击订阅我的周刊。为保证每期都能收到,建议邮件订阅。欢迎通过 Twitter 私信推荐或投稿。 ❤️ 刚换工作再加上个人原因有些自己的事…

消息队列中间件 - 详解RabbitMQ6种模式

RabbitMQ 6种工作模式 对RabbitMQ 6种工作模式(简单模式、工作模式、订阅模式、路由模式、主题模式、RPC模式)进行场景和参数进行讲解,PHP代码作为实例。 安装 客户端实现:添加扩展,执行composer.phar install命令 {"require":…