首先說清楚一個概念, JavaScript 不能做到完全加密,就算加密你也得瀏覽器運行,所以沒有100%
可以加密的 JavaScript ,除非你不是運行用的。
JS 加密講解
本站其實有幾個對應的 JS加密,下面會一一說明,接下來我會收集并且對原有加密做升級。下面會用本站的各種加密來做演示。
演示JS 腳本:
(function(w, d) {
w.info = "這是一個高級加密的方式,加密后不能恢復,請保存好源碼。";
d.adinfo = "站長接手動加密,保衛(wèi)你的 js。";
})(window, document);
eval加密
最普通的加密,就是通過 eval 來實現解密:http://www./js.html
這個方式比較好解密,然后最常見的JS安全加密方式是多次加密;
優(yōu)點:運行速度較快,并且偽裝性比較強。
缺點:但是由于是通用的方式,所以大家都了解套路怎么解密,上面網址都可以做 JS加密和JS解密,也是非安全的加密。
加密展示(加密2次):
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'[24-7]'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('eval(2(p,a,c,k,e,r){e=String;5(\'0\'.6(0,e)==0){7(c--)r[e(c)]=k[c];k=[2(e){4 r[e]||e}];e=2(){4\'^$\'};c=1};7(c--)5(k[c])p=p.6(new RegExp(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);4 p}(\'(2(w,d){w.info="這是一個高級加密的方式,加密后不能恢復,請保存好源碼。";d.adinfo="站長接手動加密,保衛(wèi)你的 js。"})(window,document);\',[],1,\'\'.split(\'|\'),0,{}))',[],8,'||function||return|if|replace|while'.split('|'),0,{}))
16進制加密(ASCII)
ASCII碼的16進制 JS 加密方式:http://www./jscodeconfusion.html
這種加密,也很好解密,得看你知道不知道套路。因為是16進制,瀏覽器默認支持16進制轉換,所以在 瀏覽器 輸出,就能看到原文。
加密展示:
(function(rd1, XXUSN2) { rd1["\x69\x6e\x66\x6f"] = "\u8fd9\u662f\u4e00\u4e2a\u9ad8\u7ea7\u52a0\u5bc6\u7684\u65b9\u5f0f\uff0c\u52a0\u5bc6\u540e\u4e0d\u80fd\u6062\u590d\uff0c\u8bf7\u4fdd\u5b58\u597d\u6e90\u7801\u3002"; XXUSN2["\x61\x64\x69\x6e\x66\x6f"] = "\u7ad9\u957f\u63a5\u624b\u52a8\u52a0\u5bc6\uff0c\u4fdd\u536b\u4f60\u7684 \x6a\x73\u3002"; })(window, window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]);
aaencode JS 加密
aaencode JS 加密方式:http://www./aaencode.html
這種加密,看上去是最安全的,缺點體積大,加密后的代碼是原來代碼的 N 倍。適合做核心代碼加密,因為過多代碼去做加密,會導致瀏覽器內存溢出。
加密展示:
?ω??= /`m′)? ~┻━┻ //*′?`*/ ['_']; o=(???) =_=3; c=(?Θ?) =(???)-(???); (?Д?) =(?Θ?)= (o^_^o)/ (o^_^o);(?Д?)={?Θ?: '_' ,?ω?? : ((?ω??==3) +'_') [?Θ?] ,???? :(?ω??+ '_')[o^_^o -(?Θ?)] ,?Д??:((???==3) +'_')[???] }; (?Д?) [?Θ?] =((?ω??==3) +'_') [c^_^o];(?Д?) ['c'] = ((?Д?)+'_') [ (???)+(???)-(?Θ?) ];(?Д?) ['o'] = ((?Д?)+'_') [?Θ?];(?o?)=(?Д?) ['c']+(?Д?) ['o']+(?ω?? +'_')[?Θ?]+ ((?ω??==3) +'_') [???] + ((?Д?) +'_') [(???)+(???)]+ ((???==3) +'_(?Д?)+'_') [(???)+(???)]+ (?Д?) ['o']+((???==3) +'_') [?Θ?];(?Д?) ['_'] =(o^_^o) [?o?] [?o?];(?ε?)=((???==3) +'_') [?Θ?]+ (?Д?) .?Д??+((?Д?)+'_') [(???) + (???)]+((???==3) +'_') [o^_^o -?Θ?]+((???==3) +'_') [?Θ?]+ (?ω?? +'_') [?Θ?]; (???)+=(?Θ?); (?Д?)[?ε?]='\\'; (?Д?).?Θ??=(?Д?+ ???)[o^_^o -(?Θ?)];(o???o)=(?ω?? +'_')[c^_^o];(?Д?) [?o?]='\"';(?Д?) ['_'] (???);//已經截斷
jjencode JS 加密
jjencode JS 加密方式:http://www./jjencode.html
這個和 jjencode 類似,都是日本人寫的。也是看上去很安全。加密是原來代碼 N 倍,適合做核心代碼加密。同樣做大量的 JavaScript 加密會導致瀏覽器內存溢出。
加密展示:
sojson=~[];sojson={___:++sojson,$$:(![]+"")[sojson],__$:++sojson,$_$_:(![]+"")[sojson],_$_:++sojson,$_$:({}+"")[sojson],$_$:(sojson[sojson]+"")[sojson],_$:++sojson,$$_:(!""+"")[sojson],$__:++sojson,$_$:++sojson,$__:({}+"")[sojson],$_:++sojson,$$:++sojson,$___:++sojson,$__$:++sojson};sojson.$_=(sojson.$_=sojson+"")[sojson.$_$]+(sojson._$=sojson.$_[sojson.__$])+(sojson.$=(sojson.$+"")[sojson.__$])+((!sojson)+"")[sojson._$]+(sojson.__=sojson.$_[sojson.$_])+(sojson.$=(!""+"")[sojson.__$])+(sojson._=(!""+"")[sojson._$_])+sojson.$_[sojson.$_$]();//已經截斷
obfuscator JS 加密
最新開發(fā)的 JS 加密:http://www./javascriptobfuscator.html
特點,輕量級,也是數組編碼+ASCII16
進制。運行速度快,變量和方法名做不到可逆。就是解析不到原來的方式,但是有改良空間。
加密展示:
var _0x9272=["\x69\x6E\x66\x6F","\u8FD9\u662F\u4E00\u4E2A\u9AD8\u7EA7\u52A0\u5BC6\u7684\u65B9\u5F0F\uFF0C\u52A0\u5BC6\u540E\u4E0D\u80FD\u6062\u590D\uFF0C\u8BF7\u4FDD\u5B58\u597D\u6E90\u7801\u3002","\x61\x64\x69\x6E\x66\x6F","\u7AD9\u957F\u63A5\u624B\u52A8\u52A0\u5BC6\uFF0C\u4FDD\u536B\u4F60\u7684\x20\x6A\x73\u3002"];(function(_0x2841x1,_0x2841x2){_0x2841x1[_0x9272[0]]= _0x9272[1];_0x2841x2[_0x9272[2]]= _0x9272[3]})(window,document);
說說解密 JS
上面的 JS 都是可以解密的,再說一遍,所有的 js 都是可以解密的,沒有難度,只有套路深不深,我也遇到幾個套路深的,解過幾個,也有幾個沒解,不是解不開,是條件問題,比如只給了我一部分代碼,有的時候是解不開的。
解密注意技巧:
1.最好是沒報錯:這種如果里面沒做try...catch
這種JS會相對好解密。如果有對 JS 做 try...catch
處理,只是錯誤不給你看見,這種也算是套路。
2. JS 最好是完整的:有的 JS 不完整也可以解密,因為這個 JS 不是依賴運行的,但是如果是依賴運行的,就解密不了,或者說難度很大。舉個例子,他把 JS 做 DES 加密,然后秘鑰是128位的,秘鑰在頁面里,或者在其他地方,沒給你,你怎么解密?
3.不要操之過急,解密一點測試一點,怕有錯誤,你解密多了,你都不知道是哪一步錯了。
4.要判斷 JS 的運行環(huán)境,比如依賴頁面里的一些變量(隱含域),或者 cookie ,甚至有依賴動作的(通過一個必要動作,生成秘鑰)。
總之解密先要搞清楚套路,你搞清楚后就迎刃而解了。
JS 人工解密
站長為了縮減開支,現在 RMB100起,按難度收費,來幫助大家做 JS 解密處理,基本上都可以解密,只不過有的難度較大。
具體介紹:JS 人工解密介紹
- 不得利用 JavaScript 解密結果從事非法活動,只可用來學習和技術交流。
- 只對密文 JavaScript 進行解析,保證真實性,但不保證完全能運行,因為還涉及到依賴關系,可能需要幾個 JS 腳本才能一起運行。
- 只接受先錢或者部分作為定金方式付款,不提供先解密后付款服務。
這個網站是我的,我不會為幾百塊錢騙你,另外,萬一解不了,我會全額退你錢。
版權所屬:SO JSON在線解析
原文地址:https://www./blog/269.html
轉載時必須以鏈接形式注明原始出處及本聲明。