यह प्रश्न एक प्रश्न शीर्षक में संक्षेप में प्रस्तुत करना कठिन है
अद्यतन मैंने एक JSField बनाया है जो इस प्रश्न से निकाले गए अक्षरों के आधार पर आपके इनपुट से एक अस्पष्ट स्ट्रिंग बनाता है: आप इसे यहाँ तक पहुँचा सकते हैं , या एक आसान तरीका होगा?
मैं हाल ही में इस प्रोफ़ाइल में obfuscated जावास्क्रिप्ट का एक मजेदार सा आया है जो इस तरह दिखता है:
javascript:[[]+1/!1][1^1][1>>1]+({}+[])[1<<1^11>>1]+([]+!!-
[])[1<<1]+[/~/+{}][+!1][-~1<<1]+([]+/-/[(!!1+[])[1>>1]+(!!1
+[])[1<<1^1]+(!1+[])[1|1<<1]+(!!1+[])[1^1]])[1^11<<1]+([,][
~1]+[])[1-~1]+[[]+{}][!1.1%1][11111.1%11.1*111e11|!1]+(/1/+
1/[1<1][1%1])[1^11]+[[],[]+{}][1][+1]+(/<</[1]+[])[1/1.1&1]
आश्चर्य को बर्बाद करने के लिए क्षमा करें, लेकिन जब इसका मूल्यांकन किया जाता है तो यह इसे वापस करता है:
"I love you" in Chrome
"I lone you" In Firefox
"I lo[e you" in IE10
जिस तरह से टूट जाने पर यह काम करता है, वह संदेशों की एक श्रृंखला उत्पन्न करना और उनमें से अक्षरों को इस तरह खींचना है (उदाहरण के रूप में "I" का उपयोग करके):
[]+1/!1
returns
"Infinity"
then
[[]+1/!1]
creates this array:
["Infinity"]
then
[[]+1/!1][1^1]
Takes the first (1^1 == 0) element of that array
"Infinity"
finally
[[]+1/!1][1^1][1>>1]
Takes the first (1>>1 == 0) char of that string
"I"
उत्पन्न होने वाले अन्य तारों में शामिल हैं:
({}+[]) -> "[object Object]" (where the space comes from)
([]+!!-[]) -> "false" (used for it's "l")
[/~/+{}][+!1] -> "/~/[object Object]" (this is used for an "o")
(/<</[1]+[]) -> "undefined"
मैं "एन" और "[" के लिए एक प्रतिस्थापन खोजने में रुचि रखता था और इसके साथ आया:
String.fromCharCode(('1'.charCodeAt(0)<<1)+(10<<1))
जिसे मैं 1 और 0 का उपयोग करने की भावना में महसूस करता हूं, लेकिन मूल कोड के अधिक सुरुचिपूर्ण पहलुओं में से एक का उल्लंघन करता है जो कि तार के साथ कुछ भी नहीं करने की उपस्थिति है। क्या किसी और को इस बात का अंदाजा है कि "v" कैसे उत्पन्न होता है जो मूल ओफ़्फ़ुसेटेड कोड के साथ है?
यहां कुछ अतिरिक्त जानकारी दी गई है जो कई प्रतिभाशाली जावास्क्रिप्ट प्रोग्रामर को देखने के बाद मिली है
फ़ायरफ़ॉक्स रिटर्न "मैं तुम्हें अकेला" इस लाइन के कारण:
([]+/-/[(!!1+[])[1>>1]+(!!1+[])[1<<1^1]+(!1+[])[1|1<<1]+(!!1+[])[1^1]])[1^11<<1]+
[1^11<<1]
इसमें से एक विशिष्ट चरित्र को ट्रिम करता है:
([]+/-/[(!!1+[])[1>>1]+(!!1+[])[1<<1^1]+(!1+[])[1|1<<1]+(!!1+[])[1^1]])
जो इस का मूल्यांकन करता है:
"function test() {
[native code]
}"
ऐसा लगता है कि हमारे पास हमारा "वी" हो सकता है !!!
Chrome "I love you" देता है, क्योंकि एक ही कोड इसे वापस करता है:
"function test() { [native code] }"
इससे पहले कि प्रश्न "वास्तविक प्रोग्रामिंग समस्या" के साथ संदिग्ध कनेक्शन के लिए बंद हो जाए, मैंने सोचा कि मैं एक सारांशित समाधान जोड़ूंगा जो @ Supr , @ Cory's और @ Alpha123's , निहारना पर बनाता है :
alert([[]+1/!1][1^1][1>>1]+({}+[])[1<<1^11>>1]+(
[]+!!-[])[1<<1]+[/~/+{}][+!1][-~1<<1]+[([]+/-/[(
!!1+[])[1>>1]+(!!1+[])[1<<1^1]+(!1+[])[1|1<<1]+(
!!1+[])[1^1]])[1+(1^(11+1+1)<<1)],([]+/-/[(!!1+[
])[1>>1]+(!!1+[])[1<<1^1]+(!1+[])[1|1<<1]+(!!1+[
])[1^1]])[1^11<<1],([]+/-/[(!!1+[])[1>>1]+(!!1+[
])[1<<1^1]+(!1+[])[1|1<<1]+(!!1+[])[1^1]])[1^(11
+1+1)<<1]][((([]+/-/[(!!1+[])[1>>1]+(!!1+[])[1<<
1^1]+(!1+[])[1|1<<1]+(!!1+[])[1^1]])[(1<<1<<1<<1
)+1<<1]==({}+[])[1^1])*1)+((([]+/-/[(!!1+[])[1>>
1]+(!!1+[])[1<<1^1]+(!1+[])[1|1<<1]+(!!1+[])[1^1
]])[(1^11<<1)-1]==({}+[])[1^1])<<1)]+([,][~1]+[]
)[1-~1]+[[]+{}][!1.1%1][11111.1%11.1*111e11|!1]+
(/1/+1/[1<1][1%1])[1^11]+[[],[]+{}][1][+1]+(/<</
[1]+[])[1/1.1&1])
कोड की जटिलता और यह उत्पन्न होने वाले संदेश को देखते हुए यह लगभग जावास्क्रिप्ट इंजन की तरह है जो आपको बता रहा है कि आप इसे कितना खास बनाते हैं :)
function test() { [native code] }