logo linux

Maybe informa de lo que hace un programa antes de ejecutarlo

Maybe es una herramienta que te permitirá saber cual será el resultado de ejecutar un programa antes de su ejecución real.

A veces sucede que no estamos completamente seguros de qué sucederá si se ejecuta un programa o un comando en Linux. Son bastantes foros en los que aparece el clásico hilo de alguien que ha borrado todo su disco duro e incluso todas las unidades montadas en ese momento por accidente simplemente porque ejecutó rm de la forma incorrecta.

Maybe muestra lo que ocurre al ejecutar un comando y ofrece información al usuario sobre qué modificaciones hace a los archivos antes de que se produzca la ejecución en sí. Una vez visto lo que sucedería en caso de ejecución, se podrá decidir si realmente se quiere proceder.

maybe
Maybe informando de operaciones en disco de un programa de pruebas

La forma de funcionar de Maybe es ejecutando los procesos bajo ‘ptrace’ a través de la biblioteca de Python ‘python-ptrace’. Ptrace (process trace) es una llamada de sistema para plataformas Unix-like que se emplea principalmente en el depurado de programas. Con ella es posible ejecutar procesos en una especie de sandbox.

Una vez ejecutado el comando a través de ‘ptrace’, cuando Maybe detecta una llamada de sistema relacionada con modificaciones en el sistema de archivos, se registra la operación y mediante la modificación de unos registros del procesador, esta se redirecciona a una llamada de sistema inválida que no realiza ninguna operación. Finalmente se devuelve un mensaje de operación realizada correctamente a la llamada original. De esa forma, el proceso cree haberse ejecutado correctamente y que los cambios que pretendía se han llevado a cabo cuando en realidad no se ha hecho nada.

Aunque los programas ejecutados a través de Maybe sean incapaces de realizar cambios reales en el sistema de archivos, los desarrolladores de la herramienta advierten de que nunca debe usarse con programas de dudosa procedencia ya que un proceso que se ejecuta sobre Maybe todavía tiene la capacidad de provocar daños al sistema. Esto es debido a que no todas las llamadas de sistema están bloqueadas.

El único requisito de Maybe es tener instalado Python 2.7 o superior o  la versión 3.3 en adelante. Para usarlo tan solo hay que escribir ‘maybe comando’ en consola. El código fuente y la documentación adicional de la herramienta está disponible en su página de GitHub.