№4. ScannerBox. Аналіз двійкових виконуваних файлів

9 квітня 2023 1 хвилина Автор: Endpool

Двійковий файл та його особливості

Двійковий (бінарний) файл  — в широкому сенсі: файл, що містить послідовність довільних байтів. Назва пов’язана з тим, що байти складаються з біт, тобто двійкових  цифр. В операційних системах та бібліотеках програмування може бути передбачена спеціальна обробка текстових файлів на відміну від бінарних. Наприклад, у системах MS-DOS та Windows бібліотека стандартного введення-виведення мови C реалізована таким чином, що після відкриття файлу в «текстовому» режимі послідовність символів rn читається як один символ n.  Крім того, символ ^Z там розглядається як кінець текстового файлу, тому під час читання файлу у текстовому режимі все, що йде після цього символу, ігнорується. Але якщо файл був відкритий в «двійковому» режимі, то читання і запис відбувається суворо побайтно, без будь-яких перетворень У вузькому сенсі слова двійкові файли протиставляються текстовим файлам. При цьому, з точки зору технічної реалізації на рівні апаратури, текстові файли є окремим випадком двійкових файлів, і, таким чином, в широкому значенні слова під визначення двійковий файл підходить будь-який файл.

Двійковий формат — це формат, у якому інформація записана з допомогою послідовності байт. Бінарним він називається тому, що всі записи всередині файлу робляться лише за допомогою «1» та «0». Такий формат ще називають двійковим, що не є помилкою. Бінарний формат – це протиставлення текстового формату. Умовно будь-яку інформацію для комп’ютера можна записати або у бінарному форматі, або текстовому. До речі, код, написаний будь-якою мовою програмування, – це текстовий формат. Текстовий формат зрозумілий людям, а бінарний формат зрозумілий комп’ютерам. Але якщо копнути «глибше» порівняння текстового та бінарного формату та поглянути з технічної реалізації, тоді можна з’ясувати, що текстовий формат, по суті, є різновидом бінарного формату. Будь-який текстовий файл конвертується в бінарний, щоб його міг «прочитати» комп’ютер. А будь-якому текстовому символу відповідає бінарне поєднання символів, тому з технічного боку кожен формат, який використовується в комп’ютері, є бінарним.

Аналізатори двійковиx файлів

Dorothy2: структура аналізу зловмисного програмного забезпечення/ботнету, написана на Ruby

Dorothy2 – це платформа, створена для аналізу підозрілих двойкових файлів. Його головними перевагами є дуже гнучка модульна среда та інтерактивна структура дослідження з особливим увагою до аналізу мережі. Крім того, він здатний розпізнавати нові породжені процеси, порівнюючи їх із попередньо створеним базовим рівнем. Статичний бінарний аналіз та покращений аналіз поведінки системи буде представлено в наступних версіях. Dorothy2 аналізує двійкові файли за допомогою попередньо налаштованих профілів аналізу. Використання профілів дає досліднику можливість виконувати аналіз набору двійкових файлів за допомогою різних середовищ. Як відомо, деякі шкідливі програми налаштовані на роботу лише в певному середовищі. CSIRT може використовувати їх для тестування підозрілих зловмисних програм лише в середовищі, яке відображає середовище його клієнтів. Джерела також можна налаштувати на автоматичний аналіз певними профілями. Профіль аналізу складається з таких елементів: Певний тип ОС пісочниці. Певна версія ОС ізольованого програмного середовища. Певна мова ОС із пісочниці. Фіксований час очікування аналізу. Кількість запитаних знімків екрана. Список підтримуваних розширень і те, як їх має виконувати гостьова ОС. Фреймворк  складається з п’яти модулів, які можна  виконувати окремо.

 

Натиснути тут

HaboMalHunter: система аналізу шкідливих програм Habo Linux

HaboMalHunter — це підпроект , який можна використовувати для автоматизованого аналізу зловмисного програмного забезпечення та оцінки безпеки в системі Linux. Інструмент допомагає аналітику безпеки ефективно та результативно вилучати статичні та динамічні функції зі зловмисного програмного забезпечення. Згенерований звіт надає суттєву інформацію про процес, файловий ввід/вивід, мережеві та системні виклики.


Натиснути тут

BinAbsInspector: Статичний аналізатор для автоматичного зворотного проектування та вразливостей у двійкових файлах

BinAbsInspector — це статичний аналізатор для автоматизованого зворотного проектування та сканування вразливостей у двійкових файлах, який є довгостроковим дослідницьким проектом, який інкубується в Keenlab. Він заснований на абстрактній інтерпретації за підтримки Ghidra. Він працює на Pcode Ghidra замість збірки. Наразі він підтримує двійкові файли на x86, x64, armv7 та aarch64. Ви можете запустити BinAbsInspector у безголовому режимі, режимі графічного інтерфейсу користувача або за допомогою докера.


Натиснути тут

Cwe_checker: Статичний аналізатор для виявлення помилок, таких як переповнення буфера у двійкових файлах

Сwe_checker — це набір перевірок для виявлення типових класів помилок, таких як розіменування нульового вказівника та переповнення буфера. Ці класи помилок офіційно відомі як переліки загальних недоліків (CWE). Перевірки базуються на різноманітних методах аналізу, починаючи від простої евристики й закінчуючи аналізом потоку даних на основі абстрактної інтерпретації. Його головна мета — допомогти аналітикам швидко знаходити потенційно вразливі шляхи коду. Його основна увага — двойкові файли ELF, які зазвичай зустрічаються в операційних системах Linux та Unix. cwe_checker використовує Ghidra , щоб розібрати двійкові файли в одне загальне проміжне уявлення та реалізує власний аналіз цього ІР. Отже, аналізи можна виконувати на більшості архітектур ЦП, які Ghidra може розібрати, що робить cwe_checker цінним інструментом для аналізу мікропрограм.


Натиснути тут

BinCAT: Статичний аналізатор двійкового коду з інтеграцією IDA. Виконує аналіз вартості та псування

BinCAT — це набір інструментів аналізу статичного двійкового коду, розроблений для допомоги у зворотному проектуванні безпосередньо з IDA або з використанням Python для автоматизації. Він має: аналіз значень (реєстрів і пам’яті), аналіз забруднень, реконструкція та поширення типу, зворотний і прямий аналіз виявлення використання після безкоштовних і подвійних звільнень. Так само це вихідний файл і /bin/cat – виконується файл, що саморозпаковується. Ви можете стерти /bin/cat після того, як переконаєтеся, що /bin/cat працює нормально. Ця утиліта найбільше корисна на системах з дуже маленькими дисками.


Натиснути тут

Інші статті по темі
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.