Pregunta

Estoy muy triste porque hace unos días lanzamos nuestro software desarrollado en .NET 4.0 (aplicación de escritorio). Después de 3 días, su crack estaba disponible en Internet. Intentamos proteger el software de esto, pero de alguna manera las personas se escaparon, lo quebró.

Aquí está el escenario: Cuando la aplicación se inicia la primera vez que se comunica con el servidor web y verifica las credenciales aprobadas por el usuario. Si las credenciales son correctas, el software guarda los valores en el registro, envía a la máquina de nuevo al servidor y lo almacena en la base de datos.

Ahora, el hacker ha reemplazado la comunicación del servidor con un "Devolver VERDADERO"; Declaración (revisé eso con Telrik Justdecompile). y ha subido el software agrietado en internet.

Ahora, las siguientes son mis preguntas:

1- ¿Cómo asegurarse de que la aplicación .NET no se agrietará?
2- El hacker ahora conoce mi código desde que ha hecho la modificación. ¿Qué pasos debo tomar?
3- Leí en Internet sobre - OBSEJOS. Pero el hacker conoce mi código, ¿qué debo hacer? 4- ¿Alguna otra consejos pro que pueda usar para evitar que se agriete el software? 5- No estoy seguro, pero ¿pueden estos softwares reflectores también descompilar la aplicación. Config con datos sensibles?

¿Fue útil?

Solución

1- ¿Cómo asegurarse de que la aplicación .NET no se agrietará?

Si una computadora puede ejecutar su código +, el hacker puede ejecutar su propio código a un nivel de privilegio más alto que usted, no hay nada que pueda evitar que su aplicación sea agrietada. Incluso si solo tienen acceso a la plataforma ejecutable, pero no a la plataforma de destino, todavía pueden interrogarse y imitar lo que haría la plataforma de destino y descubrirá cómo se está realizando la protección.

2- El hacker ahora conoce mi código desde que ha hecho la modificación. ¿Qué pasos debo tomar?

Reescribe totalmente la parte de autenticación para que tengan que comenzar desde cero, pero lo obtendrán de nuevo, es solo una cuestión de cuánto tiempo.

3- Leí en Internet sobre - OBSEJOS. Pero el hacker conoce mi código, ¿qué debo hacer?

El Jinni está fuera de la botella ahora que tienen el código no ofuscado. No se puede hacer mucho a menos que vuelva a escribir drásticamente el software para que tengan que comenzar desde cero. Un OBFUSEOR no evitará que un atacante determinado, lo único que pueden prevenirlo es mantener el binario de sus manos.

4- ¿Alguna otra consejos pro que pueda usar para evitar que se agriete el software?

La única protección de copia que he visto demorarse de forma remota por cualquier período de tiempo es lo que hizo Ubisoft con el Credo de Assassin: Hermandad. Cifraron los niveles de los niveles con el disco del juego y tuvo que descargar la clave de descifrado de Internet, ya que fue necesario (este es el que mantiene el binario de su enfoque de las manos). Pero eso no funcionó para siempre, eventualmente los hackers obtuvieron esos niveles descifrados y estaba completamente agrietado. Este enfoque es justo lo que vi tomar el tiempo más largo para moverme sin afectación legal (ver punto 2 en la parte inferior)

5- No estoy seguro, pero ¿pueden estos softwares reflectores también descompilar la aplicación? ¿Config con datos confidenciales?

Todos los que deben hacerlo el software reflector es buscar la sección que carga APP.CONFIG y lea cuáles son los valores predeterminados. Hay no Secure Place para almacenar información en una computadora que no tiene control total. Si está en la computadora, se puede leer. Si se puede leer, puede ser diseñado inversor.


La única solución real que puedo ver para prevenir la piratería es una de las dos opciones.

  1. La persona nunca obtiene su aplicación, se transmite de un servidor bajo su control y nunca llegan a ver el binario. Lo único que les envías es la información que necesitan para conducir la UI. Este es el enfoque en el que todos los MMO funcionan. Las personas pueden revertir al ingeniero de revertir lo que está enviando a la UI y imita la lógica que está sucediendo en sus servidores, pero nunca podrán ver directamente lo que está haciendo y, si su software es lo suficientemente complejo, puede que no sea un poco confiable para el atacante Para recrear el código del lado del servidor. El inconveniente de este enfoque es que deberá organizar servidores para que sus usuarios se conecten, este será un costo recurrente, necesitará una forma de re-golpe. A menudo, este método se denomina "cliente rico" o "cliente delgado", dependiendo de la cantidad de procesamiento, se realiza el lado del cliente y la cantidad de procesamiento se realiza el lado del servidor. Consultela Capítulo 22 de " Guía de arquitectura de aplicaciones de Microsoft, 2ª edición ". Específicamente estoy describiendo lo que se muestra en Figura 4 y 5

  2. La opción Seccond es quienquiera que venga su software, también firme un contrato legal para no distribuir el software (no un EULA, un contrato real que debe estar firmado físicamente por el cliente). En ese contrato, se deben aplicar grandes multas a la persona que gotea el software, luego acigima su programa con huellas dactilares que son exclusivas de la persona que compra el software para que cuando se filtre el programa, puede ver quién lo hizo. (Este es el método que los rayos HEX de proveedores utilizan para su desasmador IDA . Una búsqueda rápida de Google no pudo continuar con versiones más recientes que 6.1, están en 6.3 ). Este método no detendrá la piratería, pero puede desalentar la copia a filtrarse en primer lugar. Esto también le permite recuperar algunos costos perdidos asociados con el programa que se está filtrando en primer lugar. Un problema es que deberá poner muchas huellas dactilares y deberán ser sutiles, si un atacante puede obtener dos copias del programa y puede comparar los archivos entre

Een los dos Él podrá decir cuál es la información de identificación y simplemente poner lo que quieran, por lo que no pueden decírselo. La única forma de hacerlo se pone en contacto con muchos bastidores en rojo que no se puede quitar ni aleatorizar, también hacer que el código de identificación no sea crítico para ejecutar el software, si no tienen que trabajar para resolverlo. son más propensos a dejarlo en.


update : Después de volver a visitar esta respuesta para vincularlo para otra pregunta, pensé en una forma fácil de implementar la solución # 2.

Todo lo que necesita hacer es ejecutar su código a través de un OBFUSTATEOR y deje que cambie el nombre de sus clases para cada persona que venda su software a (todavía les hice firmar un acuerdo de licencia, no solo haga clic en un EULA para que pueda hacer cumplir la siguiente parte). Luego, realiza una base de datos del mapeo de la Oferción, cuando vea una copia filtrada en Internet, solo necesita encontrar una clase en cualquier lugar del proyecto, buscarlo en su base de datos, y sabrá quién lo filtró y sabrá a quién necesites. para ir después de daños legales.

Otros consejos

1: no puedes.Puede ofuscar, pero la única forma de prevenir esto es: no le dé a nadie el exe.Mira cuántas compañías de juegos pasan en esto;Ellos tampoco lo han resuelto.

2: OBFUNCACIÓN le ayudaría a un poco , aunque es una carrera de armas entre los ofuscadores y los deserfuscadores

3: demasiado tarde para volver y deshacer eso, pero la ofuscación los frenará un poco en el futuro

5: App.config suele ser muy legible;No puedes hacer mucho aquí;El cifrado solo los ralentizará un poco si las teclas estén en su aplicación y, por lo tanto, obtengan

Como otros han dicho que realmente no hay nada que pueda hacer contra una galleta determinada si tienen acceso a su código.La ofuscación proporcionará cierta protección contra una galleta perezosa.

La mejor respuesta es una que tendrá que aceptar.No puedes.Solo concéntrese en darle a sus usuarios una gran experiencia de usuario, y hacer licencias muy fáciles.La posibilidad de que su solicitud pueda ser agrietada no significa que la elección de construir una aplicación de escritorio fue una mala idea.Los piratas serán piratas y los clientes honestos serán clientes honestos.

Aparentemente, hay suficiente valor comercial o intelectual que extrae su aplicación que alguien con habilidades razonables lo intentó casi de inmediato.

La forma de solo , ganarás esa guerra es utilizar paquetes de protección de software comercial.

Si intenta implementar la protección de copia usted mismo, será un objetivo fácil para piratear nuevamente.

Si escribe una aplicación de negocios, no le escribiría también el motor de la base de datos que almacena los datos.Tampoco debe escribir el código de prevención de crack para su solicitud.Eso no es lo que resuelve el problema de su cliente, y se necesita un tremendo habilidad para hacerlo bien.

Lo que puede hacer, además de la ofuscación del código, agregue un mecanismo de descifrado de código basado en el hardware, tenga en cuenta el siguiente escenario, envíe su HWID a su servidor, identifique el número de copia / propietario / instalación/ etc con ese HWID, y responde con una clave de descripción basada en ese HWID para ese binario específico (con las huellas dactilares mencionadas anteriormente), por lo que la piratería sería más difícil, ya que para una funcionalidad completa, necesitan acceso válido a su servidor, de lo contrariono se puede usar el software.

vítores,

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top