一、js混淆解密在线工具
随着前端技术的发展,javascript已经成为了web开发中不可或缺的一部分。但是,由于javascript的明文容易被解读,很多开发者会对代码进行混淆加密来保护自己的代码。同时,对于别人混淆加密的代码进行解密也成为了一项实用技能。在此,我们介绍几款比较好用的js混淆解密在线工具。
1、jdecode.com
Jdecode.com是一个在线的JavaScript混淆器和解混淆器工具网站,可以解密大部分常见的JavaScript混淆器,其还原结果相当准确。此工具提供免费版和付费版。免费版能够识别出变量名、函数名,而付费版还支持Source Map还原,可以找出原始的行号、文件名等信息。
//示例代码 function fuckyou() { debugger; console.log('fuck you!'); } fuckyou();
2、jjdecode
jjdecode是另一种在线混淆解密器,其只需要输入混淆后的js代码,点击解密,就可以得到混淆前的代码。
//示例代码 eval((function(p,a,c,k,e,d){e=function(c){return (c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--) d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--) if(k[c]) p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('2 1=3(){0.4(\'5 6!\');};1();',7,7,'console|fuckyou|function|debugger|log|fuck|you'.split('|'),0,{}))
二、js混淆解密还原教程
对于那些没有充裕资源购买js还原软件或者想学习js混淆解密原理的开发者,还原工具一定是不可或缺的。在本小节,我们对js混淆解密的还原教程进行讲解。
首先,我们需要找到虚假的语句和函数。虚假的语句和函数被混淆器添加到原代码中,以进一步混淆原代码。在这一步中,我们可以使用一些常见的技巧,比如:粘贴到编辑器中进行格式化、查看标识符是否有规律、检查是否存在有意义的变量。
接下来,我们需要找到混淆器添加的代码区块。使用一个简单的方法就是直接使用JSBeautifier。
最后一步,我们需要对混淆注入点中的代码进行还原。混淆器在注入点中添加了大量的代码。因此,对于还原这些代码,我们需要先确定注入点的位置,然后再尝试还原这些代码的具体实现。同样,还原的代码也需要反混淆、格式化并逆向还原。
三、js混淆加密
javascript混淆加密是常见的保护javascript算法的方法。其目的是通过对javascript代码进行混淆加密,使得攻击者难以理解、修改、破解javascript代码,保护设计者的知识产权。
1、混淆加密原理
混淆加密原理是通过改变javascript代码的组织、格式、变量等,使得攻击者难以理解javascript代码的含义。具体来说,混淆加密可以通过javascript语言的灵活性、DOM操作、以及javascript函数的运行方式等来进行实现。
2、常见的混淆加密方法
随着混淆加密技术的发展,已经有了很多常见的混淆加密方法。如下所示是一些常见的方法:
2.1 字符串变量替换
代码示例:
//未加密的代码 var name = "john"; console.log(name); //加密后的代码 var _0x167019=["\x6A\x6F\x68\x6E","\x6F\x6E\x63\x65","\x6C\x6F\x67"];var name=_0x167019[0x1];console[_0x167019[0x2]](name);
2.2 函数反转
代码示例:
//未加密的代码 console.log('hello'); //加密后的代码 console[_0x232e[6]](_0x232e[3]);
2.3 代码逆向
代码示例:
//未加密的代码 function sum(a,b) { return a+b; } console.log(sum(1,2)); //加密后的代码 console.log(sum(1,2));var _0x4b91=["\x6C\x6F\x67","\x73\x75\x6D","\x3B","\x2B"];function sum(_0x5a65x2,_0x5a65x3){return _0x5a65x2+_0x5a65x3;};var sum=_0x4b91[0x0];
四、js源代码的混淆包括
对于javascript混淆,我们需要知道javascript源代码的混淆包括哪些方面。
1、变量混淆
变量混淆是指对原有的变量名进行替换。比如将"userName"替换为"U",这样做可以实现对变量名的混淆,从而让异己无从下手。变量的混淆可以通过使用js混淆工具来实现。
2、字符串混淆
字符串混淆是指对原有的字符串进行替换。比如将"Hello, World!"替换为"\x48\x65\x6C\x6C\x6F\x2C\x20\x57\x6F\x72\x6C\x64\x21",这样做可以实现对字符串的混淆,从而让异己无从下手。字符串的混淆可以通过使用js混淆工具来实现。
3、代码压缩
代码压缩是指在混淆代码的基础上,对代码进行流程缩减、空格去除等处理。因此,如果想要对js代码进行解密,还要解开所有的压缩,才能看到更清晰的混淆代码。一般来说,js压缩的主要方式有冗余代码的消除、变量名还原以及禁止使用eval()等方式。
五、在线js代码混淆
在这里介绍多个在线网站,可以在线地址对js代码进行混淆、加密,同时还支持对已经混淆、加密过的代码进行逆向还原。
1、deaneden
deaneden是一个在线js源代码混淆、压缩以及在线还原的网站。此平台的混淆与还原能力很强,但是输出的代码膨胀会比较多,不太适合用来加密源代码。此平台也提供了免费版和付费版,免费版的体验虽然不如付费版,但依然可以提供一定帮助。
2、protectjs.com
protectjs.com是另一个在线JS反混淆工具,能够从混淆代码中还原出原始的源代码,此网站提供自动解密以及手动解密两种解密方式。相比其他在线解密工具,此网站更注重提供JS反混淆的教育。
总结
对于开发人员而言,javascript的混淆解密已经成为一项必要技能。通过上述的介绍,我们可以看到,js混淆解密的在线工具还是比较常用的,但是我们也需要了解混淆加密的技术原理,深入理解混淆加密之后,我们才能更好的保护自己的知识产权。