Bytecodedl
Декларативный инструмент статического анализа для Datalog на основе байт -кодов JVM, например CodeQl
Почему Bytecodedl
Имя Bytecodedl эволюционировало из CodeQl. Bytecode соответствует коду, а DL соответствует ql. Это декларативный инструмент статического анализа, в основном, чтобы восполнить сожаление о том, что CodeQL не может напрямую анализировать байт -код.
Этот проект имеет две основные цели:
- Цель обучения - помочь вам начать работу со статическим анализом. Этот проект продемонстрирует, как реализовать некоторые статические алгоритмы анализа через Datalog. По сравнению с императивным статическим анализом этот метод намного проще. Изучив основные принципы, вы также можете самостоятельно сделать правила.
- Чтобы повысить эффективность копания, исследователи безопасности обычно не могут получить исходный код. В большинстве случаев они могут только анализировать пакет JAR, а затем посмотреть на декомпилированный код через идею. Эффективность относительно низкая. Я надеюсь, что функция поиска, функция анализа графа вызовов и функция анализа пятен, предоставленную Bytecodedl, могут повысить эффективность копания для исследователей безопасности.
Установить
- Скачать или построить сами-факт-генератор.jar
- Установите суфле
- Установите neo4j
Докер
Вы можете использовать Docker, который мы построили, как Docker-compose.yml
Функции
Использование
Смотрите папку DOCS
Поддерживать
Какие проблемы столкнулись во время использования, могут быть сделаны через
- Электронная почта: [email protected]
- GitHub: выпуск/обсуждение
- Телеграмма: Bytecodedl
Три способа отзывовать нас
Плагин
- Идея
- Bytecodedl Helper Bdlh
- Плагин языка DataLog IntelliJ-Datalog
Подтверждение
- Благодаря двум учителям Ли Юэ и Тан Тиану из Университета Наняна, которые представили область статического анализа через курс анализа программы, который они предлагали.
- Благодаря Doop, Soot-Fact-Generator.jar предоставлен.