Соколов Володимир2024-03-052024-03-052023Соколов, В. Аналіз можливостей ChatGpt щодо розв’язку задач реверс-інжинірингу програмного забезпечення / Соколов Володимир // Information Technology and Security. – 2023. – Vol. 11, Iss. 2 (21). – Pp. 193–205. – Bibliogr.: 11 ref.2411-1031https://ela.kpi.ua/handle/123456789/65225В статті представлено результати аналізу та оцінки можливостей відкритої версії чат- боту зі штучним інтелектом ChatGPT 3.5 щодо розв’язку типових задач реверс-інжинірингу програмного забезпечення. Для аналізу було обрано три класи задач реверс-інжинірингу: аналіз вихідного коду, аналіз бінарного коду та аналіз моделей даних. В кожному класі задач було обрано найбільш типові задачі з урахуванням обмежень ChatGPT щодо обробки графічних моделей та обсягу вхідних та вихідних даних, а також розроблено набори тестових завдань по кожній задачі. В якості підходу до оцінювання обрано підхід, аналогічний оцінюванню компетентностей здобувачів вищої освіти після вивчення відповідної дисципліни. В якості критеріїв оцінювання відповідей по тестовим завданням розглядались наступні: коректність (правильність, збіг з очікуваннями); повнота (отримання кінцевого результату); точність (розв’язок завдання без додаткових питань); обґрунтованість (наявність пояснень та відповіді на питання). Для оцінок використано та описано наступну шкалу: відмінно, дуже добре, добре, задовільно, достатньо, незадовільно. Під час проведення тестування по кожному тестовому завданню через інтерфейс ChatGPT вводились завдання та всі необхідні дані. В результаті проведеного аналізу визначено, що ChatGPT краще розв’язує задачі аналізу вихідного коду (відмінні та дуже добрі оцінки отримано за семантичний та структурний аналіз, відновлення математичного забезпечення, оцінку якості, аудит безпеки та рефакторинг, а також за конвертацію в іншу мову програмування), задачі декомпіляції псевдокоду IDA в закінчений вихідний код мовою C, задачі реверс-інжинірингу реляційних баз даних та задачі генерації правил YARA для розпізнавання форматів файлів. Незадовільні оцінки були отримані за динамічний аналіз асемблерного коду та визначення структур бінарних файлів нестандартних форматів. Решту задач ChatGPT розв’язує добре або задовільно та потребує перевірки отриманих результатів, уточнюючих запитів та підказок, а також ручного виправлення помилок в деяких випадках. Було виявлено помилки ChatGPT під час аналізу бінарних даних, представлених символами в шістнадцятковій системі числення, а також помилки в згенерованих скриптах для програмування в IDA. На основі виставлених оцінок зроблено висновки щодо доцільності, можливості або недоцільності застосування ChatGPT для розв’язку кожного типу задач реверс-інжинірингу програмного забезпечення, а також надано відповідні рекомендації.ukChatGPTреверс-інжинірингпрограмне забезпеченняreverse engineeringsoftwareАналіз можливостей chatgpt щодо розв’язку задач реверс-інжинірингу програмного забезпеченняAnalysis of ChatGpt's capabilities for solving problems of reverse-engineering of softwareArticlePp. 193-205https://doi.org/10.20535/2411-1031.2023.11.2.293778004(8+05)0000-0002-5779-7167