本文目錄一覽:
js代碼混淆 以及 混淆後如何使用
js代碼混淆網上有許多在線工具,你直接把代碼copy進去進行轉換就可以的,比如站長工具。如果文件太大在線可能不方便,你可以使用淘寶封裝的壓縮工具TBCompressor,網上搜一下就能找到。
對於混淆後的使用很簡單,就直接引入就可以了,不用做其他的改變。混淆後其實還是js,只不過把變量名精簡了,所以文件會小很多,而瀏覽器還是能識別的
js反混淆
你好,把eval去掉,後面加上.toString()一般就能看到原來的代碼了。
混淆過的js代碼如何還原?
1:利用IE開發人員工具(IE8開始已經自帶,IE7以前需要下載安裝IE Developer Toolbar)進行反混淆,
2:代碼實現
混淆後的測試代碼
eval(function(p,a,c,k,e,d){e=function(c){return(ca?””:e(parseInt(c/a)))+((c=c%a)35?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;}(‘1(“0-6”);2 4(){1(“0-5”)}8 3=2(){1(“0-7”)};4();3()’,9,9,’憂鬱的匹格|alert|function|b|a|反混淆測試2|反混淆測試1|反混淆測試3|var’.split(‘|’),0,{}))
開始實施:
1.新建一個網頁xxx.html
2.加入一個div容器 id=”divTest”
3.最關鍵的一步--賦值執行:(在上面混淆的代碼中,將eval()中的內容提取出來賦值(或直接打印)給document.getElementById(‘divTest’).innerText )
document.getElementById(‘divTest’).innerText=function(p,a,c,k,e,d){e=function(c){return(ca?””:e(parseInt(c/a)))+((c=c%a)35?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;}(‘1(“0-6”);2 4(){1(“0-5”)}8 3=2(){1(“0-7”)};4();3()’,9,9,’憂鬱的匹格|alert|function|b|a|反混淆測試2|反混淆測試1|反混淆測試3|var’.split(‘|’),0,{})
打開xxx.html 顯示結果:(反混淆後的代碼已經被壓縮了,去掉了換行等字符)
alert(“憂鬱的匹格-反混淆測試1”);
function a(){alert(“憂鬱的匹格-反混淆測試2”)}
var b=function(){alert(“憂鬱的匹格-反混淆測試3”)};
a();
b();
PS:使用packed這個混淆過的js都可以使用這個方法還原,找了幾個項目裡面混淆過的js都可以還原,只是去掉了換行符,
JS代碼混淆了,怎麼反混淆回去?
這不是混淆,只是使用16進制表示的ASCII碼~
單獨提取出字符串,在後面加上.toString()進行調試即可看到原本字符串。
你的這句轉碼後如下:
window[“document”][“write”](‘sc’)
相當於:window.document.write(‘sc’)
很有可能是輸出一個script標籤的代碼段的開始。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/247413.html