.NET Framework - Protect my Code

Asked By Javier Lozano
02-Feb-10 08:06 PM
Hi,

I need to protect my software in 2 areas:

1- Decompilation
How can I prevent (or reduce) the risk of decompilation?

2- Licensing
How can I implement a licensing system: serial codes, limit of concurrent
users, validation keys, etc.


Thanks in advance

Javier Lozano
Lima-Peru
Peru
(1)
Lima
(1)
Encodes
(1)
  Peter Duniho replied to Javier Lozano
02-Feb-10 08:24 PM
Don't let your customers have it.  That is the only way.


Those are all very different things.  In general though, you should not
spend very much time on that sort of thing.  Unless you follow the
previous advice and do not even allow access to your code by customers,
no amount of work will prevent your program from being hacked.

So, spend a small amount of time implementing something simple, and easy
enough to do that the chance of a bug that would affect a paying
customer is practically nil, and call it good.

One common, low-cost approach is to come up with a compact data
structure that encodes your licensing limits (date, concurrent users,
etc. all along with some unique ID for the user), then encrypt that and
make that the product key.

Of course, you need to make sure that you do not try to pack too much
data into the key, otherwise it is lengthy and difficult for a user to
enter when they are not able to copy/paste (from web page, email, etc.).
But that is just good business sense anyway; you do not really want a
very complicated licensing scheme, regardless.

With the encrypted key, then your program simply has to decrypt it when
it runs, and use the data contained within to control how it executes.

A competent hacker will break through a system like that in under an
hour (they will simply modify your program so that the license terms they
want are hard-coded in the program).  But you are not going to protect
your code from a competent hacker anyway.  The real goal is just to help
the usual users stay honest.

Finally, note that even this minimal amount of DRM might not be required
or helpful to you (it is definitely not helpful to your users).
Recently, an e-book publisher (O'Reilly, I think) released sales figures
for their books after they removed all DRM from them.  Their sales
_increased_ as compared to with-DRM by over 100%.  No doubt, much of
that increase is due to factors other than the change in DRM, but the
point is that not having any DRM on their trivially-copied books did not
_inhibit_ the growth of their sales significantly either.

Pete
Create New Account
help
estos art = C3 = ADculos: ASP.NET - Recuperar contenido HTML de otra pagina web http: / / dotnet-peru.blogspot.com / 2008 / 03 / aspnet-recuperar-contenido-de-otr = a.html http: / / dotnet-peru.blogspot.com / 2008 / 03 / aspnet-recuperar-contenido-de-otr = a_13.html http: / / dotnet-peru.blogspot.com / 2008 / 03 / aspnet-recuperar-contenido-de-otr = a_20.html Cualquier cosa, comentas? Segundo Serrano P. Sistemas JABS - JABSOFT Blog: http: / / dotnet-peru.blogspot.com 511-991974975 511-2428802 = 20 - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- = - -- -- -- Esta pagina HTML esta en otro servidor? En Recuperar = 20 contenido HTML de otra pagina web<BR> <A = 20 href = 3D"http: / / dotnet-peru.blogspot.com / 2008 / 03 / aspnet-recuperar-contenid = o-de-otra.html"> http: / / dotnet-peru.blogspot.com / 2008 / 03 / aspnet-recuperar- = contenido-de-otra.html< / A> < / FONT> < / DIV> href = 3D http: / / dotnet-peru.blogspot.com / 2008 / 03 / aspnet-recuperar-contenid = o-de-otra_13.html"> http: / / dotnet-peru.blogspot.com / 2008 / 03 / aspnet-recuper = ar-contenido-de-otra_13.html< / A> < / FONT> < / DIV> href
a> Cualquier cosa, comentas? Segundo Serrano P. http: / / www.jabs.com.pe Blog: http: / / dotnet-peru.blogspot.com 511-91974975 511-2428802 - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- = - -- -- -- que me = 20 tengo es = 20 propiedades = 20 - -- -- - = _NextPart_000_00B6_01C9086E pe"> http: / / www.jabs.com.pe< / A> <BR> Blog: <A = 20 href = 3D"http: / / dotnet-peru.blogspot.com"> http: / / dotnet-peru.blogspot.com< = / A> < / DIV> href = 3D"mailto:kojikabutosv@gmail.com"> <FONT face = 3DArial = 20 size height = 3D300');"> ab = rir ventana< / a> Segundo Serrano P. Sistemas JABS - JABSOFT Blog: http: / / dotnet-peru.blogspot.com 511-91974975 511-2428802 - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- = - -- -- -- Hola Kojikabutosv, entonces qu = E9 tal si cambias para a> Cualquier cosa, comentas? Segundo Serrano P. http: / / www.jabs.com.pe Blog: http: / / dotnet-peru.blogspot.com 511-91974975 511-2428802 - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- = - -- -- colocado que me = 20 tengo es = 20 la = 20 P.<BR> Sistemas<BR> JABS - = 20 JABSOFT<BR> Blog: <A = 20 href = 3D"http: / / dotnet-peru.blogspot.com"> http: / / dotnet-peru.blogspot.com< = / A> <BR> 511-91974975<BR> 511-2428802< / DIV> style = 3D"PADDING-RIGHT: 0px com.pe"> http: / / www.jabs.com.pe< / A> <BR> Blog: <A = = href = 3D"http: / / dotnet-peru.blogspot.com"> http: / / dotnet-peru.blogspot.com< = / A> < / DIV> href = 3D"mailto:kojikabutosv@gmail.com
valida s = F3lo el = grupo correspondiente. Segundo Serrano P. Sistemas JABS - JABSOFT Blog: http: / / dotnet-peru.blogspot.com 511-991974975 511-2428802 - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- = - -- -- -- peque = F1os, = 20 password) = 20 ingresar = 20 datos. = 20 DIV> validationgroup = 3D"Newsletter"< / FONT> < / DIV> el grupo = 20 correspondiente.< / DIV> href = 3D"http: / / dotnet-peru.blogspot.com"> http: / / dotnet-peru.blogspot.com< = / A> <BR> 511-991974975<BR> 511-2428802< / DIV> < / DIV> < / FONT> href = 3D"mailto AskQuestion"> < / asp:button> Cualquier cosa, comentas? Segundo Serrano P. Sistemas JABS - JABSOFT Blog: http: / / dotnet-peru.blogspot.com 511-991974975 511-2428802 - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- = - -- -- -- Hola Alexa, la mayor = EDa de controles tiene una valida s = F3lo el = grupo correspondiente. Segundo Serrano P. Sistemas JABS - JABSOFT Blog: http: / / dotnet-peru.blogspot.com 511-991974975 511-2428802 - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- = - -- -- peque = F1os, = 20 password) = 20 ingresar = 20 datos. = 20 P.<BR> Sistemas<BR> JABS - = 20 JABSOFT<BR> Blog: <A = 20 href = 3D"http: / / dotnet-peru.blogspot.com"> http: / / dotnet-peru.blogspot.com< = / A> <BR> 511-991974975<BR> 511-2428802 in = 20 message <A = 20 style DIV> validationgroup = 3D"Newsletter"< / FONT> < / DIV> el grupo = 20 correspondiente.< / DIV> = href = 3D"http: / / dotnet-peru.blogspot.com"> http: / / dotnet-peru.blogspot.com< = / A> <BR> 511-991974975<BR> 511-2428802< / DIV
value = 3Dstr.toUpperCase(); } Cualquier cosa, comentas? Segundo Serrano P. Sistemas JABS - JABSOFT Blog: http: / / dotnet-peru.blogspot.com 511-991974975 511-2428802 = 20 - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- = - -- -- -- Hola Tengo instaldo el Vwd2008 express, programo con P.<BR> Sistemas<BR> JABS - = 20 JABSOFT<BR> Blog: <A = 20 href = 3D"http: / / dotnet-peru.blogspot.com"> http: / / dotnet-peru.blogspot.com< = / A> <BR> 511-991974975<BR> 511-2428802 = 20 style = 3D"PADDING-RIGHT: 0px value = 3Dstr.toUpperCase(); } Cualquier cosa, comentas? Segundo Serrano P. Sistemas JABS - JABSOFT Blog: http: / / dotnet-peru.blogspot.com 511-991974975 511-2428802 = 20 - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- = - -- -- Hola Tengo instaldo el Vwd2008 express, programo con P.<BR> Sistemas<BR> JABS - = 20 JABSOFT<BR> Blog: <A = 20 = href = 3D"http: / / dotnet-peru.blogspot.com"> http: / / dotnet-peru.blogspot.com< = / A> <BR> 511-991974975<BR> 511-2428802 = 20 style = 3D"PADDING-RIGHT: 0px de pagina.aspx Cualquier cosa, comentas? Segundo Serrano P. Sistemas JABS - JABSOFT Blog: http: / / dotnet-peru.blogspot.com 511-991974975 511-2428802 = 20 - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- = - -- -- -- Segundo, disculpa la ignorancia, soy novato en asp value = 3Dstr.toUpperCase(); } Cualquier cosa, comentas? Segundo Serrano P. Sistemas JABS - JABSOFT Blog: http: / / dotnet-peru.blogspot.com 511-991974975 511-2428802 = 20 - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- = - -- Hola Tengo instaldo el Vwd2008 express, programo con