Trailmark: представление кода в виде графа
Всем привет!
Trail of Bits продолжают радовать интересными open-source проектами. В этот раз команда отдала в сообщество свою разработку – Trailmark.
Утилита позволяет превратить исходный код в графовое представление (обогащенный граф вызовов и структуры приложения), к которому можно делать вызовы.
В нём вершинами являются функции, методы, классы и другие сущности кода, а рёбрами — связи между ними: вызовы, наследование, вложенность, импорты и т.д.
Основной задачей, которую хотели решить ребята, был поиск ответа на вопрос: «Могут ли эти недоверенные входные данные достичь этого участка кода?». Не без использования ИИ, конечно же.
У Trailmark есть 3 основные «фазы» работы:
🍭 Parse. Задача фазы – получить информацию о функциях, методах, классах, структурах, интерфейсах и т.д.
🍭 Index. Реализация возможности быстрой работы с графом
🍭 Query. Верхнеуровневый API для взаимодействия с полученным графом
На текущий момент реализована поддержка 17 языков, среди которых Python, JS, TS, PHP, Ruby, C, C++, C#, Java, Golang и не только.
Установка, настройка, запуск, примеры результатов – всё это можно найти в GitHub-репозитории проекта.
Больше информации, включая сценарии использования (да-да, не обошлось без LLM) и skills от Trail of Bits, которые используют Trailmark, можно найти в статье.
Рекомендуем!
Post #1479
2.46K