Joern — это платформа для анализа исходного кода, байт-кода и двоичных исполняемых файлов. Он генерирует графы свойств кода (CPG), графическое представление кода для межъязыкового анализа кода. Графы свойств кода хранятся в базе данных настраиваемых графов. Это позволяет анализировать код с помощью поисковых запросов, сформулированных на предметно-ориентированном языке запросов на основе Scala. Joern разработан с целью предоставить полезный инструмент для обнаружения и исследования уязвимостей в статическом анализе программ.
Сайт: https://joern.io
Документация: https://docs.joern.io/
Спецификация: https://cpg.joern.io
overflowdb.traversal.Traversal
. Это изменение не полностью обратно совместимо. Подробную запись смотрите здесь. 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>
Если сценарий установки по какой-либо причине не работает, попробуйте
./joern-install --interactive
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern joern
Чтобы запустить joern в режиме сервера:
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern joern --server
Almalinux 9 требует, чтобы процессор поддерживал SSE4.2. Для виртуальной машины kvm64 вместо этого используйте версию Almalinux 8.
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern-alma8 joern
Новый выпуск создается автоматически один раз в день. Участники также могут вручную запустить рабочий процесс выпуска, если выпуск нужен им раньше.
Спасибо, что нашли время внести свой вклад в жизнь Йорна! Вот несколько рекомендаций, которые помогут гарантировать, что ваш запрос на включение будет объединен как можно скорее:
[javasrc2cpg] Addition Operator Fix
.sbt scalafmt Test/scalafmt
sbt
в своем локальном репозитории joern, запустите compile
и оставьте его открытым — это позволит нам использовать сборку BSP на следующем этапе.BSP project
(т.е. не sbt project
!)Build -> build project
или запустить тест. ms-vscode-remote.remote-containers
Folder contains a Dev Container configuration file. Reopen to folder to develop in a container.
Reopen in Container
чтобы повторно открыть папку в контейнере, созданную файлом .devcontainer/Dockerfile
scalameta.metals
в VSCode и выберите import build
в BUILD COMMANDS
import build
вы готовы приступить к написанию кода для Joern. Быстрый способ разработки и тестирования QueryDB:
sbt stage
./querydb-install.sh
./joern-scan --list-query-names
Последняя команда печатает все доступные запросы — добавьте свои собственные в querydb, снова запустите приведенные выше команды, чтобы убедиться, что ваш запрос развернут. Более подробную информацию можно найти в отдельном файле readme querydb.