Joern es una plataforma para analizar código fuente, código de bytes y ejecutables binarios. Genera gráficos de propiedades de código (CPG), una representación gráfica de código para el análisis de código en varios idiomas. Los gráficos de propiedades del código se almacenan en una base de datos de gráficos personalizada. Esto permite extraer código mediante consultas de búsqueda formuladas en un lenguaje de consulta específico de dominio basado en Scala. Joern se desarrolló con el objetivo de proporcionar una herramienta útil para el descubrimiento e investigación de vulnerabilidades en el análisis de programas estáticos.
Sitio web: https://joern.io
Documentación: https://docs.joern.io/
Especificación: https://cpg.joern.io
overflowdb.traversal.Traversal
. Este cambio no es completamente compatible con versiones anteriores. Consulte aquí para obtener un artículo detallado. wget https://github.com/joernio/joern/releases/latest/download/joern-install.sh
chmod +x ./joern-install.sh
sudo ./joern-install.sh
joern
██╗ ██████╗ ███████╗██████╗ ███╗ ██╗
██║██╔═══██╗██╔════╝██╔══██╗████╗ ██║
██║██║ ██║█████╗ ██████╔╝██╔██╗ ██║
██ ██║██║ ██║██╔══╝ ██╔══██╗██║╚██╗██║
╚█████╔╝╚██████╔╝███████╗██║ ██║██║ ╚████║
╚════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝
Version: 2.0.1
Type `help` to begin
joern>
Si el script de instalación falla por algún motivo, intente
./joern-install --interactive
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern joern
Para ejecutar joern en modo servidor:
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern joern --server
Almalinux 9 requiere que la CPU sea compatible con SSE4.2. Para kvm64 VM, utilice la versión Almalinux 8.
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern-alma8 joern
Se crea una nueva versión automáticamente una vez al día. Los contribuyentes también pueden ejecutar manualmente el flujo de trabajo del lanzamiento si necesitan el lanzamiento antes.
¡Gracias por tomarse el tiempo para contribuir con Joern! Aquí hay algunas pautas para garantizar que su solicitud de extracción se combine lo antes posible:
[javasrc2cpg] Addition Operator Fix
.sbt scalafmt Test/scalafmt
sbt
en su repositorio de joern local, ejecute compile
y manténgalo abierto; esto nos permitirá usar la compilación BSP en el siguiente paso.BSP project
(es decir, no como sbt project
).Build -> build project
o ejecutar una prueba. ms-vscode-remote.remote-containers
Folder contains a Dev Container configuration file. Reopen to folder to develop in a container.
Reopen in Container
para volver a abrir la carpeta en el contenedor creado por el archivo .devcontainer/Dockerfile
scalameta.metals
en VSCode y seleccione import build
en BUILD COMMANDS
import build
se realice correctamente, estará listo para comenzar a escribir código para Joern. Manera rápida de desarrollar y probar QueryDB:
sbt stage
./querydb-install.sh
./joern-scan --list-query-names
El último comando imprime todas las consultas disponibles: agregue la suya propia en querydb, ejecute los comandos anteriores nuevamente para ver que su consulta se haya implementado. Más detalles en el archivo Léame de querydb separado