Estoy escribiendo una tarea para un curso de seguridad, y estoy tratando de crear un ejecutable con el que los estudiantes puedan interactuar (es decir, ejecutar), pero no inspeccionar. En particular, lo que me gustaría es que puedan ejecutar el binario pero que no puedan inspeccionar su contenido de ninguna manera: leyendo el archivo, adjuntando un depurador, etc.
A partir de la prueba y el error, parece que se otorga un permiso de ejecución a "otros", los que no son propietarios del archivo pueden ejecutar pero no leer o adjuntar un depurador (incluido el adjuntarlo después de ejecutarse; en realidad es ptrace eso da el error, por lo que estoy convencido de que no solo gdb no puede leer el archivo binario asociado). Mi pregunta es: estoy en lo cierto? ¿Es suficiente dar permisos de ejecución a los estudiantes? Para ser concretos, se les pide que descifren el cifrado, y la clave se almacena en el binario, por lo que si pueden inspeccionar el binario en cualquier capacidad (incluida la memoria del proceso), podrán eludir el desafío del asignación.