elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 ... 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 [37] 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 ... 139
361  Foros Generales / Foro Libre / Re: El examen que ha dado la vuelta a España: ¿Es correcta la respuesta de este niño en: 20 Octubre 2017, 04:00 am
un error de interpretación de un niño de 7 años es eso, un error, lo peor son los comentaris de ******** más grandes que ni tienen ni tendrán la capacidad de ver de una forma diferente, revisen post donde coemtan cosas que ni chicos de 6 años inetrpretarían mal, que fácil es apalear a un niño y sus distintas formas de aprender a entender las boludeces que les piden.
362  Programación / Scripting / Re: ¿Recomendáis usar POO con tkinter? en: 17 Octubre 2017, 23:21 pm
en tu pregunta está la respuesta, es muy subjetivo, algunos te dirán que el paradigma de objetos es lo mejor y otros que sobra, en lo personal, python trabaja todo como objetos  así que no veo porque no usarlos, tampoco hace falta la redundancia.
363  Programación / Scripting / Re: Validar ingreso de datos con Python en: 17 Octubre 2017, 23:17 pm
lo primero que te aclaro es que python permite trabajar de distintas formas y salvo algunas excepciones no hay una mejor que otra, lo que si se sabe decir es que un script es a la vieja escuela o la nueva.
usando básicamente tu código lo modifique para que veas otra forma:

Código
  1. #-*-coding: utf -8 -*-          
  2. import os,sys
  3. class Calculadora:
  4.    def __init__(self):
  5.        self.elecciones= {
  6.            "1":self.sum,
  7.            "2":self.res,
  8.            "3":self.div,
  9.            "4":self.mul,
  10.            "5":self.salir,
  11.             }
  12.  
  13.    def menu(self):
  14.        print("=" * 25) #así sé con exactitud cuantos caracteres quiero imprimir
  15.        print(" 1 - Suma\n 2 - Resta\n 3 - División\n 4 - Multiplicación\n 5 - Salir\n ")
  16.  
  17.    def ejecutar(self):
  18.        while True:
  19.            self.menu()
  20.            eleccion= input("elige una opción: ")
  21.            accion = self.elecciones.get(eleccion)
  22.            if accion:
  23.                accion()
  24.            else:
  25.                print("{} no es una elección válida".format(eleccion))
  26.  
  27.    def validar(self):
  28.        global num1,num2
  29.        con1=True
  30.        while con1:
  31.            try:
  32.                num1= float(input("Ingrese el primer número: "))
  33.                con1= False
  34.            except ValueError:
  35.                print("El primer valor deber ser un número")
  36.        con2=True
  37.        while con2:
  38.            try:
  39.                num2= float(input("Ingrese el segundo número: "))
  40.                con2= False
  41.            except ValueError:
  42.                print("El segundo valor deber ser un número")    
  43.  
  44.    def sum(self):
  45.        print("Eligió SUMAR")
  46.        self.validar()
  47.        res=num1+num2
  48.        print("{} + {} = {}".format(num1,num2,res))
  49.  
  50.    def res(self):
  51.        print("Eligió RESTAR")
  52.        self.validar()
  53.        res=num1 - num2
  54.        print("{} - {} = {}".format(num1,num2,res))        
  55.  
  56.  
  57.    def div(self):
  58.        print("Eligió DIVIDIR")
  59.        self.validar()
  60.        if num1 == 0 or num2 == 0 :
  61.            print("No se puede divividr por 0")
  62.        else:    
  63.            res=num1 / num2
  64.            print("{} / {} = {}".format(num1,num2,res))        
  65.  
  66.  
  67.    def mul(self):
  68.        print("Eligió MULTIPLICAR")
  69.        self.validar()
  70.        res=num1 * num2
  71.        print("{} * {} = {}".format(num1,num2,res))        
  72.  
  73.    def salir(self):        # ya que estás usando os agrego sys
  74.        os.system("cls")
  75.        msg=" Programa terminado "
  76.        print(msg.center(28,"*"))
  77.        os.system("pause")
  78.        sys.exit(0)    
  79.  
  80. calc=Calculadora()
  81. calc.ejecutar()
  82.  
me parece muy bien que uses distintas funciones para cada cosa(agregué algunas), como dicen es mejor dividir un problema en partes más pequeñas.
En cuanto a tantos if o elif no es que no se pueda o deba usarlos, pero para eso están los diccionarios, que vienen a ser como los select o switch de otros lenguajes(por si programas en alguno de ellos).
Después como ya te dijo engel lex podés usar para verificaciones distintas formas dependiendo de lo que busques, para algo más complejo sin lugar a dudas usar re, en este caso es simple así que no es tan necesario.
Saludos.

364  Programación / Scripting / Re: .py a .apk en: 15 Octubre 2017, 18:00 pm
para eso tenés que usar kivy, es la librería que permite hacer aplicaciones o juegos en python, claro está que esto es solo si querés usar python, sino vienen otras herramientas más especificas para android, android studio, eclipse, etc.
365  Programación / Scripting / Re: [Python 3.6] Duda con cursor en manejo de ficheros en: 12 Octubre 2017, 04:51 am
estás tratando de hacer algo muy improductivo, aunque si persites en ello te conviene buscar sobre el uso de la librería curses para tu propósito, ahora si quieres hacer algo mejor y que sea productivo hasta con tkinter te quedará mejor.

Edito: si es para windows hay que implementar UniCurses, ya que no vi que haya curses para windows
366  Programación / Scripting / Re: [batch] [aporte] batch archive security v0.3 en: 7 Octubre 2017, 04:24 am
no caracteres, cadenas.
"deutsch"
"Fortfahren?"
"Einige Include Dateien konnten nicht erstellt werden."
"Falsches Passwort."
"existiert bereits im aktuellen A"
"Ein unbekannter Fehler ist aufgetreten. Das Programm wird beendet."

y varias más, no voy a ponerlas todas, en cualquier caso si debugueas con ollydbg o ida podrás verlas.
367  Programación / Scripting / Re: [batch] [aporte] batch archive security v0.3 en: 7 Octubre 2017, 02:13 am
disculpa, no me interezan ninguna de las dos, batch me parece muy improductivo, simplemente estoy analizando el exe y como tiene cadenas en alemán quiero ver de donde salen.
368  Programación / Scripting / Re: [batch] [aporte] batch archive security v0.3 en: 7 Octubre 2017, 01:51 am
¿con qué hiciste el exe?
369  Programación / Scripting / Re: Python y GUI en: 7 Octubre 2017, 01:19 am
hay un subforo de scripting,para tus futuras preguntas de python.Si querés algo para novatos o facil, tkimter, pero lejos lo mejor para entornos profesionales es pyqt5 ,lleva más tiempo aprenderla a usar muy bien
370  Programación / Scripting / Aporte python(preguntan muchas veces esto) en: 4 Octubre 2017, 13:54 pm
Varias veces vi que preguntan como apretar un botón de otra aplicación,etc. Mi respuesta normalmente es con apis y espero que muestren un código para intentar ayudarlos.Elektro normalmente pone el código en .net así que hoy que estoy al vicio pondré uno básico en python, para que vean que es más fácil que jugar con tierra. Aproveché un programita que subieron como concurso de ingeniería inversa, que tiene dos botonoes y un control de texto. El texto muestra "*" cuando ingresas la clave y el botón de verificación se deshabilita al pasar el mouse sobre él. Ya hay tutoriales de como resolverlo por si alguien quiere verlo:
http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/1601-1700/1642-Crackme%20%20Enigma%20Group%20-%20App%20Challenge%202%20por%20QwErTy.pdf
Es básico para los que recién se inician.No voy a hacer otro porque solo quiero mostrar como hacer  cosas con python.
El enlace al crackme es:
https://www.mediafire.com/file/dw95rd6j0ytl268/App2.rar
por supuesto que muchos no lo van a querer bajar, por miedo y desconocimiento, así que vean como pueden probar el script en otro programa.
A los  que lo bajen, ejecutan el crackme(prueben para ver que hace si quieren),ejecutan el script y listo!
A los que lo bajen será más fácil ver que hago:
Código
  1. #-*- coding:utf -8 -*-
  2. import win32gui,win32con
  3. import time
  4.  
  5. def click(identificador):                                           #para simular el click del mouse                                                        
  6.    win32gui.SendMessage(identificador, win32con.WM_LBUTTONDOWN, 0, 0)       #señal de presionar el botón  
  7.    win32gui.SendMessage(identificador, win32con.WM_LBUTTONUP, 0, 0)         #señal de soltar el botón  
  8.  
  9. nombre = "Enigma Group - App Challenge 2"        #acá va el título de la ventana
  10. ventana = win32gui.FindWindow(None,nombre)       #asigno a la variable ventana un valor entero que sería el identificador
  11. if ventana != 0:                                 #si el valor es distinto de 0 es que la encontró  
  12.    print("Encontrada")
  13.    win32gui.SetForegroundWindow(ventana)        #traigo la ventana al frente para ver que hace,aunque no es necesario    
  14.    boton1 = win32gui.FindWindowEx(ventana,None,None,"Submit")        #el identificador del botón submit
  15.    boton2 = win32gui.FindWindowEx(ventana,None,None,"Cancel")        #el identificador del botón cancel  
  16.    texto= win32gui.FindWindowEx(ventana,None,"ThunderRT6TextBox","")  # lo bueno de conocer otros lenguajes y sus clases ThunderRT6TextBox
  17.    texto1= win32gui.FindWindowEx(ventana,None,None,"")                #no tiene nada como titulo y se obtiene igual el identificador  
  18.    clave="topgun"
  19.    time.sleep(2)                  #espero para poner la clave, porque quiero nada más
  20.    win32gui.SendMessage(texto1,win32con.EM_SETPASSWORDCHAR,None,3) #cambio el "*" por su caracter
  21.    win32gui.SendMessage(texto, win32con.WM_SETTEXT, 8, clave)    #envío la clave al textbox, también podría usar texto1
  22.    time.sleep(2)                                                  #otra espera porque si
  23.    click(boton1)                                                  #aunque no este activado ejecuta las sentencias igual
  24.    time.sleep(5)                                                  #ya sabemos
  25.    click(boton2)                                                  #cerramos la aplicación  
  26. else:
  27.    print("No encontrada")
  28.  
Como ven una real huevada.Saludos
Páginas: 1 ... 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 [37] 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 ... 139
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines