Controlar la pirateria de mi software

02/01/2009 - 13:04 por Gilbert | Informe spam
Saludos y buen año 2009 para todos

Quisiera si se puede me dijeran alguna tecnica para hacer mas dificil la
pirateria de un software desarrollado en C#.NET para una aplicacion que se
va a distribuir a varias compañias.

Preguntas similare

Leer las respuestas

#6 Gilbert
02/01/2009 - 14:10 | Informe spam
Oye RFOG, se que la ofuscacion no es muy confiable pero por si acaso ya que
veo que manejas el C++, no habran inventado llaves por software es decir
bloques de codigo que no pueda ser descompilado?

Gracias

"RFOG" escribió en el mensaje
news:%
Gilbert avait écrit le 02/01/2009 :

Pues el mejor modo es usar una llave o mochila usb, como las de Aladdin
o similares, pero parte desde el principio de que todo el soft es
pirateable, y el C#, aunque lo ofusques, más.






si si... se que todos son pirateables pero por lo menos no ponerselo tan
facil al pirata:)



Oye eso de mochila usb es lo mismo que hard-lock?



Si, es lo mismo, el HardLock es de Aladdin.

Puede servir para instalaciones personalmente pero por ejemplo si es
software que se puede descargar por internet, como uno lo protegeria o al
menos como controlar que no te lo instalen libremente?
hablo de una aplicacion de windows forms.



Para eso deberías vender la mochila y distribuirla...

Lo de protejer mediante descarga es complicado. Los fabricantes usan
diferentes técnicas:

A) Te envían un número de serie único (asociado o no al nombre del
registro).
B) Lo mismo que A) pero en relación al hardware una vez instalado.
C) Algún sistema de activación con un código generado a partir de A y/o B
D) Online, cada vez que lancen el programa este debe entrar a una web y
mirar si es válido...
E) Otro que se me olvide.

Todos son complicados, tendentes a generar errores estú y en general
saltables en muy poco tiempo, ya que al final la licencia la tienes que
guardar en disco...
Gracias



Microsoft Visual C++ MVP
==> Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
>
Mientras la ciencia tranquiliza, el arte perturba.


Respuesta Responder a este mensaje
#7 Gilbert
02/01/2009 - 14:19 | Informe spam
Ok, voy a chequear esos puntos que mencionas sobre los ofuscadores.
Muchas gracias.

"Eugenio Serrano [MVP]" <eserrano [at] solidq.com> escribió en el mensaje
news:
Hay varios productos. La version gratuita que viene con VS no hace mucha
diferencia http://msdn.microsoft.com/en-us/library/ms227255(VS.80).aspx,
pero con un buen ofuscador, tu codigo puede pasar de algo asi...

for (i=0; i < M.length; i++){
// Adjust position of clock hands
var ML=(ns)?document.layers['nsMinutes'+i]:ieMinutes[i].style;
ML.top=y[i]+HandY+(i*HandHeight)*Math.sin(min)+scrll;
ML.left=x[i]+HandX+(i*HandWidth)*Math.cos(min);
}

A algo asi:

for(O79=0;O79<l6x.length;O79++){var
O63=(l70)?document.layers["nsM\151\156u\164\145s"+O79]:ieMinutes[O79].style;O63.top=l61[O79]+O76+(O79*O75)*Math.sin(O51)+l73;O63.left=l75[O79]+l77+(O79*l76)*Math.cos(O51);}

Podrias convinarlo con alguna rutina de proteccion escrita en C++ no
manejado, y que tu codigo "sensible" llame a esta rutina por medio de
interop para hacer alguna verificacion

Realmente se hace complicado de seguir un codigo asi, pero ten en cuenta
que un buen hacker te hace ingeniera reversa directamente de los bits, asi
que para alguien que realmente quiera hackear tu codigo, se lo dejamos
facil...

Yo diria que hagas una buena repasada a todos los ofuscadores que hay en
el mercado, ya que no solo se limitan a ofuscar tu codigo, sino que
algunos permiten hacer un rebuild de tus librerias haciendo mas complicado
el proceso...

Jejeje, como extraño VB6 que hasta el dia de la fecha no se puede
descompilar :-), pero bueno, como dice un amigo, no todo se puede en la
vida...

Saludos,
Eugenio Serrano
MVP ASP.Net
Solid Quality Mentors

Respuesta Responder a este mensaje
#8 RFOG
02/01/2009 - 15:10 | Informe spam
Gilbert a émis l'idée suivante :
Oye RFOG, se que la ofuscacion no es muy confiable pero por si acaso ya que
veo que manejas el C++, no habran inventado llaves por software es decir
bloques de codigo que no pueda ser descompilado?
Gracias



Hasta donde yo sé, sí, hay llaves de esas en las que puedes meter
código y que solo pueda salir y ser ejecutado bajo tus condiciones. Si
no me equivoco, el modelo más caro de las HardLock lo tiene. Ahora, que
también valga para C# lo ignoro por completo.

Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación

Mientras la ciencia tranquiliza, el arte perturba.
Respuesta Responder a este mensaje
#9 Pedro Maicas
03/01/2009 - 10:15 | Informe spam
On Fri, 2 Jan 2009 09:10:35 -0400, "Gilbert" wrote:

Oye RFOG, se que la ofuscacion no es muy confiable pero por si acaso ya que
veo que manejas el C++, no habran inventado llaves por software es decir
bloques de codigo que no pueda ser descompilado?



El equivalente software a una llave hardware sería una comprobacion
por medio de clave asímetrica vía red. Actualmente prácticamente
todas las computadoras están conectadas a internet, entonces puedes
establecer una validación online durante cada ejecución del programa.
De ese modo no necesitas comprar hardware ni cargar al usuario con un
pincho usb (imagina que todo el mundo hiciera lo mismo), pero tambien
tiene la desventaja de que exige ejecutar el software estando
conectado a internet.

Sin embargo tanto la llave harwdare como la software son fáciles de
reventar "dando un rodeo". Es dificil para un programador que no se
ha dedicado a crackear programas (o a debugear código máquina) darse
cuenta de lo facil que es saltarse la proteccion sin ni siquiera
estudiar el método de protección. Todo se reduce a buscar el punto
donde se da el mensaje de error al usuario y a cambiar una
instruccion de código máquina. Por eso hay tantos programas que se
crackean aplicandoles un parche. Y esto se aplica igualmente al
código ofuscado, ya que no se busca comprender un bloque de
código, sino que basta con buscar el mensaje de error y la
instaruccion de salto que hay inmediatamente antes de mostrar
ese mensaje.



Saludos :-) - Pedro -

http://www.maicas.net/
Respuesta Responder a este mensaje
#10 RFOG
03/01/2009 - 13:15 | Informe spam

El equivalente software a una llave hardware sería una comprobacion
por medio de clave asímetrica vía red. Actualmente prácticamente
todas las computadoras están conectadas a internet, entonces puedes
establecer una validación online durante cada ejecución del programa.
De ese modo no necesitas comprar hardware ni cargar al usuario con un
pincho usb (imagina que todo el mundo hiciera lo mismo), pero tambien
tiene la desventaja de que exige ejecutar el software estando
conectado a internet.

Sin embargo tanto la llave harwdare como la software son fáciles de
reventar "dando un rodeo". Es dificil para un programador que no se
ha dedicado a crackear programas (o a debugear código máquina) darse
cuenta de lo facil que es saltarse la proteccion sin ni siquiera
estudiar el método de protección. Todo se reduce a buscar el punto
donde se da el mensaje de error al usuario y a cambiar una
instruccion de código máquina. Por eso hay tantos programas que se
crackean aplicandoles un parche. Y esto se aplica igualmente al
código ofuscado, ya que no se busca comprender un bloque de
código, sino que basta con buscar el mensaje de error y la
instaruccion de salto que hay inmediatamente antes de mostrar
ese mensaje.




Depende, depende, porque como la llave usb lleve código embebido, como no
simules tu ese código vas arreglado... De todos modos, la última vez que
jugué con algo así (el sistema online, no la llave), el "parche" fue
modificar 5 bytes de un ejecutable, 5 miserrímos bytes para saltarse un
sistema de clave contra clave, activación online y comprobación online de
que el producto es legal en cada lanzamiento... y de eso hace unos cuatro
meses, que no es tan antiguo el producto...

Disclaimer: que nadie se lleve a error que soy un pirata y que me dedico a
eso, simplemente fue un ejercicio y una demostración ante gente sobre lo
que valen las pautas de protección anticopia, de hecho lo que hice lo
borré inmediatamente después de hacerlo.



Saludos :-) - Pedro -

http://www.maicas.net/





Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
Trae contigo, y comerás conmigo.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida