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.
- ¿Cómo identifica McAfee un virus?
- ¿Cuál es la mejor experiencia de usuario para restablecer un nombre de usuario o contraseña olvidado?
- ¿Cuál es la mejor contraseña?
- ¿Qué tan bueno es el cifrado de LibreOffice?
- ¿Es posible la fortaleza digital?