Joern é uma plataforma para análise de código-fonte, bytecode e executáveis binários. Ele gera gráficos de propriedades de código (CPGs), uma representação gráfica de código para análise de código entre idiomas. Os gráficos de propriedades de código são armazenados em um banco de dados de gráficos personalizado. Isso permite que o código seja extraído usando consultas de pesquisa formuladas em uma linguagem de consulta específica de domínio baseada em Scala. Joern foi desenvolvido com o objetivo de fornecer uma ferramenta útil para descoberta de vulnerabilidades e pesquisa em análise estática de programas.
Site: https://joern.io
Documentação: https://docs.joern.io/
Especificação: https://cpg.joern.io
overflowdb.traversal.Traversal
. Esta mudança não é totalmente compatível com versões anteriores. Veja aqui um artigo detalhado. 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>
Se o script de instalação falhar por algum motivo, tente
./joern-install --interactive
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern joern
Para executar joern no modo servidor:
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern joern --server
Almalinux 9 requer que a CPU suporte SSE4.2. Para VM kvm64, use a versão Almalinux 8.
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern-alma8 joern
Uma nova versão é criada automaticamente uma vez por dia. Os colaboradores também podem executar manualmente o fluxo de trabalho de lançamento se precisarem do lançamento mais cedo.
Obrigado por dedicar seu tempo para contribuir com Joern! Aqui estão algumas diretrizes para garantir que sua solicitação pull seja mesclada o mais rápido possível:
[javasrc2cpg] Addition Operator Fix
.sbt scalafmt Test/scalafmt
sbt
em seu repositório joern local, execute compile
e mantenha-o aberto - isso nos permitirá usar o build BSP na próxima etapaBSP project
(ou seja, não sbt project
!)Build -> build project
ou executar um teste ms-vscode-remote.remote-containers
Folder contains a Dev Container configuration file. Reopen to folder to develop in a container.
Reopen in Container
para reabrir a pasta no contêiner criado pelo arquivo .devcontainer/Dockerfile
scalameta.metals
no VSCode e selecione import build
em BUILD COMMANDS
import build
for bem-sucedida, você estará pronto para começar a escrever o código para Joern Maneira rápida de desenvolver e testar o QueryDB:
sbt stage
./querydb-install.sh
./joern-scan --list-query-names
O último comando imprime todas as consultas disponíveis - adicione a sua própria no querydb, execute os comandos acima novamente para ver se sua consulta foi implantada. Mais detalhes no leia-me separado do querydb