小红帽的JS密码jsjiami.v6:混淆和逆向

news/2025/2/14 6:57:24/

故事背景:

《小红帽》是一个著名的童话故事,讲述了小女孩小红帽在去拜访奶奶途中,遭到了狼的恶意袭击,最终被猎人救出的经历。本文将以这个童话故事为背景,介绍JS混淆和解密的过程。

JS混淆和解密:

JS混淆(Obfuscation)是指通过各种手段,使JavaScript代码变得晦涩、难以理解和修改。混淆可以防止代码被反编译和逆向工程,保护原始代码的安全性。而JS解密(Deobfuscation)则是指对混淆的代码进行还原,使其恢复到原始的可读形式。

案例代码:

以下是一个简单的JS混淆案例代码:

Copy codevar a = "red";
var b = "hood";
var c = "grandmother";function d(e) {return Math.pow(e, 2);
}var f = d(3);var g = function(h, i) {return h + i;
}var j = a + b + c;console.log(j + f + g(4, 5));

这段代码定义了三个变量a、b和c,分别赋值为字符串“red”、“hood”和“grandmother”,以及一个函数d,该函数接受一个参数e并返回e的平方。代码还定义了变量f,其值为调用d函数时传入参数3的结果,以及变量g,其值为一个匿名函数,接受两个参数h和i并返回它们的和。最后,代码将a、b和c相加并赋值给变量j,然后将j、f和调用g函数时传入参数4和5的结果相加并输出。

下面我们将对这段代码进行混淆,使其变得晦涩难懂:

Copy code
var _0xa829=["\x72\x65\x64","\x68\x6F\x6F\x64","\x67\x72\x61\x6E\x64\x6D\x6F\x74\x68\x65\x72",function(_0x4c4bx2){return Math[_0xa829[3]](_0x4c4bx2,2)},0x9,d=function(_0x4c4bx4,_0x4c4bx5){return _0x4c4bx4+_0x4c4bx5},_0xa829[2]+_0xa829[1]+_0xa829[0]];console[_0xa829[6]](_0xa829[7]+ d(0x4,5)+d(0x3,_0xa829[4])+_0xa829[5]);

这段代码是通过使用字符编码和长度缩写,以及将变量名和函数名用单个字符替换的方式达到混淆的目的。对代码进行解密,可以通过以下步骤实现:

Copy codevar _0xa829=["\x72\x65\x64","\x68\x6F\x6F\x64","\x67\x72\x61\x6E\x64\x6D\x6F\x74\x68\x65\x72",function(_0x4c4bx2){return Math[_0xa829[3]](_0x4c4bx2,2)},0x9,d=function(_0x4c4bx4,_0x4c4bx5){return _0x4c4bx4+_0x4c4bx5},_0xa829[2]+_0xa829[1]+_0xa829[0]];
console.log(_0xa829[7]+ d(0x4,5)+d(0x3,_0xa829[4])+_0xa829[5]);

将编码后的字符还原为可读形式,并将变量名和函数名还原为原先的名称。此时,得到的代码与原始版本的代码完全一致。

总结:

JS混淆可以在一定程度上增强代码的安全性,但也会降低代码的可读性和可维护性。因此,在进行混淆之前,需要慎重考虑代码的实际需求和安全性风险,并选择合适的混淆技术和工具。同时,解密混淆代码也是一项具有挑战性和学习价值的任务,可以帮助开发者深入理解和熟练掌握JavaScript语言的特性和机制。

jsjiami.com

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

也可以到上方网站,底部有我联系方式详谈。


http://www.ppmy.cn/news/554291.html

相关文章

红帽linux安装教程

说明:本次安装在Vmware14.0中安装,所使用的镜像文件为rhel-server-7.2-x86_64-dvd.iso 一、创建虚拟机: 1、创建新的虚拟机: 2、完成虚拟机的引导 (1)选择自定义、点击下一步。 (2&#xff…

Shellcode免杀,过360、火绒、windows-Defender

shellcode简介 Shellcode,顾名思义是一段拿来执行的代码片段,我们可以使用Shellcode来完成我们需要的任务 弹窗的代码,可以被认为是一段Shellcode,获取某个模块的基址的代码,也可以被认为是一段Shellcode,…

杀毒软件和防火墙不得不扯的蛋

在许多人的思想中,特别是电脑的初学者,都对防火墙有一种错误的认识。即分不清什么是防火墙以及杀毒软件,认为杀毒软件就可以代替防火墙,所以就掉以轻心,成了网络的受害者。其实杀毒软件和防火墙有很大的不同。 虽然两…

使用red hat小红帽搭建dhcp服务器详解

使用red hat小红帽搭建dhcp服务器详解 DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段lP地址范围,客户机登录服务器时就可以自动获得服务器分配的lP地址和子网掩码。 DHCP协议采用客户端/服务器模型,主…

红帽系统下安装软件的方法

从Windows 转到 Linux的同学,一个比较烦恼的事情就是如何安装软件的问题,在Windows环境中,下载安装程序,双击,下一步,下一步。。。done!基本闭着眼就能完成。 而在Linux下,有时候即…

小红帽

Description 有一群喜欢带小红帽的家伙举行了一场别开生面的聚会,然而某些人被邪恶的WM讲帽子上涂了大灰狼的图标,可是每个人看不到自己头上的帽子有没有被涂,他们只能看到其他人头上的帽子是不是大灰狼的图案,现在告诉你每个人看…

linux 红帽 服务dns,Linux小红帽搭建dns服务器

DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名…