Autor Tema: Hackear (o crackear) programa hecho con VB6.  (Leído 7021 veces)

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

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Hackear (o crackear) programa hecho con VB6.
« en: Marzo 26, 2015, 01:29:08 am »
Aun tengo esta inquietud y quiero resolverla antes de soltar un programita que tengo allí bajo el colchón digital.

A ver, el programa trabajara con una BD Access, es un programa muy básico y muy antiguo que tiene que ver con la gestión de citas medicas.

Bueno, el programa SOLO funcionará si hay conexión a internet y esto es para validar "la licencia". Bueno, la política la podemos deliberar pero de momento me interesa la parte técnica.

Dicho de forma sencilla, al instalarse el programita también se instalara el conectormysql, y lo que hará el aplicativo cuando se ejecute es correr una consulta sql contra una BD en un hosting donde preguntara si la empresa LOS GAVILANES existe en la tabla, si existe entonces el programa se levanta, sino existe dara un mensaje de que no se puede ejecutar el programa.

Aquí la pregunta.
¿es interceptable esta consulta desde el aplicativo hecho en VB6? y peor aun, ¿se puede alterar el resultado de la consulta en el app?. Por ejemplo, el programa (o la BD) tiene la empresa LOS POLLITOS y cuando consulte a la BD del hosting se retornara 0 registros porque LOS POLLITOS no esta registrado en la BD del hosting y de alli que si retorna cero registros pues no correra... esta parte es alterable en dicho aplicativo?

Pregunto esto porque hace unas semanas publique un video donde si alteraban el exe y dado que mis conocimientos técnicos sobre esto no son tan profundos tengo esa duda.

Claro que no será lo único que consulte, también evaluare otros datos pero al final solo tendré 2 posibilidades: Verdadero o Falso, o, Cero registros o Un registro y se dispara una acción, entiendo que en ese video alteraban el aplicativo en una copia para tenerlo siempre licenciado, eso entendí. Agradecería me comenten, gracias.
Me encuentras en YAcosta.com

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Hackear (o crackear) programa hecho con VB6.
« Respuesta #1 en: Marzo 26, 2015, 01:52:16 am »
Hola Amigo  :) bueno mis conocimientos en estos menesteres es minimo si es que por decir, casi nada pero bueno yo creo que un crack si lo podria de alguna forma invalidar la consulta,  por que lo comento bueno por que por casualidad me tope con un soft llamado IDM no es o mas bien ignoro si sea VB6 pero te comento

http://www.internetdownloadmanager.com/   hasta donde investigue cada que se conecta o mas bien cada que inicia la pc IDM verifica la licencia, de alguna manera en cada version modifican la forma de validar la lic del soft pero siempre por la red aparece el parche que bloquea modifica la consulta y el programa es full, ahora en cuestion de vb6 entodo lo que sea comentado aqui en el foro que si usbs, que si encriptar etc. etc. algo que me llamo la atencion fue esto que te publico el 3 link es el que me llama mas la atencion y encombinacion con lo que comentan en el primer link por lo menos se puede armar algo que si no es 100% seguro por lo menos al cracker se le dificultara mas, saludos

http://www.karmany.net/proteccion-software/29-vb6-desde-programacion/16-protege-tu-programa-vb6-i

http://www.karmany.net/programacion-software/25-programacion-vb6/132-codigo-ensamblador-en-visual-basic-6

http://www.karmany.net/programacion-software/25-programacion-vb6/141-codigo-ensamblador-en-vb6-complemento-thundervb
« última modificación: Marzo 26, 2015, 01:54:54 am por aedEric »
No he fracasado. He encontrado 10000 soluciones que no funcionan.

Albertomi

  • Gigabyte
  • ****
  • Mensajes: 281
  • Reputación: +153/-0
    • Ver Perfil
Re:Hackear (o crackear) programa hecho con VB6.
« Respuesta #2 en: Marzo 26, 2015, 02:54:27 am »
Estimado YAcosta
Tratare de dar respuesta a tu pregunta por partes
    • ¿es intercéptale esta consulta desde el aplicativo hecho en VB6?  La consulta es intercéptale SI, es intercéptale en el mismo aplicativo echo en cualquier lenguaje. Además, no solo es intercéptale desde el mismo aplicativo, sino, también al momento de viajar por la red. Una forma de mitigar “OjO no solucionar” es no cometiendo un error común que algunos “muchos”  programadores comente, y que consiste en poner en texto plano dentro del código fuente las sentencias SQL, cadenas de conexión, URL’s, rutas locales, etc. Deben de ofuscarla por algún medio las sentencias SQL, cadenas de conexión, URL’s, rutas locales, etc; en un post antiguo explique algo sobre este tema y cómo hacerlo haciendo uso de la función  Chr(). Es importante destacar que la consulta además de ser intercéptale puede ser manipula, te lo comento para sicocearte un poco más, jejeje…  Así que para que puedas estar más tranquilo codifica o encripta la información que trasmites desde tu aplicación cliente en el dispositivo destino hacia la aplicación servidor el servidor local o en la nueve.
    • ¿se puede alterar el resultado de la consulta en el app?. Como lo mencione en el punto 1 si se puede alterar el resultado de la consulta, se puede alterar de ida y de vuelta.
    • Tu mecanismo de detectar internet para funcionar... uhmmm la verdad no es una buena medida y tampoco lo es evaluar Verdadero o Falso. Me explico, imaginemos que tu comunicación la manejas encriptada con llaves asimétricas y le aplicas hash para asegurarte que la información no haya sido manipulada, te compraste un software de esos caros para hacer ofuscamiento de código y en tu sicoseada has comprimido tu ejecutable y todas las dll con UPX, ahora viene la pregunta de Hugo… ósea la pregunta del MILLON… Crees que ahora si estás seguro…!  Jajajaj... En realidad no lo estas, puede que hayas realizado una considerable inversión y esfuerzo por las puras. Solo tengo que comenzar a debagear y/o desensamblar tu aplicación para encontrar el punto dentro de tu código donde preguntas si hay conexión a Internet, luego donde comparas el resultado de tu query si es Verdad o es Falso, de ahí solo tengo que hacer unos cuantos pasos técnicos para inyectar unos cuantos bit más a tu código sin que el sistema operativo detecte que se ha alterado el formato PE del ejecutable y echa la magia. El resultado será, que el nuevo ejecutable no necesitara tener conexión a internet para ejecutarse y siempre se ejecutara como un aplicativo valido “entiéndase legal”
    [/list]Saludos, desde algún lugar de Lima-Perú
    Saludos, desde algún lugar de Lima-Perú

    aedEric

    • Megabyte
    • ***
    • Mensajes: 211
    • Reputación: +20/-0
      • Ver Perfil
    Re:Hackear (o crackear) programa hecho con VB6.
    « Respuesta #3 en: Marzo 26, 2015, 03:02:28 am »
    Gracias  Albertomi por tu explicacion  ;) tan facil de entener saludos
    No he fracasado. He encontrado 10000 soluciones que no funcionan.

    Albertomi

    • Gigabyte
    • ****
    • Mensajes: 281
    • Reputación: +153/-0
      • Ver Perfil
    Re:Hackear (o crackear) programa hecho con VB6.
    « Respuesta #4 en: Marzo 26, 2015, 03:52:47 am »
    Estimado aedEric
    Un gusto saludarte después de mucho tiempo. Al respecto en realidad, el truco es hacerle la vida lo más compleja posible a quien(es) quiera(n) hackear o crakear tu aplicación, con la finalidad de que desistan de hacerlo “algo que podría en ciertos casos resultar utópico”. Pero OjO sí que esto haga a tu aplicación más pesada.

    Una técnica es tener implementados varios mecanismos de verificación pero que estos se disparen de manera aleatoria o que sean disparador por algunos eventos en particular. Otra técnica es usar el repudio (lo contrario al no repudio – me valido solo al inicio -), esto hace que tu aplicación se esté verificando varias veces durante su ejecución y si queremos hacerla más compleja haciendo uso de mecanismos de verificación distintos y disparados de forma aleatoria.
     
    Saludos, desde algún lugar de Lima-Perú
    Saludos, desde algún lugar de Lima-Perú

    Jeronimo

    • Gigabyte
    • ****
    • Mensajes: 402
    • Reputación: +33/-2
      • Ver Perfil
    Re:Hackear (o crackear) programa hecho con VB6.
    « Respuesta #5 en: Marzo 26, 2015, 08:25:32 am »
    Hola a todos.
    Yván: te pido perdón si esto desvirtúa en algo el hilo que creaste, pero necesito preguntar algo a Albertomi relacionado íntimamente con este tema.
    Albertomi: ¿Podrías dar un ejemplo, aunque sea esquemático (si fuera técnico, ¡mejor!), de lo que describiste en tu último comentario? Me gustaría aplicar algunas técnicas precisamente para tratar de disuadir a cualquier intruso de rango medio que quiera quedarse con lo que no le corresponde (tanto la aplicación como la información que constantemente viaja entre ella y el servidor de base de datos).
    Si esto es motivo de otro hilo por desvirtuar este, por favor, avísenme y abro uno nuevo, así este queda limpio.
    Muchas gracias.

    Jerónimo

    YAcosta

    • Moderador Global
    • Exabyte
    • *****
    • Mensajes: 2853
    • Reputación: +160/-38
    • Daddy de Qüentas y QüeryFull
      • Ver Perfil
      • Personal
    Re:Hackear (o crackear) programa hecho con VB6.
    « Respuesta #6 en: Marzo 26, 2015, 12:22:38 pm »
    Hola Erick, gracias por comentar. Hola Jeronimo, no, no creo que se desvirtúe en absoluto porque la pregunta está en contexto.
    Y hola estimado Albertomi, siempre dando la luz, muchas gracias por el dato.

    Bueno con tu primer post de este hilo me entro el desanimo, o sea, tampoco es que quiera meterle mucha ciencia para "protegerme" de hackeos, me quería ir por la lógica de que si lo vendo super barato, a un precio absurdo la gente no le interesaría crakear, pero creo que igual basta que ponga a 1 sol mi soft igual le van a meter mano porque les va a parecer injusto pagar 1 sol... o simplemente por un reto o joda.

    Pero luego en tu segundo post presentaste una idea interesante, y es la de hacer varias verificaciones durante el tiempo de ejecución del soft. Esto puede ser interesante considerarlo, pero la verdad ya deja de ser "divertido" realizar esa protección... aunque en realidad si lo es pero tampoco queria que me demande mas tiempo ello.

    ¿Que hacer entonces??
    Se me ocurren dos caminos para lograr el millón (ahorita viene jeje) y ya no pasaría por validar y defender al software sino en cambiar mi regla de negocio, los caminos son:
    Camino 1.- Me olvido de este aplicativo y lo migro o realizo en web, y cobro alguna misera anualidad por el servicio de uso, eso podría resultar interesante (php, alli te voy)
    o
    Camino 2.- Me olvido de cobrar por este aplicativo y lo entrego free, sin restricción en el tiempo y vería la forma de brindar un cobro por soporte, es decir, paso el valor al servicio y no a la licencia.

    De momento me ha empezado a seducir estas ideas. Le apunto al negocio escalable (aquello que no necesita de mas humanos para crecer) y el Camino 1 es mas escalable que el Camino 2, pero para el Camino 2 ya tengo el soft que solo liberaría y me queda armar la plataforma de soporte y cobrar por el acceso.

    Ambos caminos va a requerir inversión en publicidad.

    Con todo y eso igual quisiera leer la respuesta a Jeronimo.

    Saludos

    « última modificación: Marzo 26, 2015, 12:24:41 pm por YAcosta »
    Me encuentras en YAcosta.com

    Albertomi

    • Gigabyte
    • ****
    • Mensajes: 281
    • Reputación: +153/-0
      • Ver Perfil
    Re:Hackear (o crackear) programa hecho con VB6.
    « Respuesta #7 en: Marzo 30, 2015, 01:49:30 am »
    Estimados Jeronimo / YAcosta
    Ahí les suelto algunas técnicas que podrían intentar de implementar:
      • Para asegurar toda o parte de la información que se transfiere entre el cliente y el servidor  deberían de usar encriptación asimétrica (doble llave) de esta forma lo que harían es entregar una llave publica distinta a cada Persona que les compra vuestra aplicación y que la usan como llave para que la aplicación cliente cifre comunicación. Por el otro lado la aplicación servidor usara su llave privada para descifrar la información recibida.
      • Para hacer uso del repudio, puedes crear un Servicio NT o un Timer en tu aplicación. Sea cual fuere el mecanismo por el que lo implementes lo que vas hacer es volver a validar la legalidad de la aplicación. Para ello puedes leer valores que son propios del equipo como por ejemplo la MAC, ID del Procesador, S/N físico del disco duro. Ahora lo usual es que el código que se encarga de hacer esta verificación forme parte de la misma aplicación cliente o que este en una DLL. Con ello bastaría hackera esa parte, así que para evitar eso debes desde el servidor de la aplicación descargarte el código que realiza esa validación una vez descargado el código lo puedes inyectar dentro de tu aplicación cliente o cargar como una DLL pero desde memoria.
      [/list]
      Espero haber dado alguna luces sobre el tema.

      Saludos, desde algún lugar de Lima-Perú
      Saludos, desde algún lugar de Lima-Perú

      Albertomi

      • Gigabyte
      • ****
      • Mensajes: 281
      • Reputación: +153/-0
        • Ver Perfil
      Re:Hackear (o crackear) programa hecho con VB6.
      « Respuesta #8 en: Marzo 30, 2015, 01:59:24 am »
      Estimado YAcosta

      Por lo expuesto, me parece que queda claro que no es buena idea ni buena práctica el que desde tu aplicación cliente accedan directamente sobre internet a tu servidor de base de datos.

      Saludos, desde algún lugar de Lima-Perú
      Saludos, desde algún lugar de Lima-Perú