Details

Title Выявление дубликатов программного кода в исполняемых файлах на базе интеллектуальной оценки семантической схожести: выпускная квалификационная работа бакалавра: направление 10.03.01 «Информационная безопасность» ; образовательная программа 10.03.01_05 «Безопасность компьютерных систем (Интеллектуальная защита от киберугроз)» = Detecting Duplicate Software Code in Executable Files Based on Intelligent Semantic Similarity Assessment
Creators Пузырев Григорий Александрович
Scientific adviser Завадский Евгений Владимирович
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Imprint Санкт-Петербург, 2026
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects схожесть бинарных файлов ; программные клоны ; бинарные файлы ; граф потока управления ; нейронные сети ; binary file similarity ; software clones ; binary files ; control flow graph ; neural networks
Document type Bachelor graduation qualification work
Language Russian
Level of education Bachelor
Speciality code (FGOS) 10.03.01
Speciality group (FGOS) 100000 - Информационная безопасность
DOI 10.18720/SPBPU/3/2026/vr/vr26-3157
Rights Доступ по паролю из сети Интернет (чтение, печать, копирование)
Additionally New arrival
Record key ru\spstu\vkr\42831
Record create date 8/21/2026

Allowed Actions

Action 'Read' will be available if administrator prepare required files

Action 'Download' will be available if you login or access site from another network

Group Anonymous
Network Internet

Целью работы является разработка и экспериментальная проверка метода выявления дубликатов программного кода в исполняемых файлах, основанного на анализе семантической схожести. Объектом исследования являются фрагменты исполняемых файлов программного обеспечения. Задачи, решаемые в ходе исследования: 1. Анализ методов выявления дубликатов кода в исполняемых файлах и обзор решений. 2. Разработка метода сравнения фрагментов бинарного кода на основе семантической оценки. 3. Формирование выборки для обучения и тестирования модели искусственного интеллекта. 4. Тестирование разработанного решения. В ходе работы были проанализированы основные методы обнаружения клонов кода. Разработан собственный подход к оценке схожести фрагментов бинарного кода, который позволяет выявлять все виды клонов с использованием графовой нейронной сети. Результаты тестирования на различном программном обеспечении показывают, что метод показывает более точные результаты относительно сравниваемых решений. В процессе выполнения работы использовались следующие информационные технологии и программные средства: язык программирования Python 3 в качестве основного инструмента разработки; фреймворк глубокого обучения PyTorch и библиотека PyTorch Geometric для реализации и обучения графовых нейронных сетей; библиотеки scikit-learn и NumPy для вычисления метрик качества и обработки данных; инструмент статического анализа бинарного кода radare2 совместно с библиотекой r2pipe для автоматического дизассемблирования и извлечения графов потока управления из исполняемых файлов форматов ELF и PE.

The aim of this work is to develop and experimentally validate a method for detecting duplicate software code in executable files based on semantic similarity analysis. The object of this study is fragments of executable software files. Problems addressed in this study: 1. Analysis of methods for detecting duplicate code in executable files and a review of solutions. 2. Development of a method for comparing binary code fragments based on semantic assessment. 3. Generating a sample for training and testing the artificial intelligence model. 4. Testing the developed solution. During the course of this work, the main methods for detecting code clones were analyzed. A proprietary approach to assessing the similarity of binary code fragments was developed, which enables the detection of all types of clones using a graph neural network. Testing results on various software demonstrate that this method yields more accurate results than the compared solutions. The following information technologies and software tools were used: Python 3 as the primary development tool; the PyTorch deep learning framework and the PyTorch Geometric library for implementing and training graph neural networks; the scikit-learn and NumPy libraries for calculating quality metrics and processing data; and the radare2 static binary code analysis tool in conjunction with the r2pipe library for automatic disassembly and extraction of control flow graphs from ELF and PE executable files.

Network User group Action
ILC SPbPU Local Network All
Download
Internet Authorized users SPbPU
Download
Internet Anonymous
...