Strict Standards: Non-static method Soojung::addReferer() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/settings.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/lifthrasiir/sites/sapzil.info/soojung/settings.php:79) in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Counter.class.php on line 63

Strict Standards: Non-static method Entry::getEntry() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/entry.php on line 51

Strict Standards: Non-static method Soojung::entryIdToFilename() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Entry.class.php on line 182

Strict Standards: Non-static method Soojung::queryFilenameMatch() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Soojung.class.php on line 55
TokigunStudio3 | 블로그: 여행 동안의 삽질 코딩 결과물

내용으로 바로 넘어 가기


TokigunStudio3

228 / 3282   


더 이상 이 블로그는 운영되지 않습니다. 새 블로그로 가 주세요.

여행 동안의 삽질 코딩 결과물

1688/04/20 AM 11:02 | 개발/obfuscation | 6 comments | 0 trackbacks | AllBlog: vote, to pocket

* RSS 리더기로 보시는 분은 꼭 포스트를 직접 보셔서 전체 내용을 보시길 바랍니다 :)

아래 프로그램은 여행 갔다 올 동안 차 안에서 + 모텔-_- 안에서 신나게 했던 삽질의 결과물이다. Whitespace라고 공백 문자(공백, 탭, 개행문자)로만 이루어진 언어가 있는데, 이 프로그램은 이 언어의 인터프리터이다. (거기에 몇 가지 툴도 함께 있음) 그런데... 보시면 알겠지만 이 프로그램은 정말 뭔가 삽질스럽다는 느낌이 들 것이다.

도대체 뭔 삽질을 했는 지는 직접 보시라!

'                                            20041208                                      ';from string import*;                                 r=replace;R=(r(r(r(r(r(r(r(r(r(r(
                             r(r(r(r(r(r(r(r(r("def N#:?p=[0]?whV p["
                         "H]<2:p+=[r#]?^turn((p[1]H)%3H)*^duce(F x,y:x*"
                      "2+y,p[2:H],0)\ndef L#:?p=(0,)?whV p[H]<2:p=p+(r#,)?"
                    "^turn p[1:H]\ndef M(l):?v=^duce(F a,b:a*2+b,l,0L)?if 7&"
                  "Jl)C v==0:^turn'label%d_%s'%(Jl)&3,hex(v)[2:HQ?else:^turn "         ###############################
                "j([`chr(v>>k&255)`[1:H]fC k $ range(Jl)-8,H,-8)Q\nfrom sys imp"      # TokigunStudio presents        #
              "Ct*;from Str$gIO impCt*;X='push,dup,copy,swap,pop,slide,add,sub,m"     # Whitespace 0.3 Implementation #
            "ul,div,mod,stCe,^trieve,c""all,jmp"",jz,jn,^t,halt,putchar,putP,getch"   # by Kang Seonghoon (Tokigun)   #
           "ar,getP'.splR(',~;Y='E,02"  "0,010," "021,022,012,1E0,1E1,1E2,1010,1011"   ##  ###########################
          ",110,111,201,202,210,211,"    "212,2"  "22,12E,1201,1210,1211'.splR(',~;Z"   # #
         "='101EEEEE2222EEE';v=argv"     "[1:];"   "n,=Jv)B[v[0][0]=='-'B{'-c':1,'-d'"  ##
        ":2,'--':0}.get(v.pop""(0),"      "3)C "    "0]C[3];j=''.jo$;x=exR\nif n>2 C[1"
        ",2,2][n]!=Jv):prP'To""kig"        "unS"     "tudio WhRespace 0.3 Implementati"
       "onGby Kang Seonghoon" " <"          "tok"      "igun@gmail.com>GGUsage: python "
       "%s <fV>G   C: pytho"  "n "           "%s"         " [-c|-d] <$fV> <outfV>GGno ar"
      "g\\texecute whRespac"  "e"              ""           " c""ode.G-c\\tcompV whRespa"
      "ce assembly code.G-d"  ""                      "\\tdecomp" "V whRespace assembly c"
      "ode.'%(argv[0],argv"                        "[0Q"";x(0)\nt" "ry:s=fV(v[0],'r~.^ad#;f=n B fV(v[1"
      "],'w~;v=tupA(v)\nex" "cept:"               "pr" "P'c"   "an"   "not o"  "pen fV.';x"         "(1)\nif"
      " n""==1:?prP'co""m""pV"" ' '"                  "%s "      "t"   "o %s.."  ".'%v,;N="               "F n:n"
      " " "B('\\t '[n>" + "" "0]"                     "+N(a"   "" ""    "bs("  "" "n)/2)[1:"                 "H]+' '"
       ""  "'\\t'[n%2]"  "" "+'"                      "G~C'G';L=" ""     "F "  "" "l:j([j(["                     "' \\"
       ""  "t'[Cd" "(v" ""  ")>>"  ""                 "k&1]fC k " ""     "$ "  "" "range(7,H"                       ",H)"
        "QfC ""v " "$ " ""  "lQ+'G'?"                 "fC l $ s."        ""       "splRl$es#"                          ":"
      "? l" "" "=" +"(" ""   "';'$ l"                 " B l[:l.f"                "$d(';~]C l)"                           "."
     "sp"       "" +  "l"    "R#;Jl)"                  "B':'==l"            "[" "0][H]B f.wrRe"                            ""
    "("            +   ""     "'G  "                                     "'+" "L(l.pop(0)[:HQ)"
   "?"             +   ""                ""                            " "  "if Jl):p=X.$dex(l["
  ""                +  ""               ""                            "" "0].lower#);p+1 B Jl)>("
 ""                  + ""                ""                          "Z[p]>'0~B f.wrRe(j([' \\tG'"
""                   "["                                            "P(k)]fC k $ Y[p]Q+(Z[p]>'0'B"
""                   "(0"                  ",F a:N(P"              "(a)),L)[P(Z[pQ](l[1QC'~)?f.clo"
                     "se#"               ";prP'done"             ".';x(0)\nelif n:prP'decompV %s to"
                    " %s..."                "'\45"             +"v,\ns=Str$gIO(j([{32:'0',9:'1',10:'"
                    "2'}.get("                               "C" "d(c),'~fC c $ sQ);r=F:P(s.^ad(1));W"
                    "=F h:h==s.^"                          "a"   "d(Jh))C s.seek(i,0);c=[];p={}\nwhV[N"
                   "one]!=c[H:]:?i=s"                   ".t"     "ell#?if W('2E~:l=L#;p[l]=Jc);n B f.wr"
                   "Re(M(l)+':G~?else:v="            "^d"        "uce(F a,b:a C W(Y[bQB(b,(P,N,L)[P(Z[bQ"
                   "]#),range(23),0);c+=[v];n B v B f"            ".wrRe('  '+X[v[0]]+(Z[v[0]]>'0'B(' '+("
                  "0,str,M)[P(Z[v[0]Q](v[1Q)C'"                   "~+'G~\nif n:f.close#;prP'done.';x(0)\ns"
                  "=[];h={};q=[];u=s.append;U="                   "F:Js)B s.pop#;i=k=0;c.pop#\nwhV i<Jc)B k"
                 "H8:?k,v=c[i];i+=1?if k==0:u("                    'v)"1:n=D;u(n);u(n)?elif(k==2)&(v>0):u(s['
                 '-vQ"3:n=D;m=D;u(n);u(m)"4:D"'                       '5:s[-vH:H]=[]"6:u(D+D)"7:u(-D+D)"8:u(D*'
                'D)"9:n=D;u(D//n)"10:n=D;u(D%'                           'n)"11:n=D;h[D]=n"12:u(h.get(D,0))"13:'
                'q+=[i];i=p[v]"14:i=p[v]"1'                                 '5 B D==0:i=p[v]"16 B D<0:i=p[v]"17 '
               'B Jq):i=q.pop#"19:stdo'                                      "u"   't.wrRe(chr(D))"20:stdout.wrRe'
               '(str(D))"21:h[D'     ""                                   "]="           'Cd(std$.^ad(1))"22: ? v='
              "''? whV('"            ""                                 "0"                    "'+v[v[0:1]=='-':Q.i"
              "sdigR"                 ""                              "#"                          ":v+=std$.^ad(1)?"
              " h"                    ""                      "[D]=P(v"                               "[:H]+'0~/10",""
             "~",                      ""            "')"),"^",   "r"                                   "e"),"V","iA")
             ,""                        ""                      "R"                                      ,"it"),"Q","]"
             ""                          ""                    ""                                        ")"),"P","$t"),
            ""                            ""         "J","An("),                          ""              "H","-1" ),"G",
           ""                              "\\n"),"F"       ""                          ,""               "lambda"),"E",""
           ""               ""              ""            "0"                          ""       ""        "0"),"D","U#"),""
          ""                ""               ""         "C"                           ""       ""         ,"or"),"B","and")+
          ""                ""                ""      ,""                            ""        ""          "A","le"),"?",""+
          ""                ""                 ""    ""                              ""       ""           "\n "),"$", "in"),
          ""                ""                  "" ""                               ""       ""            "#","()"),'"',"\n "
         ""                  ""  ""              "e"                        ""      ""      ""             "lif k=="));exec("f"
         ""                  "" ""                                           ""    ""      ""               "rom sys import*\ni"
         ""                  "" ""                                           ""    ""     ""                "f['--source']==arg"
        ""                   "v["                                            ""   ""    ""                   "1:2]:print'# Tokig"
        ""                    "u"                                             ""  ""   "n"                   "Studio Whitespace "
        ""                    ""                                               "" ""  ""                      "Implementation\\n'"
        ""                    ""                                               "" "" ""                       "+R\nelse:exec R\n")

더 자세한 내용은 http://pandora.sapzil.info/dev/obfuscation/tenma.php에서 볼 수 있다. :)

TrackBack URL: http://sapzil.info/soojung/trackback.php?blogid=242

Comment: 디토 (2004/12/09 PM 06:26)

헉! 멋지십니다. -_-;;

Comment: 토끼군 (2004/12/09 PM 06:38)

디토: :)

Comment: d3m3vilurr (2004/12/10 PM 04:25)

....헉?!

Comment: 토끼군 (2004/12/10 PM 06:41)

d3m3vilurr: 다른 얘기가 없으시군요. ;;;

Comment: Daybreaker (2004/12/10 PM 09:57)

매우 므흐흐하며 삽질스러운 데가 있지만 정말로 잘 만들었다는 데는 의심의 여지가 없는 듯..

Comment: 토끼군 (2004/12/10 PM 10:53)

Daybreaker: 저걸 므흐흐하다고 하는 니가 더 므흐흐하다 -,.-

Copyright (c) 1995-2005, Kang Seonghoon (Tokigun).