Aporte python(preguntan muchas veces esto)

Iniciado por tincopasan, 4 Octubre 2017, 13:54 PM

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

tincopasan

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