2012-01-28 20 views
5

मैं इस कोड को .js फ़ाइल में आया था। यह कोड क्या है ??इस अजीब जावास्क्रिप्ट को डीकोड करें

मैंने उस फ़ाइल को अपने लोकहोस्ट वेबसर्वर पर डाउनलोड किया है। .js फ़ाइल में यह कोड रखने से मुझे google.com पर रीडायरेक्ट किया जाता है और जब मैं इस कोड पर टिप्पणी कर रहा हूं तो पृष्ठ पूरी तरह से चलता है !!

मैं समझ सकता हूं कि यह लागू करने के लिए किया जाता है कि पृष्ठ केवल सर्वर लिंक से निष्पादित किया जाना है !!!

मैं इस जेएस को कैसे डीकोड कर सकता हूं ???

[]['\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72']['\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72'](self['\x75\x6e\x65\x73\x63\x61\x70\x65']('%69%66%28%7e%6c%6f%63%61%74%69%6f%6e%2e%70%72%6f%74%6f%63%6f%6c%2e%69%6e%64%65%78%4f%66%28%27%68%74%74%70%3a%27%29%26%26%7e%6c%6f%63%61%74%69%6f%6e%2e%68%6f%73%74%2e%69%6e%64%65%78%4f%66%28%27%74%65%6d%70%6c%61%74%65%2d%68%65%6c%70%2e%63%6f%6d%27%29%29%7b%7d%65%6c%73%65%28%6c%6f%63%61%74%69%6f%6e%2e%68%72%65%66%3d%27%68%74%74%70%3a%2f%2f%77%77%77%2e%67%6f%6f%67%6c%65%2e%63%6f%6d%27%29'))() 

उत्तर

16

पाइथन एन्कोडिंग के उसी तरीके का उपयोग होता है, इसलिए मैंने इसे एक पायथन खोल में फेंक दिया।

>>> '\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72' 
'constructor' 
>>> '\x75\x6e\x65\x73\x63\x61\x70\x65' 
'unescape' 
>>> import urllib 
>>> urllib.unquote('%69%66%28%7e%6c%6f%63%61%74%69%6f%6e%2e%70%72%6f%74%6f%63%6f%6c%2e%69%6e%64%65%78%4f%66%28%27%68%74%74%70%3a%27%29%26%26%7e%6c%6f%63%61%74%69%6f%6e%2e%68%6f%73%74%2e%69%6e%64%65%78%4f%66%28%27%74%65%6d%70%6c%61%74%65%2d%68%65%6c%70%2e%63%6f%6d%27%29%29%7b%7d%65%6c%73%65%28%6c%6f%63%61%74%69%6f%6e%2e%68%72%65%66%3d%27%68%74%74%70%3a%2f%2f%77%77%77%2e%67%6f%6f%67%6c%65%2e%63%6f%6d%27%29') 
"if(~location.protocol.indexOf('http:')&&~location.host.indexOf('template-help.com')){}else(location.href='http://www.google.com')" 

तो यह कोड (स्पष्टता के लिए खाली स्थान के जोड़ने) करने पर निर्भर करता:

[]['constructor']['constructor'](
    "if (~location.protocol.indexOf('http:') && 
     ~location.host.indexOf('template-help.com')) 
    {} 
    else 
    (location.href='http://www.google.com')")() 

तो क्या यह वास्तव में क्या करता है? बचाव के लिए Node.js:

> [].constructor 
[Function: Array] 
> [].constructor.constructor 
[Function: Function] 
> 

तो [] बस एक खाली सरणी, [].constructor हमें सरणी निर्माता (जो एक Function वस्तु है) देता है, और अंत में, [].constructor.constructor हमें Function वस्तु के निर्माता देता है। वह कन्स्ट्रक्टर कुछ कोड युक्त एक स्ट्रिंग स्वीकार करता है, और इसे एक कॉल करने योग्य फ़ंक्शन में बदल देता है, जिसे तब कॉल किया जाता है (बहुत ही अंत में () नोट करें)। तो यह अंत में सिर्फ इस कोड निष्पादित करता है:

if (~location.protocol.indexOf('http:') && 
    ~location.host.indexOf('template-help.com')) 
    {} 
else 
    (location.href='http://www.google.com') 

हाँ, अगर मैं उस तरह कोड लिखा था, मैं यह भी अंधेरा करना चाहते हैं! ;)

+1

+1 अच्छा स्पष्टीकरण :) – fozylet

+0

संक्षिप्त और स्पष्ट स्पष्टीकरण ... धन्यवाद! स्वीकार किए जाते हैं !!! – Sandy505

+0

@ थॉमस मैं इस एन्कोडिंग प्रारूप में सामान्य जावास्क्रिप्ट कोड कैसे एन्कोड कर सकता हूं ?? – Sandy505

3

यह दोगुनी कोडित है, पहले% एनएन यूआरएल-शैली वर्णों के रूप में, फिर \ xnn स्ट्रिंग वर्णों के रूप में। यह करने के लिए

[]['constructor']['constructor'](
    self['unescape'](' 
    if(~location.protocol.indexOf('http:')&&~location.host.indexOf('template-help.com')){} 
    else(location.href='http://www.google.com') 
    '))() 

नोट डीकोड कि उद्धरण अब घोंसला ठीक से डिकोडिंग के बाद, और ['unescape'] पहले से ही किया गया है।

5

इस प्रयास करें ...

<html> 
<head> 
<script type="text/javascript"> 
var a="[]['\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72']['\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72'](self['\x75\x6e\x65\x73\x63\x61\x70\x65'](" + unescape('%69%66%28%7e%6c%6f%63%61%74%69%6f%6e%2e%70%72%6f%74%6f%63%6f%6c%2e%69%6e%64%65%78%4f%66%28%27%68%74%74%70%3a%27%29%26%26%7e%6c%6f%63%61%74%69%6f%6e%2e%68%6f%73%74%2e%69%6e%64%65%78%4f%66%28%27%74%65%6d%70%6c%61%74%65%2d%68%65%6c%70%2e%63%6f%6d%27%29%29%7b%7d%65%6c%73%65%28%6c%6f%63%61%74%69%6f%6e%2e%68%72%65%66%3d%27%68%74%74%70%3a%2f%2f%77%77%77%2e%67%6f%6f%67%6c%65%2e%63%6f%6d%27%29') + "))()"; 
</script> 
</head> 
<body> 
<input type=button value=click onclick="javascript:alert(a);"> 
</body> 
</html> 

जवाब है, के रूप में पहले ही बताया, है ...

[]['constructor']['constructor'](self['unescape'](if(~location.protocol.indexOf('http:')&&~location.host.indexOf('template-help.com')){}else(location.href='http://www.google.com')))() 
0

मैं जबकि templatemonster से टेम्पलेट में से एक को डाउनलोड करने के लिए इस कोड मिला। कॉम। मैंने प्रत्येक चरण की कोशिश की लेकिन मैं उस वेबसाइट को अपने स्थानीय/अपने सर्वर पर availbale नहीं बनाया था। मैंने सोचा कि फ्लैश नहीं होने पर यह कुछ जेएस हो सकता है।

ने प्रत्येक जेएस को एक के बाद हटाने की कोशिश की और फिर पाया कि वे इस कोड को अपनी फाइल के आखिरी बार पेस्ट करने के लिए पेस्ट डाउनलोड करने की अनुमति नहीं देते हैं। :)

कोड को समझने के लिए मैंने Google को खोजा और यह धागा पाया। Gr8 लेख।

अभी खुश है! मैं अब एक पटाखे हूँ।:)

कोड वे पेस्ट है:

[] [ '\ x63 \ x6f \ x6e \ x73 \ x74 \ x72 \ X75 \ x63 \ x74 \ x6f \ x72'] '\ x63 \ x6f \ x6e \ x73 \ x74 \ x72 \ X75 \ x63 \ x74 \ x6f \ x72 '()

और jQuery में^version.js

0

मैं उपयोग इस अगली बार सुझाव है URL DECODE आप आसानी से डिकोड कर सकता है वह स्ट्रिंग

if(~location.protocol.indexOf('http:')&&~location.host.indexOf('template-help.com')){}else(location.href='http://www.google.com') 

यह कोड छिपाने का एक तरीका है, और जांचें कि स्क्रिप्ट विशिष्ट डोमेन पर चल रही है या नहीं। अगर इसे कहीं भी रीडायरेक्ट नहीं किया जाता है। इस मामले में google.com

0

वह जेएस फ़ाइल जिसके बारे में आप बात कर रहे हैं वह जेएस कोड का एक टुकड़ा है जो http://templates.entheosweb.com/ अपनी वेबसाइट से चुराए जाने से इसकी वेब स्क्रिप्ट और थीम को सुरक्षित करने के लिए उपयोग करता है। जहां भी आपको वह फ़ाइल मिलती है, इसका मतलब है कि उस वेबसाइट से चोरी की गई थीम या फाइलें चोरी की गई थीं।

0

इसकी हो एक बार आप कॉपी/पेस्ट या template-help.com

बस उस अनुभाग पूरी तरह से चलाने के लिए हटाना से के रूप में टेम्पलेट फ़ाइलों को बचाने के। अगर हम कोड को डीकोड करते हैं, तो ऐसा लगता है -

[]['constructor']['constructor'](
    "if (~location.protocol.indexOf('http:') && 
     ~location.host.indexOf('template-help.com')) 
    {} 
    else 
    (location.href='http://www.google.com')")() 

तो इसे हटाएं और आनंद लें।

संबंधित मुद्दे