Es un tema, que como comentáis, siempre depende de hasta que punto uno se quiera complicar la vida para complicársela al cracker. Hace ya muchos años, en los comienzos de los PC, había aplicaciones en diskette que se distribuían encriptadas y se desencriptaban al ejecutarse, necesitando arrancar el PC desde ese disco. De esta forma nunca se tenía el código final leyendo el diskette.
Basado en la encriptación del ejecutable para evitar el análisis del desensamblado del mismo escribí un tutorial, a modo de prueba de concepto, que se basó en encriptar el código compilado de una función vital para el funcionamiento de la aplicación a proteger. El tutorial comienza con un encriptado sencillo que en sucesivas fases de complicación termina convirtiendo la función en un shellcode encriptado. Solo la ejecución de la app y el conocimiento de la clave se desencriptación conseguirían hacer funcionar de forma correcta el programa. Por si es de interés y/o curiosidad os dejo el enlace:
Encriptando funciones.
Saludos.