Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - tincopasan

#1
Han cerrado un hilo: https://foro.elhacker.net/foro_libre/mas_de_100000_personas_protestan_en_francia_contra_la_dictadura_sanitaria-t511119.0.html donde por diferencias entre otro y yo. La verdad no me dí cuenta que eso pasaría sino ni pierdo tiempo en contestar, porque evidentemente solo interfiero en la expresión de otro, que no tiene nada que ver. ¿No es mejor reabrirlo y si alguien comete algún acto que los moderadores consideren inapropiado simplemente evitar que esos usuarios respondan? Lo gracioso es que uno de los involucrados es colaborador, vaya con las decisiones arbitrarias que toman sin siquiera un aviso para no perjudicar al creador del hilo y que se pueda seguir debatiendo.
Me di cuenta que esto iría mejor en dudas y sugerencias etc. pero no sé si puedo moverlo, sino que algún moderador lo haga.
#2
Sugerencias y dudas sobre el Foro / Foro
27 Marzo 2020, 05:13 AM
me causa gracia el criterio que tienen los moderadores para saber que algo es ofensivo o no, me han borrado respuestas porque se les da la gana y no dicen ni que regla omití, pero hablan de ofensivo, como en el caso de EleKtro, mientras otros tienen hasta en su firma frases autoritarias sobre la libertad de cada uno. Así esta el mundo con los que manejan la justicia del bien y el mal.
#3

Me causa gracia el "criterio" por no decirle estúpido fánatismo que tiene el 80% de la población.Escucho y leo todos los argumentos, uno más rídiculo que otro por cierto, y lamentablemente dan pena.No reconocer los errores del partido que siguen a ciegas es una muestra de como se llega a situaciones de decadencia.Los seguidores de uno de los partidos mayoritario, como principal causa alegan la mala situación ecónomica(que es innegable), y aunque les digan que la mayoría de ese partido brillan por su inexistente valor moral, la respuesta es:"anda a comer moralidad","vamo a volvé".
Los del segundo partido mayoritario, solo le echan la culpa a los gobiernos anteriores(tampoco es innegable, más los propios) y hablan de moralidad y transparencia, cuando la transparencia no es tal, las culpas son muchas y moralidad también es inexistente.
Más allá de todos los pensamientos o criterios no se puede desconocer la realidad de que ambos partidos destacan por su grado de corrupción y falta de valores éticos. Es cierto que la "moralidad" no te llena la heladera en este país, pero le da poder a quienes deberían no ser elegidos(más allá de estar presos).Mientras se mantengan esos valores tan bajos y se premie(elijan) a grupos impresentables así estaremos.En cualquier país decente a los ladrones se los juzga o no se los acepta en cargos gubernamentales, acá los hacen presidentes. Después se quieren comparar con la cultura del primer mundo. Errores cometemos todos, lo cual es perdonable hasta un punto, pero la falta de valores no tiene perdón, y el problema es que después lo pagamos entre todos los menos afortunados, por no querer pertenecer a una banda de ladrones.
Lo peor es que entre los candidatos que quedan, hay que elegir al que no se conoce como tan corrupto o inútil y ambos caracteres sobran.
Me importa absolutamente nada lo que digan los seguidores(descerebrados) de cada uno de los partidos mayoritarios, porque si hay algo que les quita el fánatismo es criterio u objetividad.
Lástima por un país con enormes recursos y un 20% de gente no fánatica, que por cierto no podrá decidir sobre la miseria(forma elegante de decir excrementos) que nos gobernará.
Esto es en cierta forma un respuesta a las veces que preguntan:¿y por qué la Argentina está tan mal?, simple, por la ideología sin autocrítica del 80 % de los argentinos.
Saludos a todos, inclusive los de los partidos mayoritarios, que por cierto no pienso responder a huevadas carentes de objetividad y por supuesto carentes de valores.
Al resto mis saludos y respetos.
#4
Scripting / binarios en python
5 Octubre 2018, 13:55 PM
En otros foros ya empezaron a preguntar sobre otro ejercicio que les han dado sobre como pasar números decimales a binarios a la vieja escuela(python ya trae funciones para ello), pero además quieren que sea con decimales,aunque todavía no han dicho con cuantos, así que lo hice en base a dos decimales.Como me molesta que entren a pedir solo códigos también lo dejo acá, así evitamos preguntas sin intenciones de aprender.
Código (python) [Seleccionar]

#por tincopasan
#-*- coding: utf -8 -*-
import math
def binario(num):
    co=0
    resto = 0
    numero_binario = []
   
    if num <= 1:
        print("no se puede convertir")
    else:
        while num > 1:
            co = num //2
            resto=num%2
            numero_binario.append(resto)
            num=num//2
        numero_binario.append(1)
        numero_binario.reverse() 
        return numero_binario 

def binario_decimal(decimal):
   
    aux=decimal*2
    decimal_binario=[]
    lista=[]
    valor=0
    while aux not in lista :
            lista.append(aux)
            partes=math.modf(aux)
            valor= int(round(partes[1],2))
            decimal_binario.append(valor)
            if int(round(partes[1],2)) == 1 and round(partes[0],2)== 0.0:
                break
            aux=round(partes[0],2) * 2
           
    return decimal_binario
   
   
   

def entero_decimal():
    global entero
    global decimal
    global numero
    numero=float(input("Ingrese un número: "))
    partes=math.modf(numero)
    decimal=round(partes[0],2)
    entero=int(partes[1])
    if decimal == 0.0:
        print("El número decimal {} es en binario {}]" .format(int(numero) ,binario(entero)))
    else:
        parte_entera=binario(entero)
        parte_decimal=binario_decimal(decimal)
        print("El número decimal {} es en binario {}.{}" .format(int(numero) ,parte_entera,parte_decimal))
   
entero_decimal()   
   


es recontra básico y dividido en funciones para que si alguien quiere, lo pueda entender fácil.Sino copiar y pegar sobra.
Saludos.
#5
A veces participo en otros foros, más  que todo por curiosidad y hace poco plantearon este problema, lo curioso es que en el mismo foro está el mismo problema desde el 2017 y nadie dio una respuesta:
Empiezas con 1€ y, con cada movimiento, puedes o bien doblar tu dinero o sumar otro euro. ¿Cuál es el mínimo número de movimientos para obtener exactamente 200€?
hay que hacer una función, bueno, no la publiqué en ese foro porque me molesta que pidan todo servido y no hacen ni un intento de solución. Lo hago acá porque quizá le sirva a quién este aprendiendo en algún curso. Es muy fácil y solo cuestión de lógica simple, así que es solo para novatos.
Código (python) [Seleccionar]

def minmov(valor):
   contador = 0
   while valor > 1:
       if valor % 2  == 0:
           valor= valor /2
           contador += 1
       else:
           valor = valor -1
           contador += 1
   return contador  

print(minmov(200))  


claro que hay otras formas pero voy por la que cualquiera entienda con solo mirar.
Saludos
#6
muchas veces veo que preguntan como usar solo la tecla enter para salir y que no escriba nada, buena una posible solución, solo para windows y fuera de algún ide, sería:
Código (python) [Seleccionar]

def Salir():
    import sys
    import msvcrt
    while True:
        print("Presione enter para salir ")
        m= str(msvcrt.getch(),'utf -8')
        if m == "\r":
            sys.exit()

después llamamos a la función de donde la necesitemos y listo
#7
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 (python) [Seleccionar]

#-*- coding:utf -8 -*-
import win32gui,win32con
import time

def click(identificador):                                           #para simular el click del mouse                                                       
    win32gui.SendMessage(identificador, win32con.WM_LBUTTONDOWN, 0, 0)       #señal de presionar el botón   
    win32gui.SendMessage(identificador, win32con.WM_LBUTTONUP, 0, 0)         #señal de soltar el botón 
   
nombre = "Enigma Group - App Challenge 2"        #acá va el título de la ventana
ventana = win32gui.FindWindow(None,nombre)       #asigno a la variable ventana un valor entero que sería el identificador
if ventana != 0:                                 #si el valor es distinto de 0 es que la encontró 
    print("Encontrada")
    win32gui.SetForegroundWindow(ventana)        #traigo la ventana al frente para ver que hace,aunque no es necesario   
    boton1 = win32gui.FindWindowEx(ventana,None,None,"Submit")        #el identificador del botón submit
    boton2 = win32gui.FindWindowEx(ventana,None,None,"Cancel")        #el identificador del botón cancel 
    texto= win32gui.FindWindowEx(ventana,None,"ThunderRT6TextBox","")  # lo bueno de conocer otros lenguajes y sus clases ThunderRT6TextBox
    texto1= win32gui.FindWindowEx(ventana,None,None,"")                #no tiene nada como titulo y se obtiene igual el identificador 
    clave="topgun"
    time.sleep(2)                  #espero para poner la clave, porque quiero nada más
    win32gui.SendMessage(texto1,win32con.EM_SETPASSWORDCHAR,None,3) #cambio el "*" por su caracter
    win32gui.SendMessage(texto, win32con.WM_SETTEXT, 8, clave)    #envío la clave al textbox, también podría usar texto1
    time.sleep(2)                                                  #otra espera porque si
    click(boton1)                                                  #aunque no este activado ejecuta las sentencias igual
    time.sleep(5)                                                  #ya sabemos
    click(boton2)                                                  #cerramos la aplicación   
else:
    print("No encontrada")

Como ven una real huevada.Saludos
#8
estoy intentando completar los datos de una página web por medio de webBrowser, no tengo idea de este lenguaje,salvo lo básico(siempre lo hago con python), así que busqué en la red, el problema es que lo que encontré es acceso por medio del id y resulta que la página que miro el textbox tiene:
Código (html4strict) [Seleccionar]
<input onkeydown="checkKeyDown(event.keyCode)" name="textfield">

nada de id!!! ¿cómo obtengo acceso a completar o leer ese control?
de paso, perdón por la ignorancia ¿de dónde se obtiene información sobre las propiedades de los controles?
#9
podrian decirme si es posible habilitar funciones desabilitadas en paginas web? que deberia empezar a leer? si alguien quiere mirar se trata de lichess.org. Esta pregunta debe ser muy basica pero no se nada de web.
#10
hace poco preguntaron de palíndromos y más allá de usar clases no me gustó ese código(cada cual usa el que quiere) porque era extenso y poco funcional, por ejemplo con frases.
Así que hice uno sin clases pero que funcione con frases también. Supongo que a alguien le puede servir. Saludos
Código (python) [Seleccionar]

# -*- coding: utf-8 -*-
import re

print('''Ejemplo de palabra: solos
Ejemplo de frase: Yo dono rosas  oro no doy
''')   

pregunta=input("Escriba una palabra o frase: ")
sin_espacios = re.sub(r'\s','',pregunta.lower())
alreves = sin_espacios[::-1]

if sin_espacios == alreves:
    respuesta="Es un palíndromo"
else:
    respuesta="No es un palíndromo"

print(respuesta)
#11
Muchas veces me preguntan y veo que preguntan como continuar si hay un input() y el usuario no presiona ENTER,lo más correcto desde mi perspectiva es usar threads y semaforos, pero cuando digo eso la respuesta más común es: "¿pódes hacer el código?, no manejo threads", pues bien, cualquiera puede hacer el código, el tema es que la mayoría solo copia y pega sin aprender nada, entonces me parece mejor hacer un código que haga algo similar y muy fácil, ya que usa lo más común de python.
Otra cosa, solo trabajo sobre windows y python 3.x por lo que el funcionamiento en otros S.O o versiones anteriores de python (2.x) no me interesan ni probar.
Bueno así usaría una función para casi emular input y que se corte con tiempo, por supuesto hay muchas más formas de hacerlo, pero quizá este sea un puntapie de inicio para sus códigos(que espero posteen)
Está incompleto por supuesto, pero si funcional en lo simple.
Claro que todos sabemos que esto es por consola y que si fuese con tkinter sería mucho más simple y mejor.
Código (python) [Seleccionar]

#-*- coding:utf-8 -*-
import msvcrt
import time
def input_tiempo(aviso = ">>>",duracion=10): #aviso es el prompt y duración cuanto hay que esperar
   global nombre                              
   nombre=""
   print (aviso)    
   finaliza = time.time() + duracion        #cuando terminar de esperar
   while time.time()< finaliza:            
       if msvcrt.kbhit():                   #msvcrt está recontra documentado y hay cientos de ejemplos    
           letra= msvcrt.getche().decode('ASCII')
           if letra == "\r":                 #si el usuario presiona enter sigue normal   
               break
           else:
               nombre+= letra
#forma de uso          
q=input_tiempo("Escribe tu nombre: ")  #pongo lo que quiera y si no pongo duración es la que viene x defecto
if nombre != "":
   print("\nHola ¡¡ {} !!".format(nombre))
else:
   print("Hola desconocido")    

Saludos   
#12
Scripting / Listas en python
16 Julio 2016, 20:47 PM
Hay muchos tutoriales sobre listas en python, éste seguramente, será uno más, pero trataré de mostrar algunos puntos que no veo frecuentemente. Además python permite que cada uno resuelva como quiera, por lo tanto esto es sólo una forma en que podría hacerlo.También es cierto que se busca lo más simple.Ya todos conocemos la filosofía de python.
Sabemos que las listas pueden contener todo tipo de datos, cadenas,números,listas,tuplas y diccionarios, ahora usaré las más simples, por ejemplo:

lista simple de cadenas
Código (python) [Seleccionar]

l1=["quiero","aprender","python","y ","tambien","quiero","aprender","otros","lenguajes"]


¿cómo cuento cuántas veces está cada palabra?
para eso está el método Counter
Código (python) [Seleccionar]

from collections import Counter
cuenta_palabras = Counter(l1)


>>> Counter({'quiero': 2, 'aprender': 2, 'y ': 1, 'tambien': 1, 'python': 1, 'lenguajes': 1, 'otros': 1})

y si busco cuantas veces se repite quiero
Código (python) [Seleccionar]

cuantas=cuenta_palabras["quiero"]

>>> 2

para mostrar la cantidad que quiera de las más usadas
Código (python) [Seleccionar]

mas_usadas_2= cuenta_palabras.most_common(2) #donde 2 serian las 2 con mayor repeticion

>>> [('quiero', 2), ('aprender', 2)]

¿la palabra más larga?
Código (python) [Seleccionar]

import heapq
largo=heapq.nlargest(1,l1,key=len)

>>> ['lenguajes']

¿la más corta?
Código (python) [Seleccionar]

corta=heapq.nsmallest(1,l1,key=len)

>>> ['y ']

para filtar palabras por la primer letra
Código (python) [Seleccionar]

filtrar=[n for n in l1 if n[0] == "o"]

>>>['otros']

sumar cada caracter ascci de las palabras en la lista
Código (python) [Seleccionar]

valores=list(map(lambda x: sum(map(ord, x)), l1))

>>>[661, 849, 674, 153, 736, 661, 849, 567, 958]

Bueno esto es muy básico, pero sirve para ver el uso de otras funciones y métodos en listas simples.
La verdad me cansé de escribir, así que dejo para otro día diccionarios,tuplas y listas en listas.
Saludos
#13
Scripting / Tramposo aporte de python y vbs
11 Julio 2016, 12:54 PM
Muchas veces me pasa que algunos usuarios quieren reproducir los textos hablados en python. Ahora bien, python es multiplataforma etc, pero por suerte para mí, todos mis usuarios usan solo windows y del Seven en adelante(ninguno debugea y quieren los últimos jueguitos así que nadie tiene xp), lo cual dice adiós a multiplataforma, el incoveniente que sigo teniendo es que algunos todavía quieren usar python 2.x(al pedo sino tienen idea, pero lo tienen), por suerte la mayoría usa 3.x (lo cual a veces lleva a inconvenientes entre las versiones de las bibiotecas)asi que para ahorrarme instalarlas decidí usar vbs y SAPI5 (vienen por defecto en windows), para resumir un simple código de como hago trampas para reproducir los textos.Como siempre lo bueno de python que cada uno lo usa como quiere!
Código (python) [Seleccionar]

import os, subprocess
def hablar():
   global archivo
   temporal=os.getenv("temp") #obtengo el path del directorio temp
   nombre="\prueba.vbs"       #nombre del archvo que voy a escribir
   archivo= temporal+nombre   #concateno el path y el nombre
   
   arch=open(archivo,"w")     #para crear el archvo en modo escritura
   obligatorio = 'set speech = Wscript.CreateObject("SAPI.spVoice")'
   
   texto=input("Escriba lo que desea decir: ")
   cmd1= 'speech.speak "{}"'.format(texto)  #le doy formato a la linea a escribir en el archivo
     
   arch.write(obligatorio)
   arch.write("\n"+cmd1)
   arch.close()

hablar()
ejecutar="cscript " + archivo     #declaro todo el comando a usar en cmd
out= subprocess.check_output(ejecutar) #ejecuto el comando
os.remove(archivo)                     #borro el *.vbs



Saludos



Deliberar sobre las versiones de python es como la religión, cada uno cree lo que quiere y no por eso es absoluto.
#14
me ha pasado varias veces que los script solo devuelven cadenas y no hay intervención del usuario, por ejemplo si realizan algún cálculo,muchas cadenas  o fibonacci, más lo cual me preguntaron si esos resultados se pueden guardar en un archivo de texto. Es más que obvio que se puede, pero...
tendría que modificar cada uno de los script con las sentencias ya recontra conocidas.Con los años además de vago me gusta simplificar sin grandes complicaciones así que...
era usuario de dos en sus inicios y pensé o hago un bat (que odio) o uso otro script(imprime.py) y listo!
código de imprime.py
Código (python) [Seleccionar]

import os
import sys
archivo= sys.argv[1]
os.system('python {} > impreso.txt'.format(archivo))


4 líneas y asunto resuelto para siempre en estos casos.
se usa muy fácil: desde la consola de cmd python imprime.py archivoaimprimir.py
Saludos y perdón por esta huevada pero la quice compartir.

Edito:

lo entiendo pero...
1) si le quiero cambiar el nombre al archivo de salida lo hago en el script
2) de tu forma el usuario tendría que pasar 2 argumentos,el nombre del archivo a crear y el nombre del archivo a guardar la salida- es más rápido  con un solo argumento


Dicho sea de paso, creo no entendiste que imprime llama a cualquier archivo que quiera(siempre que no espere la intervención del usuario) y lo mande a un txt sin realizarle ninguna modificación.
#15
Hola:
        muchas veces cuando hago diseño o programación me apoyo en otros archivos o videos, el tema es que me gusta tener maximizada la aplicación principal que esté usando y me molesta tener que andar cambiando entre aplicaciones o usar alt tab, etc, así que pongo los visores o reproductores ontop, no todos traen esa función(notepad por ejemplo) y aunque la traigan hay que configurarla cada vez que quiero cambiar esa modalidad. Hay muchos programas de terceros,pero ¿cuál es el chiste?así que programé con python y pyqt5 un visor de procesos y la posibilidad de ponerlos ontop, es más que obvio que no se puede con todos los procesos, pero es simple y cumple su función.
Además usé otras bibliotecas y el uso de apis para que los más nuevos vean como puede hacerse.
Son dos códigos:1) El archivo .ui que es el entorno y 2)el archivo.pyw
código del ui:
Código (xml) [Seleccionar]
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>frmprincipal</class>
<widget class="QDialog" name="frmprincipal">
 <property name="geometry">
  <rect>
   <x>0</x>
   <y>0</y>
   <width>447</width>
   <height>307</height>
  </rect>
 </property>
 <property name="windowTitle">
  <string>Procesos</string>
 </property>
 <widget class="QPushButton" name="btntop">
  <property name="geometry">
   <rect>
    <x>360</x>
    <y>30</y>
    <width>75</width>
    <height>23</height>
   </rect>
  </property>
  <property name="text">
   <string>Arriba</string>
  </property>
 </widget>
 <widget class="QPushButton" name="btnsalir">
  <property name="geometry">
   <rect>
    <x>360</x>
    <y>280</y>
    <width>75</width>
    <height>23</height>
   </rect>
  </property>
  <property name="text">
   <string>Salir</string>
  </property>
 </widget>
 <widget class="QLabel" name="lblnombre">
  <property name="geometry">
   <rect>
    <x>20</x>
    <y>10</y>
    <width>161</width>
    <height>16</height>
   </rect>
  </property>
  <property name="font">
   <font>
    <pointsize>10</pointsize>
   </font>
  </property>
  <property name="text">
   <string>Nombre del proceso</string>
  </property>
 </widget>
 <widget class="QListWidget" name="lstprocesos">
  <property name="geometry">
   <rect>
    <x>10</x>
    <y>30</y>
    <width>341</width>
    <height>271</height>
   </rect>
  </property>
 </widget>
 <widget class="QPushButton" name="btnactualizar">
  <property name="geometry">
   <rect>
    <x>360</x>
    <y>60</y>
    <width>75</width>
    <height>23</height>
   </rect>
  </property>
  <property name="text">
   <string>Actualizar</string>
  </property>
 </widget>
</widget>
<resources/>
<connections/>
</ui>


código del pyw:

Código (python) [Seleccionar]

#-*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication,QDialog,QMessageBox
from PyQt5 import uic
import psutil
from ctypes import c_void_p, windll
import win32gui

SWP_NOMOVE = 2        
SWP_NOSIZE = 1        
VEN_TOP    = -1        
VEN_NOTOP  = -2    


class Form(QDialog):
   def __init__(self):
       QDialog.__init__(self)
       uic.loadUi("principal.ui",self)
       self.btnactualizar.clicked.connect(self.TomarProcesos)
       self.btntop.clicked.connect(self.PonerTop)
       self.btnsalir.clicked.connect(self.Terminar)
               
   def Actualizar(self):
       for proc in psutil.process_iter():
           try:
               procesos=proc.as_dict(attrs=['name'])
           except psutil.NoSuchProcess:
               pass
           else:
               nombre= procesos["name"]
               self.lstprocesos.addItem(nombre)          
   
   def TomarProcesos(self):
       uno= self.lstprocesos.count()
       if uno !=0 :
           self.lstprocesos.clear()
           self.Actualizar()            
       else:
           self.Actualizar()
   
   def PonerTop(self):        
       item=self.lstprocesos.selectedItems()
       seleccionado=[]
       for x in range(len(item)):
           seleccionado.append(self.lstprocesos.selectedItems()[x].text())
       
       proceso=''.join(seleccionado)
       proceso=proceso[:-4]
       ventana= win32gui.FindWindow(proceso,None)
       if ventana != 0:
           win32gui.SetForegroundWindow(ventana)
           windll.user32.SetWindowPos(ventana, VEN_TOP, 0, 0, 0, 0,SWP_NOMOVE | SWP_NOSIZE)
           
   
   def closeEvent(self,event):
       respuesta=QMessageBox.question(self,"Terminar","¿Desea Salir?",QMessageBox.Yes|QMessageBox.No)
       if respuesta == QMessageBox.Yes: event.accept()
       else: event.ignore()    
   
   def Terminar(self):
       respuesta=QMessageBox.question(self,"Terminar","¿Desea Salir?",QMessageBox.Yes|QMessageBox.No)
       if respuesta == QMessageBox.Yes: exit()
       
       
aplicacion=QApplication(sys.argv)
ventana=Form()
ventana.show()
aplicacion.exec_()
   

Saludos  


Edito: Asunto modificado.
#16
Sugerencias y dudas sobre el Foro / link
8 Junio 2016, 05:21 AM
Hola:
        soy un inútil total con la forma de hacer algunas cosas en las repuestas. Alguien podría explicarme como hacer que una palabra, por ejemplo casa, sea un link externo a otra pagina.
#17
Estuve haciendo un sencillo generador de claves, para quienes estamos aprendiendo el uso de tkinter y algunas de sus funciones para hacerlo un poquito más visual.
Es mejor hacer el archivo .pyw para que no salga la molesta consola.
Es todo simple, pero creo ayudará  a los más nuevos.
Saludos
Código (python) [Seleccionar]

#código realizado por tincopasan
#-*- coding: utf -8 -*-
from tkinter import *
from tkinter import messagebox
import string
import random


def generar_pass():
   pass_may=cmay.get()
   pass_min=cmin.get()
   pass_num=cnum.get()
   pass_sim=csim.get()
   
   exito= 0
   
   global argumentos
   argumentos =""
   
   if pass_may == 1:
       mayusculas=string.ascii_uppercase
       argumentos = argumentos + mayusculas
       exito=1        
       
   if pass_min == 1:
       minusculas=string.ascii_lowercase
       argumentos = argumentos + minusculas
       exito = 1
   
   if pass_sim == 1:
       simbolos="@#\/¿?¡!.,+-_"
       argumentos=argumentos + simbolos
       exito = 1

   if pass_num == 1:
       numeros=string.digits
       argumentos= argumentos + numeros
       exito=1
   
   if exito == 0:
       messagebox.showinfo("¡Error!","Debes seleccionar por lo menos 1 argumento")
       
   if exito == 1:
       cuantas = 0
       total = arg_cantidad.get()
       dic = open("diccionario.txt", "a")
       while cuantas < total:
           cuantas = cuantas + 1        
           password =  "".join(random.SystemRandom().choice(argumentos) for _ in range(arg_largo.get()))
           dic.write(password + "\n")
       
       dic.close()
       messagebox.showinfo("¿Atención!","Archivo de claves generado exitosamente")    

 
ventana=Tk()
ventana.title("Generador de Passwords")
ventana.geometry("220x190+200+150")
eleccion=Label(ventana,text="Elija que argumentos utilizar").place(x=0,y=0)

cmay=IntVar()
chkmay=Checkbutton(ventana,text="Mayúsculas",variable=cmay,onvalue=1,offvalue=0).place(x=10,y=20)

cmin=IntVar()
chkmin=Checkbutton(ventana,text="Minúsculas",variable=cmin,onvalue=1,offvalue=0).place(x=10,y=40)

cnum=IntVar()
chknum=Checkbutton(ventana,text="Números",variable=cnum,onvalue=1,offvalue=0).place(x=10,y=60)

csim=IntVar()
chksim=Checkbutton(ventana,text="Símbolos",variable=csim,onvalue=1,offvalue=0).place(x=10,y=80)

largo=Label(ventana,text="¿Largo de la contraseña?: ").place(x=10,y=100)
cantidad=Label(ventana,text="¿Cantidad de contraseñas?: ").place(x=10,y=120)
arg_largo= IntVar()
inicio=Entry(ventana,textvariable= arg_largo, width=2).place(x=160,y=100)
arg_cantidad=IntVar()
cuantas=Entry(ventana,textvariable=arg_cantidad,width=2).place(x=160,y=120)

quien=Label(ventana,text="Realizado por tincopasan").place(x=10,y=170)
boton_generar=Button(ventana,text="Generar pass",command=generar_pass).place(x=130,y=140)
boton_salir=Button(ventana,text="Salir",command=ventana.quit).place(x=10,y=140)
arg_cantidad.set(1)
arg_largo.set(1)
ventana.resizable(0,0)
   
ventana.mainloop()
#18
Ingeniería Inversa / sobre foxpro
27 Septiembre 2015, 06:45 AM
Normalmente no contesto (menos de buena forma) a los post que piden algo y no tienen idea del tema. En este caso es sobre un programa hecho en foxpro, del que no recuerdo pidan datos(sobre fox), así que antes de salir lo miré un ratito y aclaro un par de puntos, que no lo hice en el mismo post por estar bloqueado(lo cual me parece perfecto), pero como quice contestar lo hago aparte.
1)el programa se llama escuelasimple (me parece malisimo y cualquiera que conozca lo mínimo de programación podría hacer algo mejor)
2)el autor del post del cual hablo declara no tiene experiencia (¿le pasamos conocimientos por dvd como en matrix?)
3) para trabajar con foxpro existen varios decompiladores, normalmente uso refox
4) en este caso si lo vemos es fácil porque solo usa algunas sentencias dow(date), store,Ltrim y stuff, o sea que buscando sobre ellas enla red se puede hacer un keygen en cualquier lenguaje, ya que tienen equivalentes.
5)basicamente toma la fecha (día, mes,año), tiene unas constantes VFR ó VFRP compara de acuerdo al dia y le agrega los datos de fecha, después reemplaza algunos caracteres con E ó S y listo.
#19
una vez quice poner una palabra que fue reemplazada por asteriscos, no me acuerdo la explicación  que me dieron, pero es que el propio sistema no lo deja hacer, ahora bien, cada vez más hay post con el título "ayuda", ni hablar del que dice "ayuda urgente!!!!", sin descripción ni rama, ¿no sería posible eliminarlos directamente? y enviarle al usuario un mensaje con el porque. Lo mismo de los que piden tareas sin mostrar un mínimo avance.
#20
lei el post en el que RDG sube una aplicación para detectar malware y se le acusa de cosas que no sé ni me importa si son reales o no, es entre él y los moredadores, pero.. supongo que las reglas de públicación del code está, aunque no he visto ni un code de nada. citando a x64core "¿es en serio?" y bla bla bla mejores. supongo que cada uno es libre de considerar que cada soft y su publicación es en serio y sobre lo que es mejor siempre depende de cada uno y no por eso está bueno menospreciar cualquier otra aplicación. "Se arriesga a que le haga..." está es la sección de análisis y diseño de malware, supongo que quien entra debería tener conocimientos mínimos sobre el tema, como para poder probar soft en entornos controlados, por lo tanto cada cual sabe a lo que se arriesga con cualquier soft(las grandes empresas usan spyware y no hablo de malware porque desconozco todo el soft que circula), de última si no tienen idea no lo bajen y listo!.
La censura de algo que no es una agresión directa,(bah todas las censuras) me parece muy tiránico, pero eso es lo bueno que da el poder, cada cual cree y hace lo que quiere.
Además me parece indignante no poder contestar en el mismo post.
Si van a censurar, haganlo con los que piden solución a problemas que no tienen la menor idea y cuando reciben la respuesta no aparecen ni para agradecer. ahhhh menos mal que no soy moderador, por que no los censuraría, los elimino del sitio.  

Mod: Tema movido, este post no es sobre malware, sino sobre el foro
#21
Ingeniería Inversa / sobre el UFIW VPN 2.60
11 Septiembre 2014, 19:51 PM
he visto que es muy habitual que entre gente a pedir ayuda ya sea de como hacerlo o del crack directamente sobre este programita, es más que obvio que no se distribuyen cracks aquí, para eso busquen en google! sobre como hacerlo hace un tiempo hice este tute : http://foro.elhacker.net/ingenieria_inversa/tutorial_solo_para_muy_novatos-t415166.0.html    que como ya dije es tan fácil que da lástima, ahora sino lo entienden les recomiendo : http://foro.elhacker.net/ingenieria_inversa/faq_iquesteres_nuevo_aprende_ingenieria_inversa_desde_cero-t345798.0.html
#22
bueno, varios me pidieron ayuda sobre un soft que publicaron antes: UFIW VPN 2.6.0, y parece que pudieron romperlo, pero no grabar los cambios, eso es porque no leen los tutoriales de Ricardo Narvaja ni los mas de 1500  de la lista de CracksLatinos!
en fin me tomé 30 minutos y escribí esta huevada a ver si los orienta en algo.

para los que ya saben no pierdan tiempo!

Saludos a todos

https://www.mediafire.com/?av9b1yz5d74kbw0
#23
1) me gustaría saber por que bloquearon el post
2) hablan de etica y legalidad
3) "le dan bola a un tema no ético e ilegal" dicen

pues soy uno de los que le dió bola! falta que alguien me venga a enseñar que es legal o ético!

por un lado no vi en ningún lado que tenga firma legal, por otro si lo tuviera nunca se hizo nada ilegal, nadie modifico o dio una copia del ("soft").
Además es como si enseño a hacer cuchillos! algún boludo me va a decir asesino porque otro mato a alguien con esos cuchillos.
Puedo y es totalmente legal desesamblar cualquier soft (este y el keygen para mi no valen ni 1$) mientras no lo modifique y distribuya. Enseñar las debilidades les molesta, pues aprendan a programar decentemente.
#24
Todos hacen sus propios parchadores, inclusive hay algunos muy vistosos en cuanto a interfaz, felicitaciones por ello, pero como contra tienen que compilar código por cada patcher, bueno hice un parchador a base de archivos de texto, o sea: con un solo exe y un txt (creado para cada soft) lo puedo parchar. La ventaja me parece es que un txt es más fácil de modificar q un exe , ocupa menos espacio, se le  pueden agregar comentarios y está a la vista la modificación realizada:!
Espero que se entienda. Bueno este es el link
https://mega.co.nz/#!HdknkZ6B!ZB_vzxP7seziv4oDQHKC7myYAhIgTI5YhTMm1TWKgEQ
#25
Ingeniería Inversa / Crackme 4
28 Mayo 2012, 01:57 AM
hice otro crackme para que puedan practicar algunas tonterias en vb, es muy fácil así que no se alegren por vencer este programita!
Saludos a todos y en especial al amigo Amerik@no que me viene ganando 3 a 0! espero que este no sea tan rápido jeje!
http://www.mediafire.com/?wy1sv3v3ppfw44m