Проект предоставляет инструменты для анализа логов сборки и обнаружения статически включенных интерпретаторов в скомпилированных бинарных файлах
Поместите архивы с исходным кодом в директорию sources по следующей структуре:
sources/ # Директория с исходными кодами проектов
└── имя_проекта/
└── исходный_код.tar.gzdocker build -t strace_debian_12 .docker run -it --rm -v "./sources/имя_проекта/:/src" strace_debian_12Пробросим архив с исходным кодом в контейнер во время запуска, после завершения работы контейнер удалится. Результатом работы станет директория result, содержащая файлы лога трассировки вида build_trace.XXX.
Скрипт filter.py проанализирует логи всех проектов и создаст файл interesting.json в директории result каждого проекта. Файл хранит имена логов потенциально интересных для анализа
python3 filter.pyСкрипт parser.py на основе файлов interesting.json выполнит парсинг интересных логов на предмет вхождения слов, которые могут говорить о включении интерпретатора в бинарный файл. Результатом работы скрипта станет файл interpreters.json в корне проекта, содержащий структурированные данные обо всех проектах. Данный файл разбирается аналитиком вручную
python3 parser.py.
├── Dockerfile # Конфигурация Docker для среды сборки
├── filter.py # Скрипт для фильтрации логов сборки
├── parser.py # Скрипт для анализа отфильтрованных данных
├── script.sh # Основной скрипт сборки и сбора логов
└── sources/ # Директория с исходными кодами проектов
├── проект_1/
│ ├── result/ # Содержит логи трассировки сборки
│ └── исходный_код.tar.gz
├── проект_2/
│ ├── result/
│ └── исходный_код.tar.gz
└── проект_N/
├── result/
└── исходный_код.tar.gz