当前位置: 首页 > Web前端 > HTML

小红帽之jsjiami.v6:JS加密与去混淆

时间:2023-03-29 13:12:35 HTML

故事背景:《小红帽》是一个著名的童话故事,讲述了一个小女孩小红帽被恶棍恶毒攻击的故事。狼在去看望祖母的路上,终于被猎人救了下来。本文将以这个童话故事为背景,介绍JS混淆解密的过程。JS混淆解密:JSobfuscation()是指通过各种手段使JavaScript代码变得晦涩难懂,难以理解和修改。混淆可以防止代码被反编译和逆向工程,保护原始代码的安全。而JSdecrypt()指的是将混淆后的代码还原成原来可读的形式。案例代码:下面是一个简单的JS混淆案例代码:复制代码vara="red";varb="hood";varc="grandmother";functiond(e){returnMath.pow(e,2);}varf=d(3);varg=function(h,i){returnh+i;}varj=a+b+c;console.log(j+f+g(4,5));这段代码定义了三个变量a、b、c,分别赋值为字符串“red”、“hood”和“grandmother”,以及一个接受参数e并返回e的平方的函数d。该代码还定义了一个变量f,其值是使用参数3调用d函数的结果,以及一个变量g,其值是一个匿名函数,该函数接受两个参数h和i并返回它们的和。最后,代码将a、b、c相加赋值给变量j,然后将j、f和调用参数4、5的g函数的结果相加输出。下面我们将这段代码进行混淆,使其变得晦涩:Copycodevar_0xa829=["\x72\x65\x64","\x68\x6F\x6F\x64","\x67\x72\x61\x6E\x64\x6D\x6F\x74\x68\x65\x72",函数(_0x4c4bx2){返回数学[_0xa829[3]](_0x4c4bx2,2)},0x9,d=函数(_0x4c4bx4,_0x4c4bx5){返回_0x4c4bx4+_0x4c4bx5},_0xa829[2]+_0xa829[1]+_0xa829[0]];控制台[_0xa829[6]](_0xa829[7]+d(0x4,5)+d(0x3,_0xa829[4])+_0xa829[5]);通过使用字符编码和长度缩写并用单个字符替换变量和函数名称来混淆此代码。解密代码可以通过以下步骤实现:Copycodevar_0xa829=["\x72\x65\x64","\x68\x6F\x6F\x64","\x67\x72\x61\x6E\x64\x6D\x6F\x74\x68\x65\x72",函数(_0x4c4bx2){返回数学[_0xa829[3]](_0x4c4bx2,2)},0x9,d=函数(_0x4c4bx4,_0x4c4bx5){返回_0x4c4bx4+_0x4c4bx5}2]+_0xa829[1]+_0xa829[0]];console.log(_0xa829[7]+d(0x4,5)+d(0x3,_0xa829[4])+_0xa829[5]);编码后的字符恢复为可读形式,变量和函数名称恢复为原始名称。此时,生成的代码与原始版本完全相同。jsjiami.com如果对文章内容有不同的看法或者疑问,欢迎在评论区留言,或者私信我。也可以上上面的网址,最下面有我的联系方式可以详细讨论。