GNU cflow 1.7 ya fue liberada y llega con nuevos comandos y mas

Comment

Novedades

Después de tres años de desarrollo se dio a conocer la liberación de la nueva versión de la utilidad GNU cflow 1.7. Para quienes desconocen de esta utilidad, deben saber que está diseñada para construir un gráfico visual de llamadas a funciones en programas C, que puede usarse para simplificar el estudio de la lógica de la aplicación.

El gráfico se construye únicamente a partir del análisis de los textos fuente, sin necesidad de ejecutar el programa, ademas de que admite la generación de gráficos de flujo directo e inverso, así como la generación de listas de referencias cruzadas para archivos con código.

Después de tres años de desarrollo se dio a conocer la liberación de la nueva versión de la utilidad GNU cflow 1.7. Para quienes desconocen de esta utilidad, deben saber que está diseñada para construir un gráfico visual de llamadas a funciones en programas C, que puede usarse para simplificar el estudio de la lógica de la aplicación.

El gráfico se construye únicamente a partir del análisis de los textos fuente, sin necesidad de ejecutar el programa, ademas de que admite la generación de gráficos de flujo directo e inverso, así como la generación de listas de referencias cruzadas para archivos con código.

Principales novedades de GNU cflow 1.7

En esta nueva versión del lanzamiento se destaca por la implementación de compatibilidad con el formato de salida «dot» (‘–format=dot’) para generar un resultado DOT para su posterior procesamiento en el paquete Graphviz.

Ademas tambien se destaca que se agregó la capacidad de especificar varias funciones de inicio duplicando las opciones ‘–main’, que se generará con un gráfico por separado para cada una de estas funciones.

También se destaca que se agregó la opción «–target=FUNCTION» para restringir el gráfico resultante a solo una rama que incluye ciertas funciones (la opción «–target» se puede especificar varias veces).

Otro de los cambios que se ha integrado en esta nueva versión de GNU cflow 1.7 es que se han agregado nuevos comandos para la navegación de gráficos a cflow-mode:»c» el cual sirve para ir a la función de llamada, «n» el cual sirve para ir a la siguiente función en este nivel de anidamiento y «p» para ir a la función anterior con el mismo nivel de anidamiento.

Por otra parte, tambien se menciona en el anunció de esta nueva versión de GNU cflow 1.7 que también se eliminaron dos vulnerabilidades que se identificaron en 2019 y que provocan daños en la memoria al procesar textos fuente especialmente diseñados en cflow.

De las vulnerabilidades que se solucionaron se menciona lo siguiente:

  • La primera vulnerabilidad (CVE-2019-16165) se produce al acceder a la memoria después de liberarla (use-after-free) en el código del analizador (función de referencia en parser.c).
  • La segunda vulnerabilidad (CVE-2019-16166) se relaciona con un desbordamiento de búfer en la función nexttoken(). En opinión de los desarrolladores, estos problemas no representan una amenaza para la seguridad, ya que se limitan a la terminación anormal de la utilidad.

Finalmente si estás interesado en poder conocer más al respecto sobre esta nueva versión, puedes consultar los detalles en el siguiente enlace.

¿Como instalar cflow en Linux?

Para quienes estén interesados en poder instalar esta utilidad en su sistema, deben saber que cflow está dentro de los repositorios de algunas de las principales distribuciones de linux. Solo he de mencionar que la nueva versión aún no se ha implementado en algunas de ellas, pero es cuestión de dias para que esté lista.

Para el caso de los que son usuarios de Debian, Ubuntu o cualquier derivado de estas, pueden instalar desde la terminal tecleando el siguiente comando:

sudo apt install cflow -y

Para el caso de los usuarios de Arch Linux, Manjaro o cualquier otra distribucion derivada de estas, la instalación la deben hacer desde los repositorios de AUR:

yay -s cflow

En cuanto a los que estén interesados en poder realizar la compilación de la nueva versión, esta la pueden obtener desde el siguiente enlace.

Likes(0)Dislikes(0)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *