¿Es posible proteger el código ejecutable de la descompilación cifrándolo, o de alguna manera usando el cifrado para hacer que la descompilación sea imposible o al menos muy difícil de lograr?

Puedes hacerlo más difícil pero no imposible. Esto es típico del malware. Cada instancia utilizará una clave de descifrado diferente, que evita que el antivirus detecte patrones de código comunes en la parte cifrada. Todavía será necesario que haya una rutina de descifrado que no esté encriptada, pero puede ser lo suficientemente genérica como para que no sea posible detectarla.

Sin embargo, esto no es suficiente, porque un humano puede establecer un punto de interrupción en su rutina de descifrado y capturar el código descifrado de la memoria. Para evitar esto, el malware y otros códigos utilizan algunos trucos, como verificar los puntos de interrupción y los procesos de depuración activos o verificar el tiempo entre instrucciones: si el programa tarda demasiado en ejecutarse, sabe que se está depurando. Hay una carrera armamentista entre los autores de malware y las herramientas de ingeniería inversa para encontrar y derrotar nuevas protecciones anti-depuración.

Para la mayoría de los programas, no vale la pena. Nadie va a realizar ingeniería inversa en su programa para robar su código o algoritmos. Si tiene un nuevo algoritmo que es muy novedoso, la forma de protegerlo es con una patente. Los cuatro lugares en los que he visto el uso de anti-reversing en la naturaleza son malware, licencias y activación de software, DRM y código anti-trampa en los juegos.

Sí, de hecho, es posible proteger el código ejecutable de la descompilación cifrándolo. Sin embargo, esto requiere soporte de la máquina subyacente, de modo que el código descifrado solo sea visible para la CPU.

Para obtener más información, comience aquí: Trusted Computing – Wikipedia

(P: “¿Es posible proteger el código ejecutable de la descompilación cifrándolo, o de alguna manera usando el cifrado para hacer que la descompilación sea imposible o al menos muy difícil de lograr?” )

  • ¿Es posible proteger el código ejecutable de la descompilación cifrándolo, o de alguna manera usando el cifrado para hacer que la descompilación sea imposible o al menos muy difícil de lograr?

En realidad no, ya que su código cifrado deberá ser descifrado para que lo ejecute cualquier sistema operativo.

Puede usar cualquiera de una variedad de empaquetadores que comprimen e incluso encriptan su código, pero todos requieren un cargador que pueda usarse para desencriptar la carga útil y hacerla accesible.

Claro, puedes hacer todo eso.

Sin embargo, aún necesita un cargador, que tomará su código cifrado, lo cargará en la memoria y lo descifrará. En ese punto, el cargador necesita la clave de descifrado para hacer su trabajo.

Un hacker razonablemente inteligente puede depurar este proceso y extraer su código sin cifrar. Si su código se ejecuta en una máquina virtual, ahora se puede descompilar. Por supuesto, puede ejecutar un motor de ofuscación sobre la fuente antes de compilar para enmascarar todos los identificadores internos, lo que dificulta la comprensión del código.

Los juegos usan todo tipo de trucos ingeniosos para evitar la copia y siempre hay alguien que los descifra.

Realmente no vale la pena el esfuerzo. Al final, pasarás más tiempo ofuscando tu código que mejorándolo.

En general, probablemente nunca pueda estar completamente seguro en los casos en que necesite personas en las que no confíe para tener un dispositivo de descifrado que funcione. Eso es lo que está describiendo aquí: debe proporcionar a los consumidores dispositivos de descifrado que funcionen (incluidas las claves de descifrado) para que puedan ejecutar su programa, pero no confía en ellos y le preocupa que usen el material descifrado de forma indeseable. formas. Siempre que se encuentre en esta situación, es posible que pueda hacerlo lo suficientemente difícil como para que no valga la pena molestar a nadie, pero nunca sea completamente seguro.

Otro ejemplo de este fracaso ideal es el DVD. Los discos DVD están encriptados, pero cada reproductor de DVD es un dispositivo de desencriptación. Cuando se inventaron los DVD, el plan era vender millones y millones de dispositivos de descifrado (reproductores de DVD) y esperar que los consumidores descifraran los DVD de cierta manera (comprando DVD y reproduciéndolos en reproductores de DVD autorizados) pero no de otra manera ( copiando DVDs). No pasó mucho tiempo para que ese plan fallara. Enjuague y repita para discos Blu-Ray. Juegos de computadora también.

Sí, puede proteger su código de la descompilación, pero eso también evitaría la ejecución. Cualquier programa, que se puede ejecutar en una computadora, también se puede descompilar.

More Interesting

¿Qué es lo mejor que puede hacer o usar para limpiar una computadora que puede tener un virus o malware?

Quiero escribir mi trabajo de investigación sobre seguridad cibernética, en particular centrándome en los países en desarrollo, ¿por dónde empiezo?

¿Qué tipo de cifrado fue utilizado en Enigma por los alemanes? Simétrica o asimétrica?

¿Pueden las docenas de líneas de * aparentemente * caracteres aleatorios que a veces veo en los encabezados de correo electrónico no deseado ser scripts que pueden ejecutarse cuando abro el correo?

Si tiene 2 usuarios en una computadora (Admin y Usuario1) y el Usuario1 obtiene un virus, ¿afecta a ambos usuarios o solo al que lo adquirió?

Cómo instalar Norton Antivirus con una clave de producto

¿Yubikey (o cualquier otro autenticador) reemplazará la contraseña estándar?

¿Qué prueba hay de que los correos electrónicos de Clinton fueron pirateados por Rusia?

¿Qué método de autenticación, número de autenticación de transacción o biometría sería más efectivo para asegurar los servicios bancarios y por qué?

¿Cómo saben los sitios web y foros que fueron pirateados?

¿Cuáles son los temas de tesis relacionados con el área de seguridad cibernética y las relaciones internacionales?

¿Qué era KrebsOnSecurity?

¿Cuáles son algunos cursos para aprender piratería ética? ¿Has hecho alguna? ¿Cómo se puede aprender la ingeniería inversa?

Cómo comenzar mi carrera para ingresar al campo de seguridad de red

¿Cuál es el alcance futuro de la capacitación de expertos en seguridad de puntos de control? ¿Qué hacen las personas con certificación CCSE?