Cómo alojar un archivo ejecutable en mi sitio web sin riesgos de ingeniería inversa

Las medidas de prevención de ingeniería inversa son solo ofuscación. Pueden ralentizar el proceso, pero no lo impedirán. La mayoría de estas soluciones simplemente cambian el nombre de las variables / llamadas a funciones o agregan un código adicional para tratar de confundir las cosas.

Solo hay un puñado de productos de ofuscación en el mercado. La mayoría de estos productos utilizan las mismas técnicas básicas. Con una pequeña secuencia de comandos de Python, generalmente puede tomar huellas digitales / identificar el producto utilizado e incluso eliminar una gran cantidad de código basura. Te quedan algunas llamadas de funciones y variables con nombres extraños o llamadas de bucle adicionales que no sirven para nada. Una vez más, con un poco de magia de Python, puede examinar los parámetros en las llamadas a funciones / tipos de datos variables y adivinar el nombre / propósito real. Una vez que pasa por el código por un tiempo, puede descubrir el resto

El problema es que en algún momento el código ejecutable debe ser legible por el hardware para poder ejecutar el código. Con experiencia, el ensamblaje no es realmente tan difícil de entender.

Lo mejor que puede hacer de manera realista es configurar una defensa en capas:

  • Código de acceso: comprime el ejecutable en un formato cifrado. Esto no ahorrará espacio, pero limitará el acceso al ejecutable y evitará problemas de seguridad del navegador al acceder.
  • Proteja la información confidencial: la información confidencial (claves, nombres de servidores, configuraciones) no debe almacenarse en el texto del plan dentro del archivo ejecutable. Cifre estos valores con una clave / alg fuerte y haga que el usuario lo ingrese como parámetro en el momento de la ejecución. (Cifrado de bloque AES con clave de 1048 bits o superior)
  • Comunicación: cifre la comunicación externa con un cifrado asimétrico fuerte. Exponer la clave pública en el código es de poco riesgo.
  • Proteja IP / cálculos confidenciales: algunos IP son demasiado sensibles para codificar en una aplicación distribuida. Codifique esto en un servicio externo y solo haga que la aplicación gestione el envío / recepción de información.

Respuesta corta: no puedes.

Respuesta larga: no puede hacer que sea imposible realizar ingeniería inversa, solo puede hacerlo más difícil. Dependiendo del interés de uno, pueden descifrarlo o no. Depende de cómo generes el archivo. Por ejemplo, usar dotNet es inútil, ya que es de ingeniería inversa fácil. Si te ofuscas C, o asm, junto con una detección de depurador, puedes convencer a la mayoría de las personas de que tu exe no vale la pena. Todo depende de ellos.

Supongo que debes preocupar a tu equipo de soporte de hosting Pueden estar teniendo una solución para esto. Para obtener el mejor soporte de alojamiento, le sugiero que consulte con Scopehosts.coom. y mira el artículo aquí.