2009-04-07 5 views
15

निम्नलिखित obfuscated सी कोड शब्दों को "क्रिसमस के 12 दिनों" में मुद्रित करता है।मुख्य के लिए तीन तर्क, और अन्य obfuscating चाल

मैं यह समझने की कोशिश कर रहा था कि यह कैसे काम करता है। मैं मूल रूप से पूरी तरह खो गया हूँ। शुरुआती कॉल में मुख्य रूप से तीन अलग-अलग तर्कों का महत्व क्या है, पहली वापसी के बाद वर्णों की श्रृंखला, मुख्य कॉल को नकारात्मक संख्यात्मक तर्क? Eek!

मैं ज्यादातर इस सोच को कर रहा हूं शायद मैं सी भाषा के कुछ रोचक कोनों को सीखूंगा, इसलिए उस नस में जवाब सबसे ज्यादा स्वागत है।

#include <stdio.h> 
main(t,_,a)char *a;{return!0<t?t<3?main(-79,-13,a+main(-87,1-_, 
main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13? 
main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72?main(_,t, 
"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#\ 
;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l \ 
q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# \ 
){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' \ 
iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \ 
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# \ 
}'+}##(!!/") 
:t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a=='/')+t,_,a+1) 
    :0<t?main(2,2,"%s"):*a=='/'||main(0,main(-61,*a, 
"!ek;dc [email protected]'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);} 
+0

क्या यह आईओसीसीसी से है? – Zifre

+0

याद नहीं किया जा सकता है कि मुझे यह कहां मिला। माफ़ कीजिये। – Leonard

+1

हां, यह आईओसीसी से है: http://www.ioccc.org/1988/phillipps.c –

उत्तर

12

कोई पहले से ही चला गया है और इसे उलट दिया है: http://research.microsoft.com/en-us/um/people/tball/papers/xmasgift/। बस इसके माध्यम से पढ़ें। यह समझाएगा कि यह सब कैसे काम करता है।

+0

उस उद्घाटन रेखा, वेब खोज, विकिपीडिया, और मैं एक ही लेख में समाप्त हुए कुछ अक्षर समाप्त हुए। +1 – gbarry

+0

@gbarry: उसी दृष्टिकोण ने मुझे http://udel.edu/~mm/xmas/ –

1

कुछ यूनिक्स प्रणालियों केवल तर्क गणना और मुख्य करने के लिए तर्क, लेकिन यह भी पर्यावरण के लिए एक वेक्टर (http://en.wikipedia.org/wiki/Main_function_(programming) देखें) उत्तीर्ण नहीं होते हैं। मुझे पूरा यकीन है कि इस obfuscated उदाहरण की उम्मीद है।

मुझे नहीं लगता कि आप इस तरह के obfuscated कोड से ज्यादा सीख सकते हैं। यह शायद obfuscated c contest के लिए एक प्रतियोगी था।

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