Esta es una inquietud que de seguro tendrán muchos programadores o desarrolladores, pensando ¿vale la pena proteger o no su aplicación?, a mi manera de ver siempre es necesario protegerla, aunque no se trate esta de un programa shareware, el mismo que se queda 100% funcional tan solo con ingresar un serial correcto, la razón va más allá de ello pues sin querer podemos causar daños a terceros por un mal diseño de las protecciones de la aplicación o por la inexistencia de las mismas, es decir no solamente pasa por que nuestra programa puede ser crackeado y distribuido de forma ilícita, pues de quererlo el cracker podría realizar las modificaciones que quisiera y haría que el programa se comporte como a bien tuviera el, un claro ejemplo de ello lo tenemos en Foxit Reader, un programa para visualizar archivos PDF, como lo hace Adobe Reader, que por cierto Foxit Reader me parece un excelente programa, mucho más liviano que el Adobe Reader, pero el problema es que no tiene ningún sistema de protección, como podría ser un Packer por ejemplo para evitar que pueda ser crackeado o reducir en algo ésta posibilidad pues no existe la protección perfecta (sino pregúntenle a Microsoft que gasta millones de dólares en protección de su software y es el más pirateado a nivel mundial), por la red anda circulando un tutorial de cómo poder leer, copiar o imprimir documentos PDF protegidos tan solo con la modificación de un par de saltos condicionales, es decir que aquí el perjudicado no son los Desarrolladores de Foxit Reader, pues no se está hablando de modificación de su programa para evitar la compra de su licencia ni mucho menos, lo que se habla es que todas las personas que por una u otra razón protegen sus documentos para publicarlos como creen mejor, están siendo las perjudicadas por un descuido de estos señores, no es que tenga nada en contra de ellos ni mucho menos, pero es por citarles un ejemplo, entonces a mas de pensar en nuestro beneficio como desarrolladores de aplicaciones, deberíamos pensar en la seguridad del cliente o de terceras personas que podrían verse afectadas, así que independientemente de si el software será distribuido por internet o se trata de software diseñado a la medida debe ser protegido, no está demás emplear algún algoritmo criptográfico para cadenas de texto y el empleo de un packer para proteger el ejecutable si se trata de una aplicación Win32 o un ofuscador en caso de ser una aplicación .NET, que por cierto visual estudio trae incorporado uno el Dotofuscator, que muy pocos utilizan quizá por su desconocimiento.
No está por demás decir que no se confíen tampoco por completo por los packers y ofuscadores, no está por demás hacer nuestras propias implementaciones de protección, pues he visto que existen muchas personas y compañías que le dejan toda la protección al packer, y al momento que el cracker a logrado burlar este la aplicación se encuentra a sus pies, no olviden que en computación e informática casi todo es reversible salvo unos cuantos algoritmos criptográficos, así que no escatimen tiempo en desarrollar un buen sistema de protección tanto para el beneficio de Ud. como desarrolladores como para las personas que puedan verse afectadas por un mala protección de una aplicación.