|
132
|
Programación / Scripting / Re: Texto sin mayuslculas en python
|
en: 1 Mayo 2012, 08:33 am
|
Bueno, primer tienes que recorrer letra por letra, supongo que el que tienes es correcto, sEstado = 0 sString = "holag" for f in sString: if( sString.islower() ): sEstado = 1 break print "Es una cadena minuscula.\n" if (sEstado) else "Es una cadena mayuscula.\n"
Para que recorrer cada letra ?: print "Es cadena minuscula" if (raw_input("Texto en MINUSCULAS:").islower()) else "Es cadena mayuscula"
Saludos, Javier.
|
|
|
133
|
Programación / Scripting / Re: [Python] Error leer archivo
|
en: 1 Mayo 2012, 08:19 am
|
Hola, buen día ! Recuerda es no es una buena práctica abrir archivos (open()) y no usar close() Otra cosa que me llama la atención de tu código es esto: sure=input("Are you sure?") if sure==no: print("Ok") elif sure==yes:
Que versión de Python usas ? , pues en la 2.7 que es una de las más usadas eso daría error... Pero por tu forma de usar el print, debes usar Python 3.X Pues : input = para valores numéricos raw_input = para valores alfanuméricos Y pues cuando realizas la comparación , la condición igual está errada, pues como indicaba anteriormente... input no es comparable con un texto, y pues al no usar comillas en tu condición, el código entenderá que "no" es una variable y no un string, lo mismo con el "yes". Bueno ese sería mi aporte Saludos, Javier.
|
|
|
134
|
Programación / Scripting / Re: [Código-Python]Código Ofuscado nº2 JaAViEr|0x5d [Actualizado]
|
en: 29 Abril 2012, 01:40 am
|
No creo que mis códigos estén a tu altura, serán como un juego de niños para ti. Aun así me harías un gran favor explicándome como funciona tu código, me estoy volviendo loco.
Un saludo.
a que altura ? si no tengo mucho nivel aún en Python :-/ , ahora voy de salida, apenas vuelva mañana te explico el código sin ofuscar (: Saludos, Javier.
|
|
|
135
|
Programación / Scripting / Re: [Código-Python]Código Ofuscado nº2 JaAViEr|0x5d [Actualizado]
|
en: 28 Abril 2012, 22:07 pm
|
Ya tengo que hacer este fin de semana, descifrar ese codigo endiablado Por cierto, gracias por colgarlo me sera de mucha ayuda si soy capaz de entenderlo, yo también me pondré manos a la obra, el siguiente paso es hacer un juego en python ofuscado Un saludo. Apenas lo hagas postealo y luego yo te posteo el código original Saludos, Javier.
|
|
|
136
|
Programación / Scripting / [Código-Python]Enviando y recibiendo cookies por consola - JaAViEr|0x5d
|
en: 28 Abril 2012, 08:34 am
|
Hola, buen día ! Hoy, estuve leyendo acerca de las preciadas cookies, antes de continuar, por si alguien no sabe que son las cookies, consultemos a la ya famosa Wikipedia:Los cookies en Informática sirven para: - Llevar el control de usuarios: cuando un usuario introduce su nombre de usuario y contraseña, se almacena una cookie para que no tenga que estar introduciéndolas para cada página del servidor. Sin embargo, una cookie no identifica a una persona, sino a una combinación de computador-navegador-usuario.
- Conseguir información sobre los hábitos de navegación del usuario, e intentos de spyware, por parte de agencias de publicidad y otros. Esto puede causar problemas de privacidad y es una de las razones por la que las cookies tienen sus detractores.
Para la info completa aquí !Bien, con este tema rápidamente me vinieron a la mente varias ideas para programar con respecto al caso. Me puse manos a la obra y pues por ahora conseguí un humilde programa de 68 líneas (sin reducir nada). El código lo que hace es enseñarnos 3 opciones: - Ver cookies.
- Enviar cookies.
- Salir.
Con la primera opción, nos pedirá una URL y nos devolverá las cookies contenidas en dicho sitio, posteriormente nos da la opción de poder almacenarla en un archivo.Mientras que la segunda opción nos permitirá enviar una o más cookies a algún sitio web(NO ME HAGO RESPONSABLE DEL MAL USO QUE LE PUEDAN DAR), dándonos la opción de guardar la salida del HTML en un archivo local o simplemente mostrarlo en consola. Si piensan en: Y para que guardarlo ? , podría ser para ver si algún logueo se realiza de forma correcta, si algunos datos varían con cada cookie, etc. A su imaginación lo dejo ! La tercera opción no tiene mucha ciencia, no creo que haya que explicarla jajaja. Bien, sin más preámbulos, el código: # -*- coding: utf-8 -*- #Autor: JaAViEr|0x5d #Web: http://www.rootcodes.com #Twitter: @0x5d import urllib2, re, sys while True: print""" ¡ Obtén o envía cookies desde Python ! 1.- Ver cookies. 2.- Enviar cookies. 3.- Salir. """ try: opc = input("Opción ::> ") if opc in range(1,4): if opc == 3: break elif opc==1: try: url = raw_input("URL :: > http://") headers = urllib2.urlopen("http://%s"%url).info() cookie = re.findall("Set-Cookie:(.*)",str(headers))[0] if cookie: print "Cookie obtenida:\n", cookie save_q = raw_input("Guardar la cookie en un archivo?(TXT) (s/n) ::>").lower() if save_q=="s": try: archivo = open("%s.txt"%raw_input("Archivo : "),"w") archivo.write(str(cookie)) archivo.close() print "Archivo guardado con éxito!" except: print "No se pudo guardar el archivo..." else: print "No se obtuvo cookies..." except: print "No se pudo conectar" elif opc==2: print "Recuerda separar cada cookie con un punto y coma (;) !" try: url = raw_input("URL :: > http://") cookie_tosend = raw_input("Cookies: ") save_cookies = urllib2.build_opener() save_cookies.addheaders.append(('Cookie', cookie_tosend)) abrir_web = save_cookies.open("http://%s"%url) try: q_show = raw_input("Desea volcar el html en un archivo?(HTML) (s/n) ::> ") if q_show=="s": try: save_output = open("%s.html"%raw_input("Archivo de salida(sin .html):"),"w") save_output.write(abrir_web.read()) save_output.close() print "Archivo guardado con éxito !" except: print "No se pudo guardar el archivo..." else: print abrir_web.read() except: print "Ocurrió un problema inesperado..." except: print "Error inesperado..." else: print "No existe dicha opcion" except: print "Por favor ingresa un número"
Hice el código lo más ordenado posible, manejando controles de error para todo, evitando un código desastroso (: Pueden hacer la prueba del programa con esta url : Prueba CookiesEnvíen desde el programa, la cookie "name=Javier" y vean el resultado Y como siempre... Espero sea de su agrado el código ! Fuente: http://rootcodes.com/pythonenviando-y-recibiendo-cookies-jaavier0x5d/Saludos, Javier.
|
|
|
137
|
Programación / Scripting / [Código-Python]Código Ofuscado nº2 JaAViEr|0x5d [Actualizado]
|
en: 27 Abril 2012, 05:18 am
|
Hola, buen día a todos nuevamente ! Estuve pensando en la gente que dice que Python es un lenguaje poco menos inofuscable(no sé si exista la palabra ) y me pensé hacer un código ofuscado, pero sin depender de librerías :O , Python puro, ya que en la vez pasada lo hice vía base64 más algunas cositas -> http://www.rootcodes.com/pythoncalculadora-ofuscadaAhora me propuse hacer otro código ofuscado, pero sin librerías ni nada. Es algo difícil de hacer(relativamente), ya que Python es un lenguaje estructurado, lo que facilita la lectura del código, así que ahí me las anduve ingeniando para que sea algo más engorroso , el código es el siguiente, espero sea de su 'agrado': def ____(a_a_a): _____, ______, ________ = ([],[a_a_a],"") while ______[+False-True]!=False: (_____ , ______)=(_____+[______[False-True-True+True]%(True-False+True)],______+[______[-True+False+False**3]/(False+False+True*2)]) for _ in _____[::-True]: ________+="%s"%_ return ( ________ ) (other_s ,t, _x_) = ([ ],raw_input, [" "] ) h = ( [__ for __ in str( """abcdefghijkl mnopqrs tuvwxyz""" ) ]) ([(h.pop(), other_s.append("%s"%( ___)))for ___ in """abcdefghijkl mnopqrs tuvwxyz""" ]); ( [ _x_.append(_i_.replace("\n","")) for _i_ in other_s ] ) for s_s in t(">"): print ____(_x_.index(s_s)),
Bien, y que hace ? Te pedirá un texto y te devolverá la posición de cada letra, pero en Binario , espero que alguien más se anime a ofuscar código Python y lo suba Fuente : http://rootcodes.com/pythoncodigo-ofuscado-jaavier0x5d/Saludos, Javier
|
|
|
138
|
Programación / Scripting / [Python]Técnicas para reducir código JaAViEr|0x5d
|
en: 26 Abril 2012, 23:01 pm
|
Hola, buen día ! No encontré un mejor título XD, pero aquí voy... En esta oportunidad pretendo seguir fomentando la reducción de código, aunque sea por unos cuantos caracteres, las formas que explicaré quizás no sean tan útiles para reducir mucho el source, pero si podrían usarlo para ofuscar códigos . Bien, al grano ! . Como bien sabemos, hay varias funciones internas en nuestro amado Python, tales como : int(), str(), raw_input(), input(), etc...Entre esa lista podemos incluir nuestras funciones creadas vía "def". Bien, pero eso que tiene de especial ? , ahora vamos a eso ... Pondré un caso bien sencillo con el uso de def(): def funcion(parametro): print parametro func = funcion print func
Veremos que la salida es: <function funcion at 0xb74a2454> Bueno y eso qué dirán ustedes , aquí viene lo entretenido. Podemos insertar nuestra función dentro de una variable cualquiera y a partir de ese momento podemos llamar a dicha función por el nombre de la variable... No se entiende ? , un ejemplo: def funcion_sumar(primero, segundo): return primero+segundo sumando = funcion_sumar print "Resultado:",sumando(1,2)
Salida: Lo mismo podemos aplicar con las anteriores funciones mencionadas. Yo sinceramente la utilidad que le veo es más que nada para la ofuscación de códigos o para utilizar menos carácteres en nuestro código, cuando llamamos muchas veces a la función. Bien, otra forma singular de llamar funciones podría ser insertar nuestras funciones en un diccionario, para quienes no saben a que me refiero con un diccionario: diccionario = {"variable":valor}
Un sencillo ejemplo para que vean a que me refiero: funciones = {"alfa":raw_input,"nums":input} print funciones['alfa']("Texto ::>") print funciones['nums']("Numero ::>")
Bien, es una manera diferente, pero no es la mejor para optimizar nuestros códigos...Una forma similar, pero más corta sería: alfa, nums = (raw_input, input) print alfa("Texto ::>") print nums("Numero ::>")
Eso quiere decir que alfa = raw_input() y nums = input()Lo bueno de esto es que no nos limita a solo usarlo con Python en Consola, podemos aplicarlo por ejemplo al hermoso PyQT4, por ejemplo, para no tener que escribir QtGui.QPushButton("Valor",self) cada vez que creamos un botón, o para no tener que escribir QtGui.QLabel("Valor",self) por cada label, tampoco tener que escribir QtGui.QLineEdit("Valor",self) por cada LineEdit en el formulario.Podemos usar las siguientes líneas: label, inpt, boton =(QtGui.QLabel,QtGui.QLineEdit,QtGui.QPushButton)
Por lo que luego de eso para crear un QtGui.QLabel(); solo debemos llamarlo así: label("New Label", self)
De igual forma es aplicable para cada elemento, también podríamos utilizarlo para ofuscar códigos en PyQT4, pero a eso si que no le veo más utilidad que proteger nuestro source QT4, un ejemplo de lo que digo en PyQT4: # -*- coding: utf-8 -*- # Autor : 0x5d ~> JaAViEr # Sitio Web ~> www.codigo.ga # Twitter ~> @javieresteban__ from PyQt4 import QtGui, QtCore import sys class testeo(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.setWindowTitle("Bin to Dec | 0x5d") label, inpt, boton =(QtGui.QLabel,QtGui.QLineEdit,QtGui.QPushButton) self.label_binario = label("Binario :", self).setGeometry(2,15,59,17) self.input_binario = inpt(self) self.input_binario.setGeometry(60,10,230,27) self.label_resultado = label("Resultado :", self).setGeometry(2,50,80,17) self.input_salida = inpt(self) self.input_salida.setGeometry(80,43,210,27) self.input_salida.setReadOnly(True) self.boton_limpiar = boton("Limpiar campos", self) self.boton_limpiar.setGeometry(1,75,140,27) self.boton_convertir = boton("Convertir", self) self.boton_convertir.setGeometry(145,75,140,27) self.connect(self.boton_limpiar, QtCore.SIGNAL("clicked()"), self.clear_inputs) self.connect(self.boton_convertir, QtCore.SIGNAL("clicked()"), self.conversor) def clear_inputs(self): self.input_binario.setText("") self.input_salida.setText("") def conversor(self): numero = str(self.input_binario.text()) t = 0 for i,h in zip(numero[::-1],range(0,len(numero))): t+=int(i)*2**int(h) self.input_salida.setText(str(t)) app = QtGui.QApplication(sys.argv) form = testeo() form.show() app.exec_()
Espero sea de su agrado el artículo ! Fuente : http://codigo.ga/python/python-tecnicas-reduccion-y-ofuscacion-de-codigo/Saludos, Javier !
|
|
|
|
|
|
|