先貼一個(gè)混淆后的測試代碼:
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":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,{}))
反混淆方法
- 新建一個(gè)網(wǎng)頁xxx.html
- 加入一個(gè)div容器id="divTest"
- 賦值執(zhí)行:(在上面混淆的代碼中,將eval()中的內(nèi)容提取出來賦值(或直接打印)給document.getElementById('divTest').innerText )
document.getElementById('divTest').innerText=function(p,a,c,k,e,d){e=function(c){return(c<a?"":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 顯示結(jié)果:(反混淆后的代碼已經(jīng)被壓縮了寻行,去掉了換行等字符)
alert("憂郁的匹格-反混淆測試1");function a(){alert("憂郁的匹格-反混淆測試2")}var b=function(){alert("憂郁的匹格-反混淆測試3")};a();b()
經(jīng)測試發(fā)現(xiàn)使用packed這個(gè)混淆過的js都可以使用這個(gè)方法還原墨礁。
來源:互聯(lián)網(wǎng)