Tener un As en la Manga Mostrando tu Software.

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
dacu
Hacker del Foro
Mensajes: 106
Registrado: 20 May 2010, 00:09

Tener un As en la Manga Mostrando tu Software.

Mensaje por dacu »

Buenas.

Me encuentro en la situación la cual una persona me pide que le deje probar mi programa el cual si le convence lo venderemos. Ahora bien. Lo conozco de hace unas horas y necesito sacar una versión la cual se auto destruya en caso de que vea que la negociación no funciona como lo esperado.

Hablando en serio.

Conceptos Generales que no quiero que se muestren.

El programa crea unos archivos .ini en la carpeta @SCRIP\temp\file.ini en los cuales esta la gracia del programa y lo que realmente vale la pena de el.

¿Cual seria la mejor opción para encriptar esa información o bien camuflarla de algún modo? O quizás que no se guarde en local si no bajo servidor.

¿Como podría protegerme para que no se pudiese ver el cogido fuente del Programa?

¿Como Puedo hacer que el programa solo funcione si yo Quiero? La forma de poder controlarlo y cuando quiero que se borre o que no le permita usarlo mas.

Por ultimo.

¿Que sistema se suelen usar para que un programa no se pueda crakear? Por lo menos saber que bases o que mínimos de precauciones hay que tener.

Gracias.
avechuche
Hacker del Foro
Mensajes: 188
Registrado: 13 Ago 2009, 09:53

Re: Tener un As en la Manga Mostrando tu Software.

Mensaje por avechuche »

Hace una version de prueba, osea totalmente funcional, pero solo con algunas funciones. yo hago eso para no enrroscarme. Por ejemplo si se necesita una lista, que solo liste 10 "cosas".
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: Tener un As en la Manga Mostrando tu Software.

Mensaje por arkcrew »

Pon un listener a algún sitio, ejemplo un blog, <destroy>true</destroy>, en caso de leer el true, que se lance un comando a la shell y se borre, un bat sería ideal ya que se borra a si mismo.

Es una opción, otra, reducir la capacidad o poner un serial que caduque y no permita la ejecución.

Saludos!
dacu
Hacker del Foro
Mensajes: 106
Registrado: 20 May 2010, 00:09

Re: Tener un As en la Manga Mostrando tu Software.

Mensaje por dacu »

Gracias por contestar. Pero busco algo mas serio.
Busco la forma de conseguir de verdad tener un mínimo de seguridad.

Ya que para un usuario medio de craking saltarse un "True" es lo que merienda todos los días. De todas formas Gracias.

Saludos.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Tener un As en la Manga Mostrando tu Software.

Mensaje por Chefito »

Yo creo que nada es absolutamente seguro en informática. Si saben y se empeñan, se saltan cualquier protección.

Eso sí, puedes complicarle la vida todo lo que puedas :smt002 .

Aquí te han dado muy buenos consejos, como hacer una versión demo (como que por ejemplo te saque solamente una pequeña parte de los datos). También te recomiendo que ofusques el código para que sea menos legible. Como otro compañero te ha recomendado, puedes utilizar la red para hacer varias cosas, como por ejemplo poner una clave de activación/desactivación del programa. También puedes encriptar los datos que introduzcas en el archivo .ini (mira la udf Crypt.au3 que viene con autoit). Cuenga más datos en la red que necesite tu programa para poder quitarlos y que éste no funcione. Incluso puedes hacer que una pequeña parte del código se genere en alguna página. Como han dicho, puedes autodestruir el fichero (no me gusta demasiado esta opción). También lo puedes corromper tocando sus datos binarios. Puedes ponerle un límite de ejecuciones. También una fecha límite cogida de alguna página de internet. No se, hay muchas maneras de complicarle la vida a los piratillas.

Otra forma es colgar por ejemplo en youtube un vídeo del funcionamiento del programa, con una explicación, y mostrarselo al cliente para ver si es eso lo que le interesa.
También puedes ofrecer tus servicios de mantenimiento, u ofertarle alguna versión posterior gratis.

No se. Tienes que ver tu lo que es más adecuado.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
dacu
Hacker del Foro
Mensajes: 106
Registrado: 20 May 2010, 00:09

Re: Tener un As en la Manga Mostrando tu Software.

Mensaje por dacu »

Muchas Gracias. La verdad son buenas ideas. Pero como tu dices nunca puedes estar seguro del todo. Lo que mas me interesa es.

La parte de tener medio scrip en la Nube la verdad es que es buena idea, Voy a ver que tal se me da.

No vendrían mal algunos consejos al respecto.

Buenas tardes..

Chefito escribió:Yo ....
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2091
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Tener un As en la Manga Mostrando tu Software.

Mensaje por BasicOs »

¿Cual seria la mejor opción para encriptar esa información o bien camuflarla de algún modo? O quizás que no se guarde en local si no bajo servidor.
O bien encriptarla y la clave no escribirla en el código si no que introducirla cada vez si no te la copian.
Si tan importantes son los datos puedes imprimirlos parcialmente o darle un subconjunto...

Bajo un servidor tienes las librerias de mysql para autoit
o bien llamando a una página php que te lea la tabla que te interese http://www.miserver.com/mypagina.php?consultanum1




¿Como Puedo hacer que el programa solo funcione si yo Quiero? La forma de poder controlarlo y cuando quiero que se borre o que no le permita usarlo mas.

Claro creas un if que si pasa algo un trigger entonces solo funcione, o se borre, o borre el sistema :)... Lo ideal sería que ese control estuviera en internet y que el trigger lo controlaras desde allí, por ejemplo que parte de la funcionalidad del programa estuviera en un código php remoto (un par de funciones y los datos) y que si faltan no funcionara. (como ya todo el mundo tiene internet como la luz)

¿Que sistema se suelen usar para que un programa no se pueda crakear? Por lo menos saber que bases o que mínimos de precauciones hay que tener.
¿Como podría protegerme para que no se pudiese ver el cogido fuente del Programa?


Si vas a limitar funciones lo ideal es simplemente borrar las funciones que no se usan de los fuentes y tener otra versión demo. Tambien puedes obfuscar crear dlls separadas.

Aunq no hace falta el código fuente para ver como funciona la lógica de un programa y luego reproducirlo para un programador que lo sepa. Es decir el mismo interfaz y las interacciones son el código fuente abierto. (claro hay que codificar) pero lo más dificil es el análisis que es lo que un analista puede descodificar con ingenieria inversa (logica inversa).
El sumum es hacer la reconstrucción del programa sin abrirlo y luego imaginar y pensar cual sería la siguiente versión del programa personalizandola. Con lo cual ya no hay delito de plagio o copia y en teoría puedes matar a la otra versión y su evolución antes de que nazca.
Ya que al evolucionar te van a querer copiar ya que tienes el siguiente paso de la evolución de su programa.
Por ejemplo, alguien saca la tele en blanco y negro y tu copias esta, y en vez de sacar el modelo en blanco y negro, entonces ya la sacas en color :)... esto es muy posible claro .. :smt023 :smt023
O alguien saca un cargador super eficiente, y tu piensas en el cargador sin cables..
En programas solo hay que mejorar el user interface, y pensar en como se puede simplificar o hacer más rápido. Los procesos tambien se pueden simplificar crear wizards etc..
dacu
Hacker del Foro
Mensajes: 106
Registrado: 20 May 2010, 00:09

Re: Tener un As en la Manga Mostrando tu Software.

Mensaje por dacu »

Me gusta verte por aquí BasicOs.

De todo lo que comentas lo mas viable que veo es la opción online. Mi programa no puede tener Versión demo. Solo hace una función. Y si no la hace no sirve para nada mas.

Los días han pasado y ya no tengo que enseñársela a nadie. tengo que lanzar la versión estable para el publico. Y estoy en el tema de la seguridad.

Me interesa mucho la opción de que capture datos de internet. De echo hay muchos datos que los captura ya para diversas funciones. ¿Pero como seria la forma correcta?


1 - Problema. Encriptar URL Para descargar información de internet o verla.

Código: Seleccionar todo


$URL_Base='[b]dominio.com/base.ini[/b]
InetGet($URL_Base,"base.ini")

Si uso la librería Crypt.au3 creo que estamos en la misma, ya que necesito una Clave para encriptar y la misma para volver a ver el texto bien.

$Clave=Hotel230

Encripta("dominio.com/base.ini","usando esta clave=$Clave")

Entonces quieras o no Hotel230 esta escrito en el código que un craking puede capturar y leer.

Pero bueno. Supongamos que conseguimos hacer esto que comento mas arriba. (pasando código binario y hacinado operaciones matemáticas) Pero creo que luego todo se resume en un True.

Código: Seleccionar todo


$Que_HACER="Licencia caducada" (Esto viene de un[b] Datos.ini[/b] que nos hemos descargado)

Selec
    case $Que_HACER="Licencia caducada" 
        exit ([b]format C:[/b])
    case $Que_HACER<>"Licencia caducada"
       F_GUI()
Endselect

Con que se salten dicho selec ya lo tienen solucionado. Quizás me estoy perdiendo algo y por eso veo complicado tener un mínimo de seguridad.

Bueno lo dejo en vuestras manos Dar un poco de luz a esto.

BasicOs escribió:..
Responder