Se puede copiar todo el código de una app o un software, hacer algunos cambios y luego publicarlo como propio?

¿Sería ético, moral o legal hacerlo? Definitivamente no.

¿Sería técnicamente posible? Tal vez, aunque bastante difícil. El código que tienes cuando ejecutas una aplicación en tu máquina es el código terminado, compilado y empaquetado. No es el código que escribió el programador original (que se llama código fuente), sino una versión transformada del mismo. Por lo general, carecerá de todos los metadatos que el programador utilizó, como nombres de funciones y variables significativas, tipos, estructuras, etc. También habrá eliminado la información de depuración. El proceso de compilación también habrá optimizado el código para eliminar las redundancias, lo que mejora la eficiencia pero también puede dificultar la ingeniería inversa. Con todo esto, básicamente tienes una mancha de binario.

Las aplicaciones también tienen recursos, que consisten en imágenes, sonidos, otros datos, interfaces compiladas, etc. Estos a veces pueden ser reemplazados sin alterar el código que los utiliza, pero no está garantizado sin una comprensión completa del código.

Hoy en día, la mayoría de los sistemas operativos como Mac OS o Windows también firman digitalmente una aplicación para que cualquier manipulación pueda ser detectada. Esencialmente se hace un hash de todo el código y los recursos. Cualquier cambio en cualquiera de ellos (incluso un solo bit cambiado) cambia dramáticamente el hash. Al comparar el hash con el almacenado, cualquier cambio se detecta rápidamente. Pero además, el hash se almacena de forma encriptada y se puede rastrear hasta el autor original (una firma digital). No es posible que otra persona altere la aplicación, regenere los hash y también cifre el hash utilizando la clave privada del autor original, porque no la tiene. Por lo tanto, cualquier aplicación que haya sido hackeada de esa manera es fácilmente detectada y el sistema operativo se negará a ejecutarla. Si usan su propia clave privada, la aplicación hackeada será rastreable hasta ellos. Si la versión hackeada es denunciada (por ejemplo, por el autor original), la autoridad de certificación puede revocar el certificado de firma y la aplicación no estará autorizada para ejecutarse en ninguna máquina.