Аналіз можливостей chatgpt щодо розв’язку задач реверс-інжинірингу програмного забезпечення

dc.contributor.authorСоколов Володимир
dc.date.accessioned2024-03-05T14:15:14Z
dc.date.available2024-03-05T14:15:14Z
dc.date.issued2023
dc.description.abstractВ статті представлено результати аналізу та оцінки можливостей відкритої версії чат- боту зі штучним інтелектом ChatGPT 3.5 щодо розв’язку типових задач реверс-інжинірингу програмного забезпечення. Для аналізу було обрано три класи задач реверс-інжинірингу: аналіз вихідного коду, аналіз бінарного коду та аналіз моделей даних. В кожному класі задач було обрано найбільш типові задачі з урахуванням обмежень ChatGPT щодо обробки графічних моделей та обсягу вхідних та вихідних даних, а також розроблено набори тестових завдань по кожній задачі. В якості підходу до оцінювання обрано підхід, аналогічний оцінюванню компетентностей здобувачів вищої освіти після вивчення відповідної дисципліни. В якості критеріїв оцінювання відповідей по тестовим завданням розглядались наступні: коректність (правильність, збіг з очікуваннями); повнота (отримання кінцевого результату); точність (розв’язок завдання без додаткових питань); обґрунтованість (наявність пояснень та відповіді на питання). Для оцінок використано та описано наступну шкалу: відмінно, дуже добре, добре, задовільно, достатньо, незадовільно. Під час проведення тестування по кожному тестовому завданню через інтерфейс ChatGPT вводились завдання та всі необхідні дані. В результаті проведеного аналізу визначено, що ChatGPT краще розв’язує задачі аналізу вихідного коду (відмінні та дуже добрі оцінки отримано за семантичний та структурний аналіз, відновлення математичного забезпечення, оцінку якості, аудит безпеки та рефакторинг, а також за конвертацію в іншу мову програмування), задачі декомпіляції псевдокоду IDA в закінчений вихідний код мовою C, задачі реверс-інжинірингу реляційних баз даних та задачі генерації правил YARA для розпізнавання форматів файлів. Незадовільні оцінки були отримані за динамічний аналіз асемблерного коду та визначення структур бінарних файлів нестандартних форматів. Решту задач ChatGPT розв’язує добре або задовільно та потребує перевірки отриманих результатів, уточнюючих запитів та підказок, а також ручного виправлення помилок в деяких випадках. Було виявлено помилки ChatGPT під час аналізу бінарних даних, представлених символами в шістнадцятковій системі числення, а також помилки в згенерованих скриптах для програмування в IDA. На основі виставлених оцінок зроблено висновки щодо доцільності, можливості або недоцільності застосування ChatGPT для розв’язку кожного типу задач реверс-інжинірингу програмного забезпечення, а також надано відповідні рекомендації.
dc.description.abstractotherThe article presents the results of the analysis and evaluation of the capabilities of the open version of the chatbot with artificial intelligence ChatGPT 3.5 for solving typical problems of software reverse engineering. Three classes of reverse engineering tasks were selected for analysis: source code analysis, binary code analysis, and data models analysis. In each class of tasks, the most typical tasks were selected taking into account the limitations of ChatGPT regarding the processing of graphical models and the amount of input and output data, and sets of test tasks were developed for each task. As an approach to assessment, an approach similar to the assessment of competencies of higher education applicants after studying the relevant discipline was chosen. The following were considered as criteria for evaluating answers to test tasks: correctness (rightness, coincidence with expectations); completeness (obtaining the final result); accuracy (solving the task without additional questions); reasonableness (availability of explanations and answers to questions). The following scale was used and described for evaluations: excellent, very good, good, satisfactory, sufficient, unsatisfactory. During the testing for each test task, tasks statement and all necessary data were entered through the ChatGPT interface. As a result of the analysis, it was determined that ChatGPT better solves the problems of source code analysis (excellent and very good grades were obtained for semantic and structural analysis, restoration of mathematical support, quality assessment, security audit and refactoring, as well as for conversion to another programming language), tasks of decompilation of IDA pseudocode into complete C source code, tasks of reverse engineering of relational databases, and tasks of generating YARA rules for recognizing file formats. Unsatisfactory grades were obtained for dynamic analysis of assembly code and determination of binary file structures of non-standard formats. ChatGPT solves the rest of the problems well and satisfactorily, but requires checking the results, clarifying queries and prompts, as well as manual error correction in some cases. ChatGPT errors were observed when analyzing binary data represented by hexadecimal symbols, as well as errors in generated scripts for programming in IDA. On the basis of the set grades, conclusions were made regarding the expediency, possibility, or impracticality of using ChatGPT to solve each type of software reverse engineering problems, and appropriate recommendations were also provided. Prospects for further research include testing new versions of ChatGPT and other similar artificial intelligence systems regarding the capabilities of analyzing and synthesizing graphical models of software.
dc.format.pagerangePp. 193-205
dc.identifier.citationСоколов, В. Аналіз можливостей ChatGpt щодо розв’язку задач реверс-інжинірингу програмного забезпечення / Соколов Володимир // Information Technology and Security. – 2023. – Vol. 11, Iss. 2 (21). – Pp. 193–205. – Bibliogr.: 11 ref.
dc.identifier.doihttps://doi.org/10.20535/2411-1031.2023.11.2.293778
dc.identifier.issn2411-1031
dc.identifier.orcid0000-0002-5779-7167
dc.identifier.urihttps://ela.kpi.ua/handle/123456789/65225
dc.language.isouk
dc.publisherNational Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute"
dc.publisher.placeKyiv
dc.relation.ispartofInformation Technology and Security, Vol. 11, Iss. 2 (21)
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/
dc.subjectChatGPT
dc.subjectреверс-інжиніринг
dc.subjectпрограмне забезпечення
dc.subjectreverse engineering
dc.subjectsoftware
dc.subject.udc004(8+05)
dc.titleАналіз можливостей chatgpt щодо розв’язку задач реверс-інжинірингу програмного забезпечення
dc.title.alternativeAnalysis of ChatGpt's capabilities for solving problems of reverse-engineering of software
dc.typeArticle

Файли

Контейнер файлів
Зараз показуємо 1 - 1 з 1
Вантажиться...
Ескіз
Назва:
293778-681416-1-10-20231228.pdf
Розмір:
369.51 KB
Формат:
Adobe Portable Document Format
Ліцензійна угода
Зараз показуємо 1 - 1 з 1
Ескіз недоступний
Назва:
license.txt
Розмір:
8.98 KB
Формат:
Item-specific license agreed upon to submission
Опис: