2012-07-10 75 views
0

我該如何解碼這個JS?我知道它做了什麼(用警報檢查它),並想解密和編輯它。我該怎麼做?如何解密這個JS?

這是什麼類型的加密?我知道那裏有很多解密器,但是他們沒有設法解密這個解密器。

順便說一聲我是一個新手。

function xViewState() { 
    var a = 0, 
     m, v, t, z, x = new Array('9091968376', '8887918192818786347374918784939277359287883421333333338896', '877886888787', '949990793917947998942577939317'), 
     l = x.length; 
    while (++a <= l) { 
     m = x[l - a]; 
     t = z = ''; 
     for (v = 0; v < m.length;) { 
      t += m.charAt(v++); 
      if (t.length == 2) { 
       z += String.fromCharCode(parseInt(t) + 25 - l + a); 
       t = ''; 
      } 
     } 
     x[l - a] = z; 
    } 
    document.write('<' + x[0] + ' ' + x[4] + '>.' + x[2] + '{' + x[1] + '}</' + x[0] + '>'); 
} 
xViewState(); 
+2

它不被加密而是模糊處理。 – mplungjan 2012-07-10 12:27:22

+0

不是很好,你已經知道它做了什麼,只需用去混淆的代碼替換它並編輯即可。如果不能接受,請添加解釋爲什麼您需要編輯混淆版本。 – Esailija 2012-07-10 12:29:06

回答

0

這不是加密,它是混淆。現在你知道它寫出,失去了模糊處理,只寫了你想要的東西,而不是...

document.write('<style undefined>.yourstylename{position:absolute;top:-9999px}</style>'); 

混淆的工作原理是簡單地列出所涉及的一切ASCII碼,約20偏移(每個陣列變化元素),以2位十進制數表示。這是非常基本的。

因此:

"style" 
-> 115, 116, 121, 108, 101 (ASCII codes) 
-> 90, 91, 96, 83, 76 (offset of 25 in this case) 
+0

謝謝。它仍然在JS中是非常重要的。你能告訴我一個工具,我可以混淆更多的代碼嗎? – HiddenChampion 2012-07-10 12:29:49

+0

好的,但即使你直接寫出來,它仍然在JS中。混淆只會隱藏一部分人,任何擁有DOM檢查員的人都可以看到寫出來的內容。 – 2012-07-10 12:30:36

+0

據我可以看到這個部分'<'+ x [0] +''+ x [4] +'>表示