Skip to content

xtronix2000/shELF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Анализ сборки ПО для выявления статических интерпретаторов

Проект предоставляет инструменты для анализа логов сборки и обнаружения статически включенных интерпретаторов в скомпилированных бинарных файлах

Как использовать?

1. Подготовка исходного кода

Поместите архивы с исходным кодом в директорию sources по следующей структуре:

sources/             # Директория с исходными кодами проектов
└── имя_проекта/
    └── исходный_код.tar.gz

2. Сборка Docker-образа

docker build -t strace_debian_12 .

3. Сбор логов трассировки

docker run -it --rm -v "./sources/имя_проекта/:/src" strace_debian_12

Пробросим архив с исходным кодом в контейнер во время запуска, после завершения работы контейнер удалится. Результатом работы станет директория result, содержащая файлы лога трассировки вида build_trace.XXX.

4. Фильтрация и анализ результатов

Скрипт 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

About

Compilation trace analyzer for detecting statically embedded interpreters in binaries

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors