首页 > 其他分享 >JS混淆加密的作用

JS混淆加密的作用

时间:2022-12-20 18:31:55浏览次数:39  
标签:function 混淆 return 代码 解密 JS 加密 工具

在软件开发过程中,有时会使用代码混淆技术来使代码难以被阅读或破解。这种技术通常被用于防止恶意使用或盗用代码。

在 JavaScript 中,有许多工具可以用来混淆代码,例如 Google Closure Compiler、UglifyJS 和 Babel。这些工具会将代码进行压缩和重新排版,并且会使用各种技巧来使代码难以理解。

但是,有时我们需要解密混淆后的代码,例如当我们想要对代码进行调试或者查看原始代码时。在这种情况下,我们就需要使用解密工具来帮助我们恢复原始代码的样子。

一种常用的 JavaScript 解密工具是 在线JS解密工具。它可以帮助我们对混淆后的代码进行格式化,使其变得更易读。

下面是一个示例,展示了如何使用 在线JS解密工具解密混淆后的 JavaScript 代码。

假设我们有一段混淆后的代码如下所示:

;eval(function(p,a,c,k,e,r){e=String;if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'[01]'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('0 a(b){1 0(){1 b}}0 c(b){1 0(){1 b()}}0 d(b){1 0(){1 b()()}}0 e(b){1 0(){1 b()()()}}0 f(b){1 0(){1 b()()()()}}0 g(b){1 0(){1 b()()()()()}}0 h(b){1 0(){1 b()()()()()()}}0 i(b){1 0(){1 b()()()()()()()}}0 j(b){1 0(){1 b()()()()()()()()}}0 k(b){1 0(){1 b()()()()()()()()()}}0 l(b){1 0(){1 b()()}}',[],2,'function|return'.split('|'),0,{}));

用JS在线解密工具解密后

;
eval(function(p, a, c, k, e, r) {
e = String;
if ('0'.replace(0, e) == 0) {
while (c--) r[e(c)] = k[c];
k = [
function(e) {
return r[e] || e
}
];
e = function() {
return '[01]'
};
c = 1
};
while (c--)
if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]);
return p
}('0 a(b){1 0(){1 b}}0 c(b){1 0(){1 b()}}0 d(b){1 0(){1 b()()}}0 e(b){1 0(){1 b()()()}}0 f(b){1 0(){1 b()()()()}}0 g(b){1 0(){1 b()()()()()}}0 h(b){1 0(){1 b()()()()()()}}0 i(b){1 0(){1 b()()()()()()()}}0 j(b){1 0(){1 b()()()()()()()()}}0 k(b){1 0(){1 b()()()()()()()()()}}0 l(b){1 0(){1 b()()}}', [], 2, 'function|return'.split('|'), 0, {}));

有些加密复杂一些的光用工具是无法直接解密的,所以还需要人工解密,下边是我人工解密后的最终结果

function a(b) {
return function () {
return b
}
}

function c(b) {
return function () {
return b()
}
}

function d(b) {
return function () {
return b()()
}
}

function e(b) {
return function () {
return b()()()
}
}

function f(b) {
return function () {
return b()()()()
}
}

function g(b) {
return function () {
return b()()()()()
}
}

function h(b) {
return function () {
return b()()()()()()
}
}

function i(b) {
return function () {
return b()()()()()()()
}
}

function j(b) {
return function () {
return b()()()()()()()()
}
}

function k(b) {
return function () {
return b()()()()()()()()()
}
}

function l(b) {
return function () {
return b()()
}
}

这就是最终的源代码了。

如果对本有疑问的,欢迎大家在评论区中留言,或者给我私信。

标签:function,混淆,return,代码,解密,JS,加密,工具
From: https://blog.51cto.com/u_15781271/5956415

相关文章

  • Docker daemon.json 的配置项目合集
    vim/etc/docker/daemon.json{"authorization-plugins":[],"data-root":"",#设置docker运行时的根目录"dns":[],#设置容器的DNS地址......
  • JS 的 9 种作用域
    作用域想必大家都知道,就是变量生效的范围,比如函数就会生成一个作用域,声明的变量只在函数内生效。而这样的作用域一共有9种,其中几种绝大多数前端都说不出来。下面我们就......
  • 记录--可视化大屏-用threejs撸一个3d中国地图
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助不想看繁琐步骤的,可以直接去github下载项目,如果可以顺便来个star哈哈本项目使用vue-cli创建,但不影响使......
  • 一种安全加密文件的方式,文件可以实现自校验,防止文件损坏和篡改
    项目地址这个项目是很久以前的,当时go能力有限,写的不尽人意。刚好最近有加密文件的需求,所以就完善了相关逻辑。之前的方案还依赖Seek(offsetint64,whenceint)(int64,......
  • .Net7 自动拷贝appsettings.json到debug文件下
    IDERider在配置json时遇到路径的问题Theconfigurationfile'appsettings.json'wasnotfoundandisnotoptional.TheexpectedphysicalpathwasIConfiguration......
  • puppeteer( Nodejs 版 selenium )快速入门
    puppeteer官网:​​https://pptr.dev/​​Puppeteer中文文档(与官Puppeteer中文文档 :​​https://learnku.com/docs/puppeteer/3.1.0​​Puppeteerv1.5.0中文翻peteer......
  • Node.js 教程
     菜鸟教程:​​https://www.runoob.com/nodejs/nodejs-tutorial.html​​nodejs官网:​​https://nodejs.org/en/download/​​廖雪峰nodejs:​​https://www.liaoxuefen......
  • mvc中,js 如何直接使用后端参数
    问题比如后端传了一个boolean类型的参数,js如果直接使用这个参数,比如这么写就是错的if(${redevice}){document.getElementById('redevice').checked=true;}......
  • json提取器和beanshell处理器组合,将提取的所有id以数组返回
    1.添加json提取器2.添加beanshell处理器,并编写脚本Stringstr1=vars.get("buildid_ALL");log.info(str1);Listlist=Arrays.asList(str1.split(","));log.info(......
  • 技术分享 | InnoDB 表空间加密
    作者:秦沛本文目录:一、表空间加密概述应⽤场景加密插件加密限制注意事项二、加密表空间安装加密插件配置表空间加密查看表空间被加密的表三、更新masterencryptionkey......