Matlab

Proteger las funciones escritas en Matlab para su distribución

El lenguaje de programación utilizado en Matlab es interpretado. Los algoritmos se escriben en archivos de texto plano y estos son directamente interpretados por Matlab. Esto puede ser un problema a la hora de distribuir a otros el código que hemos escrito. Puede ser que no nos interese que el receptor solamente pueda ejecutar la funcionalidad desarrollada sin acceder a la implementación de esta. En un lenguaje compilado con la compilación se oculta la implementación, pero no es así en el caso de Matlab. Para solucionar este problema en Matlab es posible ofuscar el código, convirtiendo un archivo con extensión .m en uno .p. Así alquilen que recibe este segundo archivo podrá ejecutar el código, pero no estudiar la forma en la que se ha resuelto el problema. Permítenos así proteger las funciones escritas en Matlab.

Proteger un archivo .m en uno .p

La función con la que se pueden ofuscar las funciones en Matlab es pcode. A esta función se le ha de pasar el nombre de un archivo para crear uno nuevo con una ofuscación del anterior. Por ejemplo, la siguiente función realiza la suma de dos valores y los devuelve. Esta función se puede guardar en el archivo suma.m.

function result = suma(x, y)
    result = x + y;
end

Ahora ejecutando en la terminal la siguiente línea se generará un nuevo archivo con extensión .p.

pcode('suma.m')

El nuevo archivo generado contiene la función anterior, pero no se puede abrir con un editor de texto. Si se elimina el archivo original este funcionará exactamente igual. La única diferencia se encuentra al abrir el archivo, ya que en lugar del código original se observará uno sin sentido. En la siguiente captura de pantalla se muestra el archivo que se acaba de generar.

Función suma ofuscada

Es importante notar que esta operación no de puede deshacer. El archivo .m no se puede obtener a partir del archivo .p. Ya que esto es lo que se buscaba al proteger el archivo. Por lo que es necesario conservar el archivo original si no se desea perder el trabajo.

Proteger una carpeta de archivos

Generalmente los proyectos contienen más de un archivo de código y protegerlo uno a uno puede ser tedioso. La función pcode admite que se pase una carpeta y esta protegerá todos los archivos de esta. Por defecto los nuevos archivos se generarán en la carpeta en la ruta actual, si se desea que se almacenen junto a los archivos originales simplemente es necesario indicar la opción -inplace. Por ejemplo, para proteger todos los archivos de la carpeta test se ha de ejecutar

pcode('test/')

Alternativamente, para que todos los archivos se guarden en la carpeta test junto a los archivos originales.

pcode('test/', '-inplace')

En el caso de que existan otros tipos de archivos en la carpeta, como pueden ser imágenes, estos no serán ofuscados. Aunque es posible utilizar comodines para filtrar los archivos.

Consideraciones antes de distribuir el trabajo

Es importante notar que la función pcode ofusca el código, no lo encripta. Esto hace que el archivo .p sea difícil de comprender, pero no es un solución infalible para proteger la propiedad intelectual. Esto se ha de tener en cuenta a la hora de utilizar función para proteger algún trabajo.

Conclusiones

Hoy hemos visto una solución para proteger distribuir el trabajo realizado en Matlab sin la necesidad de compartir el código. Mediante la ofuscación de este se puede agregar una capa de protección que evita la necesidad de compartir secretos al distribuir trabajo realizado en Matlab. A pesar de no ser una solución completamente segura, puede suficiente en la mayoría de los casos.

Imágenes: Pixabay (Omar González)

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

El bestiario de los indicadores económicos absurdos: El zoo patrio

Cualquier país desarrollado tiene sus propios indicadores folclóricos. España, por motivos que tienen mucho que…

4 días ago

Por qué el banco te ofrece un 3% TAE y no es lo que parece

Entras a la web de tu banco. En la página principal, un banner llamativo: “Depósito…

6 días ago

Analytics Lane lanza la versión 1.3 del laboratorio con nuevas herramientas de evaluación de modelos y utilidades prácticas

Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.3, disponible…

1 semana ago

Augurios deportivos y portadas malditas, o cuando The Economist predice mejor al revés – El bestiario de los indicadores económicos absurdos (parte 3)

Cerramos la serie internacional con la categoría más estrambótica de todas: indicadores que predicen el…

2 semanas ago

El Binning en Credit Scoring: El Arte de Discretizar Variables

Si el WOE y el IV son la base matemática del credit scoring, el binning…

2 semanas ago

Analytics Lane lanza la versión 1.2 del laboratorio con nuevas herramientas de ajuste de curvas y cálculo matricial

Seguimos iterando sobre el laboratorio de Analytics Lane y lanzamos la versión 1.2, disponible en:https://www.analyticslane.com/lab/es…

2 semanas ago

This website uses cookies.