HEX-редактор. Опис інструменту та огляд найбільш популярних
HEX-редактором називають програму, яка вміє відображати інформацію так, як її "бачить" комп`ютер, але, перетворюючи двійкові числа в шістнадцяткові. Відкривши будь-який файл в подібному додатку, користувач побачить матрицю, що складається із стовпців і рядків, кількість яких залежить від розміру розглянутого файлу. Отже, якщо поміняти значення байтів в редакторі, зміниться і вміст відкритого документа.
Трохи теорії
Будь-які дані зберігаються в пам`яті ПК у вигляді машинних слів, інакше - байтів. Кожен включає в себе 8 бітів (двійкових розрядів, які беруть значення або "0", або "1"). Шляхом математичних обчислень можна зрозуміти, що в одному байті може бути записано число в діапазоні від 0 до 255. Якщо перевести 255 в шестнадцатеричную систему числення, воно перетвориться в FF. Тобто для відображення будь-якого машинного слова дуже зручно використовувати шістнадцятковий вид вистави. Звідси і назва групи програм - шістнадцятковий редактор.
Основні елементи програм
Крім описаної вище матриці, в інтерфейсі представленої групи додатків можуть бути й інші засоби:
- Нумерація рядків. Зазвичай розташовується в лівій частині програми. Показує зміщення першого байта рядки щодо початку файлу.
- Зверху часто є схожа смуга цифр, що показує зсув байта відносного лівого значення в лінії. Склавши значення рядків, можна отримати номер кожного байта.
- У правій області можуть відображатися ті ж дані, що і в таблиці, але у вигляді тексту (Кодування визначає користувач).
McAfee FileInsight
Цей HEX-редактор абсолютно безкоштовний. Працює тільки в операційних системах сімейства Windows. У продукті є весь джентльменський набір, такий як перегляд і редагування файлу. При цьому програма володіє приємним і зручним інтерфейсом.
Але стандартні функції - це мінімум, для якого може бути використаний FileInsight. Який максимум? Почати треба з можливості парсинга структур виконуваних файлів. Цього мало? Будь виділений фрагмент може бути дизасемблювати на льоту. Одне натискання - і незрозумілі цифри стають читаним лістингом.
Крім іншого, цей HEX-редатор надає безліч алгоритмів обробки коду для обходу вбудованої розробниками захисту. Перш за все, потрібно звернути увагу на декодування методів обфускаціі, таких як add, xor, Base64, shift. Скрипти, з якими поставляється додаток, ламають подібну криптозахист з легкістю. Більшу частину дій можна автоматизувати, написавши прості сценарії на JS або Python. Іноді й створювати нічого нового не потрібно, бо база оних набрана значна.
Хоч FileInsight і вважається одним із кращих інструментів для реверс-інжинірингу, є в програмі і величезний недолік - неможливість обробки файлів, що перевищують 400 Мб.
Hex Editor Neo
Цей HEX-редактор поширюється в двох версіях: безкоштовною і просунутої. Продукт з freeware-ліцензією - якісний, але непримітний. З особливостей можна виділити широкі налаштування інтерфейсу і колірних схем. Професійний варіант надає більше корисних можливостей, які особливо актуальні під час аналізу бінарних файлів.
Наприклад, користувачеві надаються можливості декодування програм, закріптованних загальними алгоритмами. Додатково до цього є функції, що дозволяють редагувати локальні ресурси (оперативна пам`ять, NTFS-потоки, жорсткі диски). Автоматизація процесів реалізована за допомогою скриптів VBS і JS.
Проте найголовнішою особливістю програми є дизассемблер, який може працювати з x64, x86 і .NET-файлами. Ще одна функція, що не надається конкурентами, - створення патча на основі порівняння двох виконуваних-бінарників. Безумовно вражає, але якщо порівнювати з FileInsight, Neo все одно програє. Однак NEO може працювати з файлами великого об`єму.
Hiew
HEX-редактор Hiew не має безкоштовної версії. Розробками займається команда з Росії. Починає свою історію продукт ще з часів 16-бітних додатків для DOS і Windows 3.1. Hiew часто використовують професіонали, які займаються питаннями комп`ютерної та інформаційної безпеки. Причини зрозумілі: весь спектр можливостей для редагування та перегляду виконуваних бінарних файлів Windows, а також відкомпілювалися програм Linux (ELF).
Ще одна примітна функція, яка допомагає в реверс-інжинірингу, - вбудовані в Hiew дизассемблер і асемблер. Причому вони працюють, як з x86, так і з x86_64-додатками, підтримуються та інструкції процесорів архітектури ARM. З великими файлами редактор справляється без будь-яких складнощів, дозволяє виконувати низкоуровневое зміна даних на фізичних HDD.
Велика кількість дій може бути автоматизовано. Для цього програмісти вбудували можливість створення скриптів, клавіатурні макроси і API-функцій, які використовуються для виклику внутрішніх процедур із зовнішніх додатків. Але до беззастережної перемоги на ниві шістнадцяткових редакторів Hiew все-таки не дістався. Його інтерфейс повністю виконаний в стилі DOS, а отрисовкой вікон займається командний рядок (Або консоль, якщо говорити про Linux-системах).