¿Cómo esconden el código fuente de un software?

La forma en que se formula esta pregunta hace que sea difícil de responder.

Presupone que el código fuente está de alguna manera dentro de “un software“. Eso no tiene que ser cierto. Un lenguaje compilado (aún la forma más común de escribir programas) convierte el código fuente en datos binarios; Cualquier intento de “descompilar” el binario tiende a ser una suposición más que un hecho difícil. Entonces, si el software fue del tipo que compiló, no le queda fuente para encontrar: el compilador lo usó para compilar el programa, luego tiró el código fuente.

Sin embargo, los lenguajes interpretados como Python actúan sobre un archivo fuente. Ese código es lo que lee el intérprete cada vez que inicia el programa. Es posible, como señaló Edgar Talamantes, escribir código interpretado de una manera calculada para confundir al lector. En ese sentido, se puede decir que puede “ocultar” parte del significado detrás del código. Uno podría ofuscar deliberadamente la forma en que el intérprete encuentra la fuente, y así sucesivamente. Las técnicas de ofuscación generalmente no resisten el escrutinio: con un poco de tiempo, cualquier persona determinada es capaz de seguir las migas de pan.

Al crear un ejecutable binario …

Se llama ofuscación, esto hace que sea más difícil para alguien acceder al código fuente original, pero no imposible.

More Interesting

¿Por qué podría uno elegir Java para un nuevo proyecto?

¿Por qué casi todas las compañías de software (en India) solo usan Linux o Unix en sus oficinas?

¿Cuál es una buena metodología cuando se trabaja en una tarea de programación?

¿Cuál es el software más prolífico utilizado para crear un video a partir de imágenes de diapositivas y videoclips?

¿Cuáles son las diferencias entre un diseñador, un ingeniero y un científico?

Soy un estudiante de secundaria con experiencia en el desarrollo de proyectos Java y en el uso de herramientas de la industria, pero sin antecedentes formales (sobre los cuales las compañías insisten). ¿Cómo puedo desarrollar efectivamente un fondo tan formal?

¿Cuál es la mejor manera de asegurarse de que agregar nuevas funciones en un software no afecte las funciones existentes?

¿Cuál es el mejor enfoque para probar los requisitos implícitos?

¿Alguna información sobre la matriz RACI y el uso real en la industria del software?

¿Qué se debe hacer para crear una atmósfera en los colegios / escuelas de la India, para que los estudiantes comiencen a aprender programación desde su primer año de universidad / a una edad temprana?

¿Por qué las pruebas de mutación son importantes en la ingeniería de software?

¿Cuáles son algunos software escritos hoy que sabes que están escritos en ensamblador?

¿Cuáles son los peores casos de falla de ingeniería de software?

¿Cuáles son los consejos para elegir una empresa de desarrollo de software?

¿Cuáles son buenos ejemplos de expresiones regulares?