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

解压一段webpack加密后的JS代码

时间:2023-03-27 14:13:38 JavaScript

源码太长,只贴出部分加密源码如下0x1fc9:function(_0x2715a2,_0x5a118b,_0x344094){const_0x23ae3e=_0x344094(`611c`);class_0x2e9b72{static[`getInstance`](){if('\x6f\x64\x74\x56\x66'===`odtVf`)返回新的_0x23ae3e();else{function_0x2198cd(){_0x12eae5[`log`](`ws\u8FDE\u63A5\u5931\u8D25`);const_0x28aee6=这个;_0x28aee6[`startWsCount`]<0x5?(this[`$message`]('\u6b63\u5728\u542f\u52a8\x77\x73\u670d\u52a1\x2e\x2e\x2e'),_0x4bc899(function(){_0x28aee6[`startWsCount`]+=0x1,_0x28aee6[`startWsCount`]>=0x3?(_0x28aee6[`startWs`](),_0x28aee6[`startWsCount`]=0x0):_0x28aee6[`initWs`]();},0x7d0)):(_0x28aee6[`ws_tips`]=`ws\u5DF2\u5C1D\u8BD5\u542F\u52A8\u5931\u8D255\u6B21\uFF0C\u8BF7\u68C0\u67E5ws\u6587\u4EF6\u8DEF\u5F84\u662F\u5426\u6B63\u5E38\uFF0C\u6216\u624B\u52A8\u542F\u52A8`,_0x3feb67(function(){_0x28aee6[`not_start_ws`]=!0x0;},0x7d0));}}207b_}const52e[0x18=`getInstance`]();_0x2715a2[`导出`]=_0x189052;}在我手动解密后,它看起来像8137:function(ref,model,expt){constencipher=expt(`611c`);类Encipher{static[`getInstance`](){returnnewencipher();}}constexa=Encipher.getInstance();ref.exports=exa;}先说一下解密思路1.加密源码的整体结构,前端只要做过,基本上一眼就能看出这是用webpack打包的,然后经过混淆和加密转换成最终的结构。加密代码先加密,再用webpack打包。2、好了,了解了这段源码的基本加密过程,我们开始解密吧。3.先把源码扔网上,先用一键解密功能解密JS代码,得到如下代码。0x1fc9:函数(_0x2715a2,_0x5a118b,_0x344094){const_0x23ae3e=_0x344094(`611c`);class_0x2e9b72{static[`getInstance`](){if('odtVf'===enew_a)return;else{function_0x2198cd(){_0x12eae5[`log`](`ws连接失败`);const_0x28aee6=这个;_0x28aee6[`startWsCount`]<0x5?(this[`$message`]('Startingwsservice...'),_0x4bc899(function(){_0x28aee6[`startWsCount`]+=0x1,_0x28aee6[`startWsCount`]>=0x3?(_0x28aee6[`startWs`](),_0x28aee6[`startWsCount`]=0x0):_0x28aee6[`initWs`]();},0x7d0)):(_0x28aee6[`ws_tips`]=`ws启动失败5次,请检查是否ws文件路径正常,或者手动启动`,_0x3feb67(function(){_0x28aee6[`not_start_ws`]=!0x0;},0x7d0));}}}}const_0x189052=_0x2e9b72[`getInstance`]();_0x2715a2[`导出`]=_0x189052;}4、可以看出这段代码对websocket功能有用,这一小段就是启动websocket服务。6.最后的结果就是上面那个,已经贴在文章开头了。结束语对文章内容有疑问或者有建议的朋友欢迎在评论区畅所欲言,或者使用私信功能给我留言。或者去jsjiami.com官网底部找我的联系方式。