Programa "sencillo" y serial...

Iniciado por Eleкtro, 14 Septiembre 2017, 13:02 PM

0 Miembros y 3 Visitantes están viendo este tema.

Eleкtro

Hola.

Tengo un programa el cual considero una utilidad de uso genérico que todos deberiamos tener a buen resguardo en nuestro directorio de herramientas, sirve para buscar, eliminar, mover o renombrar archivos con nombres largos de Windows (que excedan los 256 caracteres). Estas funcionalidades se pueden reproducir en la programación mediante una sintaxis especial al escribir la ruta del archivo en ciertas funciones de la API de Windows, y de forma común un usuario sin conocimientos de programación puede escribir un simple comando en la consola de Windows (usando una sintaxis especial tambíen), pero creo que es muy util tener una aplicación con interfáz gráfica que tiene todas estas funcionalidades ya implementadas, lo que nos hace la vida más facil para solucionar este tipo de problemas de forma puntual en nuestro PC, o de forma profesional al reparar PCs de clientes para solucionar conflictos de nombres largos en su sistema de archivos o filesystem.

Llevo 2 semanas intentando contactar con el autor del programa pero no hay modo, no obtengo respuesta, así que doy por hecho que el programa está abandonado y ya solo me queda intentar craquearlo.




Esta es la información que he logrado obtener:


Como pueden ver se trata de un executable, aparentemente empacado con UPX, y sin librerías/dependencias adicionales. El entry point (OEP) está en la imagen.

El programa pide un serial (un campo para el "UserID", y otro campo para "LicenseKey"):


Yo dispongo de una clave trial para registrar el programa durante 3 dias en el que es completamente funcional durante ese tiempo. Eso me ha permitido descubrir que los datos de licencia se almacenan en una clave de registro sin codificación alguna:

[HKEY_CURRENT_USER\SOFTWARE\NOMBRE DEL PROGRAMA]
"Login"="Trial78c7-54125943-81A58215-BB6F-1176-C828-A71B361C22F3"
"Key"="GeUcqHLz-uIdS6g/X-J/V1XPhr-T9QxDS4r-HEFBhM/0-QcXAeokh ZfMfo2/4-2egULxbs-K7M3hUKY-hTCsVslR-0VDVYfMq-B7K3b80a YDo479nS-WXGrnULk-4fkcJFrr-7Vxg8OLn-GYLZJmTn-Hp63WZq9 MwcmPmj6-DYHZH/eP-Wo1iXB8r-L80="





Encontré este tutorial:
...pero al final opté por usar una herramienta llamada UPX Unpacker que encontré aquí:



A partir de aquí, no sé exactamente como proseguir con el OllyDBG.

Mi pregunta es la siguiente: ¿alguien podría estar interesado en ayudarme a craquear este programa?, de lo contrario, ¿podrían aconsejarme que pasos debería seguir en OllyDBG teniendo en cuenta por favor que no sé nada de opcodes y bastante poco de ing. inversa en general?. (mi intención no es aprender el mundo del cracking, lo que me llevaría años. esto es solo una duda puntual donde necesito averiguar lo básico para craquear este programa en concreto.)

Por si les interesa probar, aquí les dejo un enlace a un archivo comprimido que contiene el programa desempacado y la licencia trial:


Gracias por leer.








Flamer

sácame de dudas si no registras el programa, se bloquea y ya no te deja usarlo

por que si no es así pienso que con el Resource Hacker puedes eliminar esa ventanita de registro y listo

saludos Flamer y pidiendo cracks eso no va contra las reglas

Eleкtro

#2
Cita de: Flamer en 14 Septiembre 2017, 19:27 PMsácame de dudas si no registras el programa, se bloquea y ya no te deja usarlo

Hola, gracias por responder.

Si no se registra el programa, los botones de la interfáz de usuario se deshabilitan, y los nodos del treeview también. En resumen, que no se puede usar ninguna funcionalidad del programa.

Saludos!




Tras casi un mes sigo sin poder avanzar en el asunto, ¿alguien podría ayudarme u orientarme?. :(

Gracias por leer.








n1sen

El software que intentas usar, el cual es FileTooLong, es Adware, lo instale y me instalo virus por todas partes, por suerte alcanse ha aislar el pc del internet.
Pero yo nunca me he topado con archivos con nombres tan largos...
null

Eleкtro

#4
Cita de: n1sen en  8 Octubre 2017, 19:13 PM
El software que intentas usar, el cual es FileTooLong, es Adware, lo instale y me instalo virus por todas partes, por suerte alcanse ha aislar el pc del internet.
Pero yo nunca me he topado con archivos con nombres tan largos...

...¿?, ¿el que dices que has instalado exactamente, si yo no he compartido ningún instalador?. Quiero pensar que no estás mintiendo intencionadamente como para "intoxicar" o arruinar mi petición de ayuda con este programa y que simplemente te has equivocado por el motivo que sea...

En el archivo comprimido que he compartido en MediaFire no contiene ningún instalador, ni mucho menos un instalador adware. El archivo zip que he compartido contiene un archivo executable (packed.exe y unpacked.exe) que es el programa en si, el cual no es adware, no genera ningún tipo de publicidad ni instala absolutamente nada, al ejecutarlo NO GENERA ningún archivo adicional ni tampoco ninguna clave de registro, absolutamente NADA (cualquiera lo puede comprobar con su herramienta de monitorización favorita). El programa es portable, no se instala, no hay instalador...adware, ni nada que se le asemeje.

Por cierto, el programa se llama PathTooLong, no "FileTooLong", ¿es posible que hayas ido a buscar el programa por internet y te hayas descargado por error un software con un nombre similar que ha resultado ser adware?.

Es que no entiendo esta acusación que haces, estás insinuando que yo he compartido un instalador/programa adware y que no he advertido sobre ello a los demás, pero eso no es cierto, yo me he limitado a compartir un archivo comprimido que solo contiene el programa tal cual (y la herramienta que usé para desempacar el UPX), que no hay ningún instalador ni nada, ni virus adware ni nada de lo que estás diciendo.

Te pido por favor que te tomes 5 minutos para que confirmes bien las cosas que tengas que veririficar en tu PC y con la descarga de MediaFire para que veas que no hay ningún "regalito" ni nada extraño y rectifiques tu acusación. Gracias.

Saludos.








apuromafo CLS

casi siempre en programas asi, es mejor dejarlo dentro de una maquina virtual y con el serial activarlo en sus 3 dias,se vuelve a restaurar su maquina virtual y asi ganar 3 dias mas..solo en caso de necesitarlo

en lo que es personal, hay muchisimas formas que puede validar el dia real que está, asi que si atacas a todas las posibilidades, aveces logres hacerle pensar que esta recien en el dia 1 de 1, por siempre

por otro lado, en tu rama de regedit se logra apreciar algunos campos en = (terminacion muy comun en base64 ,quizas además debas ver como funciona ese cifrado en el programa y que valores le da al programa (environment variables u otro)

si no fuera que no manejo mucho tiempo libre, lo hubiera bajado y probado, pero las ideas son las que deben estar para comenzar..
"En tiempos de crisis la imaginación es más efectiva que el intelecto."

Saludos Apuromafo

MCKSys Argentina

No he visto el programa y tampoco tengo tiempo libre como para hacerlo, pero dada la funcionalidad del mismo, puedes mirar este otro, el cual es gratis: https://code.google.com/archive/p/antispy/downloads

Tiene muchas funcionalidades, entre las cuales te permite borrar paths muy largos.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Eleкtro

#7
Cita de: apuromafo en  9 Octubre 2017, 23:41 PMen tu rama de regedit se logra apreciar algunos campos en = (terminacion muy comun en base64

¿algunos?, no, lo has mirado mal, la clave trial se compone de 193 caracteres y tan solo 1 de ellos es el símbolo "=", que está al final del string.

Cita de: apuromafo en  9 Octubre 2017, 23:41 PMen lo que es personal, hay muchisimas formas que puede validar el dia real que está, asi que si atacas a todas las posibilidades, aveces logres hacerle pensar que esta recien en el dia 1 de 1, por siempre

Gracias por tu tiempo y por exponer ideas, pero en este caso no sería tan viable como craquear la clave de licencia para que el programa lo reconozca como full en vez de trial, puesto que el programa tiene un máximo de usos/operacioens en modo trial, es decir, que aunque yo consiguiese hacer lo que propones también debería tratar de hallar el modo de bypassear el máximo número de usos para que siempre esté en cero. Para una persona con los suficientes conocimientos con el desamblador puede que sea pan comido, pero para mi significaría el doble de trabajo y ya ando bastante perdido en el OllyDbg intentando solo lo primero...

De todas formas con respecto a tu idea de "atacar el modo trial", cuando se ingresa una clave (trial) en el programa, se crea una subclave de registro parecida a esta:
HKEY_CURRENT_USER\SOFTWARE\Path Too Long PRO\Trial78c7
Nota: El nombre de la subclave "Trial78c7" hace referencia al primer token del username/login de la clave de licencia: "Trial78c7-54125943-81A58215-BB6F-1176-C828-A71B361C22F3"

Cuando iniciamos el programa, si analizamos las llamadas del proceso podemos ver que primero obtiene un valor de registro de tipo REG_BINARY en esa subclave (HEX: 0x13 0x54 0xBA 0x59 0x00 0x00 0x00 0x00) y luego le asigna un nuevo valor (HEX: 0x14 0x54 0xBA 0x59 0x00 0x00 0x00 0x00):


...por el tipo de incrementación en el valor, creo que esto podría ser la forma en la que el programa detecta el número de usos en el modo trial, pero podría ser cualquier otra cosa en realidad.
Nota: Al convertir el valor HEX a ASCII se obtienen caracteres no imprimibles.

Un problema bastante grave es que por alguna extraña razón que desconozco, pero la cual evidentemente está relacionada de forma directa con el sistema/algoritmo de protección del programa, es que cuando intento acceder a la subclave "Trial78c7" para ver que valores de registro existen dentro, me salta esto:


..¿WTF?. He intentado utilizar otros visores profesionales del registro (ej. Registry Workshop) y tampoco pueden acceder a la clave. No es un problema de permisos de usuario, ese mensaje de error lo descarta completamente...

Esto significa que, aparte de no poder acceder de forma natural a esa subclave (y por ende no poderla exportar), tampoco puedo eliminarla ni crear un valor dentro. Evidentemente debe ser posible, si el programa puede manipular esa subclave de registro yo también debería poder conseguirlo de forma programatica, pero no he hallado el modo de hacerlo.




Cita de: MCKSys Argentina en 10 Octubre 2017, 02:37 AMNo he visto el programa y tampoco tengo tiempo libre como para hacerlo, pero dada la funcionalidad del mismo, puedes mirar este otro, el cual es gratis: https://code.google.com/archive/p/antispy/downloads

Tiene muchas funcionalidades, entre las cuales te permite borrar paths muy largos.

Gracias @MckSys, pero lamentablemente al intentar ejecutar el programa salta una caja de mensaje diciendo "La versión actual de este programa no soporta Windows de 64 Bits" (algo bastante decepcionante si nos fijamos en que la última release de ese programa es más o menos reciente, del año 2013).

Un saludo!








apuromafo CLS

#8
lo baje, coloque la clave, hoy muestra expirado (pasaron los 3 dias desde entonces),  
creo que pille donde cambiar xD

0056E805 | 8B 4D DC                  | mov ecx, dword ptr ss:[ebp - 0x24]                                |
0056E808 | A1 4C FA 60 00            | mov eax, dword ptr ds:[0x60FA4C]                                  |
0056E80D | 41                        | inc ecx                                                           | apuromafo
0056E80E | 90                        | nop                                                               |
0056E80F | 1B C9                     | sbb ecx, ecx                                                      |
0056E811 | 83 E1 38                  | and ecx, 0x38                                                     |
0056E814 | 83 C1 08                  | add ecx, 0x8                                                      |
0056E817 | 09 08                     | or dword ptr ds:[eax], ecx                                        |
0056E819 | 8D 75 D8                  | lea esi, dword ptr ss:[ebp - 0x28]                                |

el cambio de logica es que el valor de ecx trabaja el contador de dias o bien la habilitacion de los botones, solo revise 2 minutos, si el valor no es cero (or ecx), entonces tienes mas tiempo, algo asi asumo el algoritmo, al cambiar con inc ecx, el programa inicia de lo mas bien ya que tiene su clave (trial full ?)



Saludos Apuromafo

pd: en caso x que quieras probarlo, aqui va adjunto
http://rgho.st/7wG5ySwrm

aún falta el mensaje que dice que detecta que esta corrupto (que ha sido modificado)

Executable file seems corrupted

Eleкtro

#9
Cita de: apuromafo en 10 Octubre 2017, 17:33 PM
el cambio de logica es que el valor de ecx trabaja el contador de dias o bien la habilitacion de los botones, solo revise 2 minutos, si el valor no es cero (or ecx), entonces tienes mas tiempo, algo asi asumo el algoritmo, al cambiar con inc ecx, el programa inicia de lo mas bien ya que tiene su clave (trial full ?)

Genial que hayas logrado que ya no vuelva a pedir el serial y el límite de usos/operaciones, pero si te fijas el programa no funciona correctamente tras esa modificacion que realizaste, los nodos del arbol de carpetas no se expanden:



Y si ingresas manualmente un directorio o usas el botón "browse" tampoco funciona correctamente, no encuentra archivos con nombres largos.

Esos problemas ocurren cuando el programa detecta que el trial ha expirado. Es decir, mientras la app está en modo trial con una clave que no haya expirado, todo lo que ahora no funciona debería funcionar, pero cuando la app detecta que el trial ha expirado entonces los botones nodos y practicamente todas las funcionalidades del programa dejan de funcionar, como ocurre ahora.

En resumen, lamentablemente la app no se puede utilizar en el estado actual por que de algún modo sigue detectando que el trial ha expirado y por eso se "auto-limita" asimismo las funcionalidades de la interfaz de usuario, evitando que no se puedan expandir los nodos, ni usar los botones, ni renombrar archivos ni nada de nada. :P

PD: Si necesitas una clave trial que funcione para comprobrar como funciona la interfáz de usuario, te puedo enviar una.

Muchísimas gracias de todos modos!!