[Python] (Ayuda) Código ofuscado.

Iniciado por adrianmendezRap, 19 Abril 2012, 11:35 AM

0 Miembros y 1 Visitante están viendo este tema.

adrianmendezRap

Hola buenas, estoy con un pequeño reto informático entre amigos para determinar cual es el lenguaje mas ofuscable. Yo decidí cojer Python ya que me parecía fácil de ofuscar pero luego me di cuenta que para programar esta bien pero para ofuscar no tanto. Ahora mismo tengo un pequeño programa montado pero no creo que sirva para mucho y me gustaría pediros algunos consejos para poder hacer ofuscación en python.

El codigo que tengo diseñado es el siguiente:

#!/usr/bin/env python
oo000 = ((5000-(10**2)-(49*10**2))+(1000//500))**1
ii = (5000-(10**2))-(49*10**2)**1
oOOo = 0
O0 = '                     :iDGjfDD;.         '
oOOo = oo000
o0O = '                     ,LD;;;iEj:                  '
oo000 = oo000 * 2 + ii
iI11I1II1I1I = '                    .;Df;;;;GL,                '
oooo = ( ( (5 * 17 * 73) - ( 251 * 2 ** 2 ) - ( 30 * 10 ) - ( len(o0O) * 10 ** 2 ) ) + ( 13166 // 6583 ) ) ** 1
iIIii1IIi = '                    .;Et;;;;fG;.              '
o0OO00 = oooo + ( ( ( 13166 // 6583 ) + 1 ) * 7 ) + 2 ** 2 + 1
oo = '                    .;Ej;;;;LG,.             '
i1iII1IiiIiI1 = oo [ ( o0OO00 - 1 ) : o0OO00 ]
iIiiiI1IiI1I1 = '                    .;Ej;;;;fG;.              '
o0OoOoOO00 = '                    .;Ej;;;;LG;               '
I11i = '                    .;Ej;;;;fG;.              '
O0O = '        ..::::::::. .;Ej;;;;fG;. .:,::::::..    '
Oo = '  o   m,;;;iiiiii;, .;Et;;;;aG;..,iiiiiii;;;,.  '
I1ii11iIi11i = Oo [ ( o0OO00 - 1 ) : o0OO00 ]
I1IiI = '      .,;;;iiiiii;, .;Et;;;;fG;..,iiiiiii;;;,.    '
o0OOO = Oo [ ( oooo - 1 ) : oooo ]
iIiiiI = '     :;ifGEEEEEEEt, .;Ej;;;;fG;..;LEEEEEEDDfi;:   '
Iii1ii1II11i = Oo [ ( oooo + oo000 - 1 ) : ( oooo + oo000 ) ]
iI111iI = '   .,;fEEEEEEEEEEt, .;Ej;;;;fG;..;LEEEEEEEEEDf;,..'
IiII = '  .lignEEEEEEEEEEt, .;Ej;;;;uG;..;LEEEEEEEEEEEL;,.'
iI1Ii11111iIi = '  .,iGEEEEEEEEEEEt, .;Ej;;;;fG;..;LEEEEEEEEEEEL;,.'
i1i1II = IiII [ ( o0OO00 - 1 ) : o0OO00 ]
O0oo0OO0 = ' .,;GEEEEEEEEEEEEj, .;Ej;;;;fG;..,LEEEEEEEEEEEEG;,'
I1i1iiI1 = IiII [ ( oooo + oo000 - 1 ) : ( oooo + oo000 ) ]
iiIIIII1i1iI = ' :;GEEEEEEEEEEEEEj, .;Ej;;;;fG;..;LEEEEEEEEEEEEEL;'
o0oO0 = IiII [(((6205-(251*2**2)-(30*10)-(49*10**2))+(13166//6583))**1 + ((5000-(10**2)-(49*10**2))+(1000//500))**1 - 2) :(((6205-(251*2**2)-(30*10)-(49*10**2))+(13166//6583))**1 + ((5000-(10**2)-(49*10**2))+(1000//500))**1 - 1)]
oo00 = '.;fEEEEEEEEEEEEEEt, .;Dj;;;;fG;..;LEEEEEEEEEEEEEEt'
o00 = iIiiiI1IiI1I1 [ ( oooo - 1 ) : oooo ]
Oo0oO0ooo = ',iDEEEEEEEEDGGGGGt,..;Ej;;;;fG;..;fGGGGGDEEEEEEEED'
o0oOoO00o = ',hiEEEEEEEEDGGGGGt,..;Ej;;;;cG;..;fGGGGGDEEEEEEEED'
i1 = ';fEEEEEEEGt;;;;;;;: .;Ej;;;;fG;. ,;;;;;;;tDEEEEEEE'
oOOoo00O0O = o0oOoO00o [ ( o0OO00 - 1 ) : o0OO00 ]
i1111 = ';DEEEEEEL;,:......  .;Ej;;;;fG;  .......:;;GEEEEEE'
i11 = o0oOoO00o [ ( ( 4950 - ( 10 ** 2 ) ) - ( 49 * 10 ** 2 ) ** 1 + 1 + len(o0oOoO00o) ) : ( ( ( ( 6205 - ( 251 * 2 ** 2 ) - ( 30 * 10 ) - ( 49 * 10 ** 2 ) ) + ( 13166 // 6583 ) ) ** 1 ) - 1 ) ]
I11 = 'tEEEEEEG;:.         .,Df;;;;GL,.         .,iDEEEEE'
Oo0o0000o0o0 = 'fEEEEEEt,            ,fD;;;iEj,           .;jEEEEE'
oOo0oooo00o = 'GEEEEEE;:            :iDDffDG;.            :iEKEEE'
oO0o0o0ooO0oO = 'DEEEEEG;.            .,iLDDf;:             :;DEEEE'
oo0o0O00 = 'EFEEEEL;.              :,;;,:              .;DEEEE'
oO = oo0o0O00 [ ( oOOo - 1 ) : oOOo ]
i1iiIIiiI111 = 'EEEEEEG;.                ..                .;DEEEE'
oOOo = ii * oo000 ** 12
oooOOOOO = 'DEEIEEG;.                                  :;DEEEE'
oOOo = oo000 + oOOo
i1iiIII111ii = 'GEEEEED;:                                  ,iEEEEE'
oo000 = oo000 * 2 + ii
i1iIIi1 = 'fEEEEEEt,                                  ,jEEEEE'
ii11iIi1I = oooOOOOO [ ( oOOo - 1 ) : oOOo ]
iI111I11I1I1 = 'tEEEEEEC;:                               j:,DEEEEE'
oOOo = ii * oo000 ** 12
OOooO0OOoo = ';DEEEEEEf;,............................. LE:fEEEEE'
ii = ii + oOOo ** 43
iIii1 = ';LEEEEEEELi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.L#G:GEEEE'
oOOo = oo000 + oOOo
oOOoO0 = ',iEEEEEEEEEGLLLLLLLLLLLLLLLLLLLLLLLLLLLL;f##L:DEEE'
oo000 = oo000 * 2 + ii
O0OoO000O0OO = '.;fEEEEEEEEEEEEOEEEEEEEEEEEEEEEEEEEEEEEE;L###j,EEj'
iiI1IiI = iI111I11I1I1 [ ( oOOo - 1 ) : oOOo ]
II = ' ,;DEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE;L###Wi;L;'
ooOoOoo0O = oO + ii11iIi1I
OooO0 = ' .,iDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE;L####W,:,'
oOOo = oo000 + ( 5000 - ( 10 ** 2 ) ) - ( 49 * 10 ** 2 ) ** 1
II11iiii1Ii = '  .;iDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE;f#####K. '
oo000 = oo000 * 2 + ii
OO0o = '   .,iGEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEif######E '
Ooo = O0OoO000O0OO [ ( oOOo - 1 ) : oOOo ]
O0o0Oo = '    .,;tGDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEif#######G'
oOOo = oo000 + ii
Oo00OOOOO = '      :,;;iitttttttttttttttttttntttttttt:L########'
O0OO00o0OO = Oo00OOOOO [ ( oOOo - 1 ) : oOOo ]
I11i1 = '        .:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.f####WDEK'
iIi1ii1I1 = oO + ii11iIi1I + iiI1IiI + o00
o0 = '                                         L##EKW.  '
I11II1i = iIi1ii1I1 + Ooo + O0OO00o0OO
IIIII = '                                         f#E.j#j  '
ooooooO0oo = I11II1i + i1iII1IiiIiI1 + I1ii11iIi11i
IIiiiiiiIi1I1 = '                                         fE. :#K  '
I1IIIii = ooooooO0oo + I1i1iiI1 + o00
oOoOooOo0o0 = '                                         i:   E#; '
OOOO = I1IIIii + Iii1ii1II11i + o0OOO
OOO00 = '                                              t#G '
iiiiiIIii = OOOO + o0oO0 + I1ii11iIi11i
O000OO0 = '                                              :WW.'
I11iii1Ii = iiiiiIIii + o00 + Iii1ii1II11i
I1IIiiIiii = '                                               GW;'
O000oo0O = I11iii1Ii + i1i1II + oOOoo00O0O
OOOOi11i1 = '                                               .. '
IIIii1II1II = O000oo0O + i11 + o0OOO
print IIIii1II1II
print O0
print o0O
print iI11I1II1I1I
print iIIii1IIi
print oo
print iIiiiI1IiI1I1
print o0OoOoOO00
print I11i
print O0O
print I1IiI
print iIiiiI
print iI111iI
print iI1Ii11111iIi
print O0oo0OO0
print iiIIIII1i1iI
print oo00
print Oo0oO0ooo
print i1
print i1111
print I11
print Oo0o0000o0o0
print oOo0oooo00o
print oO0o0o0ooO0oO
print oo0o0O00
print i1iiIIiiI111
print oooOOOOO
print i1iiIII111ii
print i1iIIi1
print iI111I11I1I1
print OOooO0OOoo
print iIii1
print oOOoO0
print O0OoO000O0OO
print II
print OooO0
print II11iiii1Ii
print OO0o
print O0o0Oo
print Oo00OOOOO
print I11i1
print o0
print IIIII
print IIiiiiiiIi1I1
print oOoOooOo0o0
print OOO00
print O000OO0
print I1IIiiIiii
print OOOOi11i1
# Firma del documento #
print ''
print "Created By adrianmendezRap, don't copy, modify or redistribute."
print "And don't use Hax LoL"
#Fin de la Firma#


Esta basado en un ascii-art para poder esconder el texto dentro de ella, el reto es poder ofuscar el texto lo mas posible.

Muchas gracias de antemano.

EDIT:

Viendo que el código no se ve muy bien dejo el enlace para descargarlo.
http://db.tt/i5NryuiD
No es antiguo... es de coleccionista.

Runex

Sé que mi respuesta no va con tu petición, pero como conseguís ofuscar los codes de python? XD

Un saludo :)
"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".

0x5d

Cita de: Runex en 19 Abril 2012, 17:27 PM
Sé que mi respuesta no va con tu petición, pero como conseguís ofuscar los codes de python? XD

Un saludo :)
Calculadora ofuscada :
Código (python) [Seleccionar]

import base64
def v5Wd(Abh5Wd):
    Abh5Wd=base64.b64encode(Abh5Wd)
    Abz9GZ=[Abh5Wd]
    for w2clJHd in Abz9GZ[0]:
            Abz9GZ.append(w2clJHd)
    Abz9GZ.reverse()
    AbvJHdhV3Y=""
    for Qaz9GZ in Abz9GZ:
            AbvJHdhV3Y+=Qaz9GZ
    return AbvJHdhV3Y.replace(Abh5Wd,"")
def z9GZ(Qah5Wd):
    Qaz9GZ=[Qah5Wd]
    for k2clJHd in Qaz9GZ[0]:
        Qaz9GZ.append(k2clJHd)
    Qaz9GZ.reverse()
    QavJHdhV3Y=""
    for k0clJHd in Qaz9GZ:
        QavJHdhV3Y+=k0clJHd
    return base64.b64decode(QavJHdhV3Y.replace(Qah5Wd,""))
QP="++QP"
x8mbnl2c="--wK"
kGdsVXb="6MXZg42bpNWYjlGbwlGdsVXTgEGT"
ozbyVWb15EIyVWbpJHUX=raw_input(z9GZ("==ozbyVWb15EIyVWbpJHU"))
QP=QP.replace("+","=")
y8mbnl2c="==SXQL".translate(None,"SX")
Qa2lGZ="6MXZg42bpNXa2lGZgEGT"
x8mbnl2c=x8mbnl2c.replace("-",z9GZ(QP))
z8mbnl2c="==.wL"
mcl1WdOBybk5WdnV2U=raw_input(z9GZ("68mcl1WdOBybk5WdnV2U"))
z8mbnl2c=z8mbnl2c.split(".")
ozbyVWb15EIyVWbpJHUX=v5Wd(ozbyVWb15EIyVWbpJHUX)
mbnl2c="==geeK"
EGdzVmc="6MXZgEGdzVmUgEGT"
mcl1WdOBybk5WdnV2U=v5Wd(mcl1WdOBybk5WdnV2U)
exec "QYtV3c=%s%s%s;"%(z9GZ(ozbyVWb15EIyVWbpJHUX),z9GZ(x8mbnl2c.replace("-",z9GZ(QP))),z9GZ(mcl1WdOBybk5WdnV2U))
QYtV3c2="=ozclBSYtV3UgEGT"
print z9GZ(QYtV3c2),QYtV3c
exec "EGdzVmc2=%s%s%s;"%(z9GZ(ozbyVWb15EIyVWbpJHUX),z9GZ(y8mbnl2c),z9GZ(mcl1WdOBybk5WdnV2U))
z8mbnl2c="CPH"+z8mbnl2c[0]+z8mbnl2c[1]
print z9GZ(EGdzVmc),EGdzVmc2
exec "Qa2lGZ2=%s%s%s;"%(z9GZ(ozbyVWb15EIyVWbpJHUX),z9GZ(z8mbnl2c.translate(None,"HCP")),z9GZ(mcl1WdOBybk5WdnV2U))
print z9GZ(Qa2lGZ),Qa2lGZ2
exec "kGdsVXb2=%s%s%s;"%(z9GZ(ozbyVWb15EIyVWbpJHUX),z9GZ(mbnl2c.replace("e","H").translate(None,"H")),z9GZ(mcl1WdOBybk5WdnV2U))
print z9GZ(kGdsVXb),kGdsVXb2

Hace un tiempo la programé :D
¡ SIGUEME EN TWITTER -> @JavierEsteban__ !

Runex

Cita de: 0x5d en 20 Abril 2012, 03:41 AM
Calculadora ofuscada :
Código (python) [Seleccionar]

import base64
def v5Wd(Abh5Wd):
    Abh5Wd=base64.b64encode(Abh5Wd)
    Abz9GZ=[Abh5Wd]
    for w2clJHd in Abz9GZ[0]:
            Abz9GZ.append(w2clJHd)
    Abz9GZ.reverse()
    AbvJHdhV3Y=""
    for Qaz9GZ in Abz9GZ:
            AbvJHdhV3Y+=Qaz9GZ
    return AbvJHdhV3Y.replace(Abh5Wd,"")
def z9GZ(Qah5Wd):
    Qaz9GZ=[Qah5Wd]
    for k2clJHd in Qaz9GZ[0]:
        Qaz9GZ.append(k2clJHd)
    Qaz9GZ.reverse()
    QavJHdhV3Y=""
    for k0clJHd in Qaz9GZ:
        QavJHdhV3Y+=k0clJHd
    return base64.b64decode(QavJHdhV3Y.replace(Qah5Wd,""))
QP="++QP"
x8mbnl2c="--wK"
kGdsVXb="6MXZg42bpNWYjlGbwlGdsVXTgEGT"
ozbyVWb15EIyVWbpJHUX=raw_input(z9GZ("==ozbyVWb15EIyVWbpJHU"))
QP=QP.replace("+","=")
y8mbnl2c="==SXQL".translate(None,"SX")
Qa2lGZ="6MXZg42bpNXa2lGZgEGT"
x8mbnl2c=x8mbnl2c.replace("-",z9GZ(QP))
z8mbnl2c="==.wL"
mcl1WdOBybk5WdnV2U=raw_input(z9GZ("68mcl1WdOBybk5WdnV2U"))
z8mbnl2c=z8mbnl2c.split(".")
ozbyVWb15EIyVWbpJHUX=v5Wd(ozbyVWb15EIyVWbpJHUX)
mbnl2c="==geeK"
EGdzVmc="6MXZgEGdzVmUgEGT"
mcl1WdOBybk5WdnV2U=v5Wd(mcl1WdOBybk5WdnV2U)
exec "QYtV3c=%s%s%s;"%(z9GZ(ozbyVWb15EIyVWbpJHUX),z9GZ(x8mbnl2c.replace("-",z9GZ(QP))),z9GZ(mcl1WdOBybk5WdnV2U))
QYtV3c2="=ozclBSYtV3UgEGT"
print z9GZ(QYtV3c2),QYtV3c
exec "EGdzVmc2=%s%s%s;"%(z9GZ(ozbyVWb15EIyVWbpJHUX),z9GZ(y8mbnl2c),z9GZ(mcl1WdOBybk5WdnV2U))
z8mbnl2c="CPH"+z8mbnl2c[0]+z8mbnl2c[1]
print z9GZ(EGdzVmc),EGdzVmc2
exec "Qa2lGZ2=%s%s%s;"%(z9GZ(ozbyVWb15EIyVWbpJHUX),z9GZ(z8mbnl2c.translate(None,"HCP")),z9GZ(mcl1WdOBybk5WdnV2U))
print z9GZ(Qa2lGZ),Qa2lGZ2
exec "kGdsVXb2=%s%s%s;"%(z9GZ(ozbyVWb15EIyVWbpJHUX),z9GZ(mbnl2c.replace("e","H").translate(None,"H")),z9GZ(mcl1WdOBybk5WdnV2U))
print z9GZ(kGdsVXb),kGdsVXb2

Hace un tiempo la programé :D

0x5d no quería ver más códigos ofuscados simplemente saber como conseguís hacerlo xD.

Tu calculadora está en base64 así si que sé hacerlo, pero no entiendo la ofuscación del otro compañero :)
"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".

Karcrack

Lo que pasa es que hay caracteres que no puedes ver, pero aunque veas caracteres vacios si que hay texto... lo que no sé aún es porque no se ve xD


Otro código ofuscado :P :P
Código (python) [Seleccionar]
#vim:setfileencoding=rot13
w,n=[h"Cvrqen",h"Cncry",h"Gvwrenf"],vag(vachg("1) Cvrqen\a\e2) Cncry\a\e3) Gvwrenf\a\e\a\eRyvwn han bcpvba:")).__fho__(1)
cevag"Hfgrq un ryrtvqb:\a\e{0}\a\e\a\eCrqeva NV un ryrtvqb:\a\e{1}\a\e\a\eCrqeva NV tnan...".sbezng(w.__trgvgrz__(n),w.__trgvgrz__(n.__nqq__(1).__zbq__(3)))

adrianmendezRap

Cita de: Runex en 19 Abril 2012, 17:27 PM
Sé que mi respuesta no va con tu petición, pero como conseguís ofuscar los codes de python? XD

Un saludo :)

Cita de: Runex en 20 Abril 2012, 14:27 PM
0x5d no quería ver más códigos ofuscados simplemente saber como conseguís hacerlo xD.

Tu calculadora está en base64 así si que sé hacerlo, pero no entiendo la ofuscación del otro compañero :)

Mañana colgare el código original y las herramientas para poder ofuscarlo.

Gracias 0x5d por tu código, voy a analizarlo y a intentar implantarlo en mi código ;)
No es antiguo... es de coleccionista.

Runex

Cita de: adrianmendezRap en 20 Abril 2012, 15:32 PM
Mañana colgare el código original y las herramientas para poder ofuscarlo.

Gracias 0x5d por tu código, voy a analizarlo y a intentar implantarlo en mi código ;)

Por cierto, ahora que me acuerdo, vi hace tiempo un mensaje diciendo un buen método para ofuscar el código, aquí te dejo el mensaje:
Cita de: OTRAWEB
pero te digo un truquito , si tu programa se llama keygen.py crea un archivo llamado keygen_start.py en el cual unicamente escribis import keygen y despues ejecutas el keygen_start.py , despues de que termines de ejecutarlo python te va a crear un archivo llamado keygen.pyc ,el cual contiene tu codigo pero escrito en codigo exclusivo para el interpretador asi que no tiene mucho sentido para los seres humanos , eso si te recomiendo quites uno que otro comentario
de tu codigo porque me ha tocado ver que algunos comentarios se quedan intactos a la hora de que se crea el archivo .pyo cuando vayas a compartir tu programa asegurate de que en la carpeta unicamente este : keygen.pyc (es tu codigo compilado en bytecode) y keygen_start.py
"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".

0x5d

Cita de: Runex en 20 Abril 2012, 14:27 PM
0x5d no quería ver más códigos ofuscados simplemente saber como conseguís hacerlo xD.

Tu calculadora está en base64 así si que sé hacerlo, pero no entiendo la ofuscación del otro compañero :)
ajajaja no es llegar y ver el import base64, el código que puse va más allá :D
¡ SIGUEME EN TWITTER -> @JavierEsteban__ !

adrianmendezRap

Lo prometido es deuda.

Codigo original:

#!/usr/bin/env python
VariGlobal = ((5000-(10**2)-(49*10**2))+(1000//500))**1 # Inicia en 2
VariFalsa = (5000-(10**2))-(49*10**2)**1 # Inicia en 0
VariSecundaria = 0 # Inicia en 0
txt1='                     :iDGjfDD;.         '
VariSecundaria = VariGlobal # Copia Global en Secundaria (2)
txt2='                     ,LD;;;iEj:                  '
VariGlobal = VariGlobal * 2 + VariFalsa # Pasa Global a 4
txt3='                    .;Df;;;;GL,                '
VariGlobal2= (((5*17*73)-(251*2**2)-(30*10)-(len(txt2)*10**2))+(13166//6583))**1 # Inicia en 3
txt4='                    .;Et;;;;fG;.                  '
VariSecundaria2= VariGlobal2 + (((13166//6583)+ 1)*7) + 2**2 +1 # Pone VariSecundaria2 en 28
txt5='                    .;Ej;;;;LG,.                  ' # L en 28
letra6 = txt5[(VariSecundaria2 - 1): VariSecundaria2] # Rescata el sexto caracter (l)
txt6='                    .;Ej;;;;fG;.                  '
txt7='                    .;Ej;;;;LG;                   '
txt8='                    .;Ej;;;;fG;.                  '
txt9='        ..::::::::. .;Ej;;;;fG;. .:,::::::..      '
tfs1='  o   m,;;;iiiiii;, .;Et;;;;aG;..,iiiiiii;;;,.    ' # Cadena falsa, obtencion de a(28), o(3), m(7)
letra7 = tfs1[(VariSecundaria2 - 1): VariSecundaria2] # Rescata el caracter "a" usado en 3 lugares
txt0='      .,;;;iiiiii;, .;Et;;;;fG;..,iiiiiii;;;,.    '
letra8 = tfs1[(VariGlobal2 - 1): VariGlobal2] # Rescata el caracter "o" usado en 2 lugares
tet1='     :;ifGEEEEEEEt, .;Ej;;;;fG;..;LEEEEEEDDfi;:   '
letra9 = tfs1[(VariGlobal2 + VariGlobal - 1) :(VariGlobal2 + VariGlobal)] # Rescata el caracter "m" usado en 2 lugares
tet2='.  .,;fEEEEEEEEEEt, .;Ej;;;;fG;..;LEEEEEEEEEDf;,..'
tfs2='  .lignEEEEEEEEEEt, .;Ej;;;;uG;..;LEEEEEEEEEEEL;,.' # Cadena falsa, obtencion de u(28), l(6), n(7)
tet3='  .,iGEEEEEEEEEEEt, .;Ej;;;;fG;..;LEEEEEEEEEEEL;,.'
letra10 = tfs2[(VariSecundaria2 - 1): VariSecundaria2] # Rescata el caracter "u"
tet4=' .,;GEEEEEEEEEEEEj, .;Ej;;;;fG;..,LEEEEEEEEEEEEG;,'
letra11 = tfs2[(VariGlobal2 + VariGlobal - 1) :(VariGlobal2 + VariGlobal)] # Rescata el caracter "n"
tet5=' :;GEEEEEEEEEEEEEj, .;Ej;;;;fG;..;LEEEEEEEEEEEEEL;'
letra12 = tfs2[(((6205-(251*2**2)-(30*10)-(49*10**2))+(13166//6583))**1 + ((5000-(10**2)-(49*10**2))+(1000//500))**1 - 2) :(((6205-(251*2**2)-(30*10)-(49*10**2))+(13166//6583))**1 + ((5000-(10**2)-(49*10**2))+(1000//500))**1 - 1)] # Rescata el caracter "l"
tet6='.;fEEEEEEEEEEEEEEt, .;Dj;;;;fG;..;LEEEEEEEEEEEEEEt'
espacio= txt6[(VariGlobal2 - 1) : VariGlobal2] # Obtencion del espacio
tet7=',iDEEEEEEEEDGGGGGt,..;Ej;;;;fG;..;fGGGGGDEEEEEEEED'
tfs3=',hiEEEEEEEEDGGGGGt,..;Ej;;;;cG;..;fGGGGGDEEEEEEEED' # Cadena Falsa, obtencion de c(28), h(2)
tet8=';fEEEEEEEGt;;;;;;;: .;Ej;;;;fG;. ,;;;;;;;tDEEEEEEE'
letra13= tfs3[(VariSecundaria2 - 1): VariSecundaria2] # Obtencion del caracter "c"
tet9=';DEEEEEEL;,:......  .;Ej;;;;fG;  .......:;;GEEEEEE'
letra14= tfs3[((4950-(10**2))-(49*10**2)**1+1+len(tfs3)):((((6205-(251*2**2)-(30*10)-(49*10**2))+(13166//6583))**1)-1)] # Obtencion del caracter "h"
tet0='tEEEEEEG;:.         .,Df;;;;GL,.         .,iDEEEEE'
twt1='fEEEEEEt,     .      ,fD;;;iEj,           .;jEEEEE'
twt2='GEEEEEE;:            :iDDffDG;.            :iEKEEE'
twt3='DEEEEEG;.            .,iLDDf;:        .    :;DEEEE'
twt4='EFEEEEL;.              :,;;,:              .;DEEEE'  # F en 2
letra1 = twt4[(VariSecundaria - 1): VariSecundaria] # Rescata el primer caracter (F)
twt5='EEEEEEG;.                ..                .;DEEEE'
VariSecundaria = VariFalsa * VariGlobal**12 # Pasa Secundaria a 0
twt6='DEEIEEG;.                                  :;DEEEE' # I en 4
VariSecundaria = VariGlobal + VariSecundaria # Pasa Global a Secundaria (4)
twt7='GEEEEED;:                                  ,iEEEEE'
VariGlobal = VariGlobal * 2 + VariFalsa # Pasa Global a 8
twt8='fEEEEEEt, .                                ,jEEEEE'
letra2 = twt6[(VariSecundaria - 1): VariSecundaria] # Rescata el segundo caracter (I)
twt9='tEEEEEEC;:                               j:,DEEEEE' # C en 8
VariSecundaria = VariFalsa * VariGlobal**12 # Pasa secundaria a 0
twt0=';DEEEEEEf;,............................. LE:fEEEEE'
VariFalsa = VariFalsa + VariSecundaria**43 # Pasa Falsa a 0
tqt1=';LEEEEEEELi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.L#G:GEEEE'
VariSecundaria = VariGlobal + VariSecundaria # Copia Global en Secundaria (8)
tqt2=',iEEEEEEEEEGLLLLLLLLLLLLLLLLLLLLLLLLLLLL;f##L:DEEE'
VariGlobal = VariGlobal * 2 + VariFalsa # Pasa Global a 16
tqt3='.;fEEEEEEEEEEEEOEEEEEEEEEEEEEEEEEEEEEEEE;L###j,EEj' # O en 16
letra3= twt9[(VariSecundaria - 1): VariSecundaria] # Rescata el tercer caracter (C)
tqt4=' ,;DEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE;L###Wi;L;'
Semi1= letra1+letra2 # Junta F y I
tqt5=' .,iDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE;L####W,:,'
VariSecundaria = VariGlobal + (5000-(10**2))-(49*10**2)**1 # Pasa Global en Secundaria (16)
tqt6='  .;iDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE;f#####K. '
VariGlobal = VariGlobal * 2 + VariFalsa # Pasa Global a 32
tqt7='   .,iGEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEif######E '
letra4= tqt3[(VariSecundaria - 1): VariSecundaria] # Rescata el cuarto caracter (O)
tqt8=' .  .,;tGDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEif#######G'
VariSecundaria = VariGlobal + VariFalsa # Copia Global en Secundaria (32)
tqt9='      :,;;iitttttttttttttttttttntttttttt:L########' # n en 32
letra5= tqt9[(VariSecundaria - 1): VariSecundaria] # Rescata el quinto caracter (n) reutilizado para el octavo
tqt0='        .:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.f####WDEK'
casi1=letra1+letra2+letra3+espacio
tyt1='                                         L##EKW.  '
casi2=casi1+letra4+letra5
tyt2='                                         f#E.j#j  '
casi3=casi2+letra6+letra7
tyt3='                                         fE. :#K  '
casi4=casi3+letra11+espacio
tyt4='                                         i:   E#; '
casi5=casi4+letra9+letra8
tyt5='                                              t#G '
casi6=casi5+letra12+letra7
tyt6='                                              :WW.'
casi7=casi6+espacio+letra9
tyt7='                                               GW;'
casi8=casi7+letra10+letra13
tyt8='                                               .. '
final=casi8+letra14+letra8
print final
print txt1
print txt2
print txt3
print txt4
print txt5
print txt6
print txt7
print txt8
print txt9
print txt0
print tet1
print tet2
print tet3
print tet4
print tet5
print tet6
print tet7
print tet8
print tet9
print tet0
print twt1
print twt2
print twt3
print twt4
print twt5
print twt6
print twt7
print twt8
print twt9
print twt0
print tqt1
print tqt2
print tqt3
print tqt4
print tqt5
print tqt6
print tqt7
print tqt8
print tqt9
print tqt0
print tyt1
print tyt2
print tyt3
print tyt4
print tyt5
print tyt6
print tyt7
print tyt8
# Firma del documento #
print ''
print "Created By adrianmendezRap, don't copy, modify or redistribute."
print "And don't use Hax LoL"
#Fin de la Firma#


Descarga: http://db.tt/kJNSBOTG

Herramienta para ofuscar las variables: http://freecode.com/projects/pyobfuscate

La herramienta sirve para hacer el código mas difícil de leer para las personas, pero no lo hace imposible de leer. El resto si bajas el archivo con el código original lo veras, esta ofuscado a mano.

Este código es de un "juego" de "Piedra, papel, tijera, lagarto, spock" en Python. Tambien esta ofuscado y lo diseñe para un concurso de Fast Coding de una Lan-Party, sorprendentemente me gano un programa hecho en VB 6 para un solo jugador con mas fallos que el mio. http://db.tt/FrTP31v5

Si queréis mejorarlo o modificarlo sois libres de hacerlo ;)
No es antiguo... es de coleccionista.