Енциклопедія пожежної безпеки

Редактор бінарних файлів російською. Шістнадцятковий редактор

Зараз буде великий матеріал на тему того, з чого складаються дані та як їх можна редагувати. Багато хто знає, що будь-який файл на комп'ютері (картинка, текстовий або мультимедійний) є двійковим кодом – нулі та одиниці. Для редагування таких файлів використовуються HEX-редактори- Додаток, що редагує дані, що складаються з байтового коду. Байти в редакторі представлені у вигляді шістнадцяткової системи.

Розширення файлу

Проблема полягає у величезній кількості типів файлів і спочатку не ясно, як операційна система визначає текстові, мультимедійні або архівні та інші типи даних. Як відомо, визначення файлу системою здійснюється за допомогою розширення, що додається після назви, наприклад, ".exe", ".txt" та інші.

Налаштування в ОС гнучкі, а значить розширення будь-якого файлу можна видалити, але тоді операційна система не зможе відкрити його, вона не зрозуміє, за допомогою якої програми його запустити. У цьому логічна структура об'єкта не зміниться. На зображенні видно текстовий файл, а поряд з ним той самий, але без розширення та іконка у нього біла.

Якщо об'єкт без розширення залишається тим самим файлом з логічним набором символом, значить розширення не визначає його тип, але тоді що? Є таке поняття, як формат– це визначає тип, також це є специфікація структури даних. Розширення ж зовсім інший термін. А що робити, якщо користувачеві спочатку потрапив файл без розширення, але його терміново потрібно відкрити, а чим - невідомо?

Дескриптори

Всі файли можна грубо кажучи розділити на дві складові - заголовок, де містяться дані ідентифікації об'єкта, різні метадані. Друга складова – «тіло» об'єкта, за допомогою якого визначається тип об'єкта та частини заголовка, що має назву дескриптора. Два популярні дескриптори – ASCIIі HEX. Другий варіант аналізується за допомогою редакторів, про які було сказано на початку.

Перший метод ASCII визначається за допомогою текстового редактора, наприклад, Notepad++, щоправда, варто врахувати один момент – деякі набори байтів не вдасться перетворити на формат ASCII, а отже рекомендується застосовувати HEX-редактори. Запустивши будь-який файл з допомогою такої утиліти, у вікні відобразиться вид матриці з послідовністю байтів, де один байт міститься в одній з осередків. Відомості про дескриптор зазвичай знаходяться в перших 3-х осередках, рідко в більшій кількості. Осередки вважаються по горизонталі. Дані, що відображаються в осередках представлені у вигляді шістнадцятковому коді.

Розшифровка дескриптора

Щоб зрозуміти, що за дані там знаходяться, потрібно розшифрувати код. Для цього знадобиться спеціальний сервіс, що визначає формати файлів, наприклад open-file.ru. Але є інші ресурси, які легко знайти в інтернеті. Після завантаження файлу на сайт відбудеться аналіз даних, а потім виведення результату. Нижче з'явиться таблиця з типом, форматом та описом файлу.

Те, що ми розібрали вище, – використання HEX-редакторів. Тепер розберемося із кодом ASCII. Цей код можна проаналізувати за допомогою того ж таки open-file.ru. Іншими словами, обидва коди перевіряються на ресурсі і нічого не потрібно вводити.

Іноді формат визначити непросто. Це стосується ASCII-заголовків. Справа в тому, що перші кілька символів можуть мати відношення до розширень файлу, а може і до декількох форматів.

Звісно, ​​є варіант визначення формату. Для аналізу буде використовуватись кілька рядків, а не один. Тоді якийсь із елементів, що знаходиться там, за будь-яким буде вказувати на тип об'єкта.

Що ще можна робити за допомогою редактора HEX

Крім того, що HEX-редактори допомагають проаналізувати будь-який файл, можливо:

  1. працювати з дисковими образами;
  2. редагувати розділи;
  3. змінювати вміст ОЗП;
  4. змінювати віртуальний адресний простір процесу та інше.

Наприклад, утиліти такого типу використовують у розробці ПЗ. Коли необхідно внести дані після компіляції програми, але перекомпілювати її не хочеться. Будь-який код програми можна змінити за допомогою HEX-редактора. Звичайно, це потрібно вміти робити, шукати потрібні дані. Таким чином, домагаються виправлення помилок у коді, або використовують для злому та читерства. Це означає, що застосування HEX-редакторів дуже широке.

Які HEX-редактори використовувати

Існує дуже багато програм для редагування даних, і ось вони представлені нижче:

Популярна утиліта для Windows. За допомогою неї користувачу не складе відкрити будь-який тип файлу та змінити його. Якщо щось відредаговано не так, в утиліті є історія змін і завжди можна повернутись до первісного стану.

Інструмент працює дуже швидко, при цьому небагато важить, а сама здатна працювати з файлами великого обсягу. Інтерфейс простий і підходить для новачків, є російською мовою.

Цей редактор можна використовувати в демо-версії деякий час, а потім необхідно придбати. Інструмент універсальний, де виявлено багато цікавих опцій.

Є можливість працювати не лише з файлами, а й із жорсткими дисками, флеш-носіями, оптичними дисками та навіть дискетами. Усі файлові системи Windows підтримуються. Підтримує функції клонування розділів та повного видалення даних без можливості відновлення

Якщо ви новачок, цієї програми вам вистачить, тим більше в розділі Help є опція перемикання на російськомовний інтерфейс.

Утиліта 2 в 1, оскільки має функцію порівняння файлів та вбудований HEX-редактор. Іноді може знадобитися порівняння даних файлів для визначення відмінностей і подібностей і аналізу структури об'єктів різних форматів.

При відмінності у двох файлах області на матриці будуть пофарбовані в будь-який колір, а саме порівняння відбувається за лічені секунди. Щоправда, для аналізу підійдуть файли трохи більше 4 GB.

Сама утиліта має можливість зміни інтерфейсу. Що означає, користувач може настроїти його під себе. Робота відбуватиметься швидше.

Ця штука поставляється безкоштовно, але вона здатна працювати з об'ємними даними будь-яких форматів та кодувань. Є можливість зміни оперативної пам'яті та жорсткого диска.

Програма поєднує у собі висновок шістнадцяткового коду та текстового ASCII. Інтерфейс для англомовного інтерфейсу цілком простий, тому робота з ним не важко, особливо, якщо ви вже працювали в подібних редакторах.

Якщо якийсь файл не відкрився в одному редакторі, то відкриється в цьому. Тому я і навів тут список із кількох утиліт. Цей інструмент відповідає за відкриття бінарних файлів. Налаштувань багато, а системні вимоги доступні для будь-якого комп'ютера.

Робота в цьому редакторі проста, як під час друку в Word. Є опції порівняння файлів, їх контрольних сум та експорт аналізу до різних форматів, наприклад, html.

Якщо необхідно перевести один код в іншу систему числення, то Hex Workshop присутній конвертер. Програма умовно-безкоштовна, що можна вважати одним із недоліків.

Ось ви дізналися, що таке HEX-редактори і для чого вони використовуються. У майбутньому постараюся написати статті по роботі з ними, наприклад, коли потрібно відредагувати файл.

Після закінчення циклу статтею «Кращі інструменти пентестера» до редакції надійшло чимало листів із проханням зробити добірку hex-редакторів. Інтерес, звісно, ​​представляє можливість редагувати бінарні дані, а додаткові фічі на кшталт автоматичного розпізнавання структур даних і дизассемблирования коду. Щоб зробити огляд, ми з'ясували думки людей, яким найчастіше доводиться копирсатися з такими інструментами – вірусних аналітиків. І ось, що вони нам розповіли.

Будь-який hex-редактор дозволяє досліджувати та модифікувати файл на низькому рівні, оперуючи з бітами та байтами. Зміст файлу представляється у шістнадцятковій формі. Це базовий функціонал. Однак деякі редактори пропонують користувачам набагато більше, дозволяючи розібратися, що є що в тому незрозумілому наборі символів, який з'являється при відкритті файлу. Для цього автоматично витягуються ASCII та Unicode рядки, здійснюється пошук відомих патернів, виконується розпізнавання основних структур даних та багато іншого. Шістнадцяткових редакторів досить багато, але якщо ми вирішили розглянути їх у контексті дослідження зразків малварі, то легко виділити деякі з них. Лише деякі виявляються реально корисними для аналізу шкідливого коду та дослідження заражених документів (скажімо, PDF).

McAfee FileInsight

FileInsight – це безкоштовний hex редактор для Windows від компанії McAfee Labs. Продукт, само собою, виконує весь стандартний функціонал, що супроводжує подібний софт, пропонуючи зручний інтерфейс для перегляду та редагування файлів у шістнадцятковому та текстовому режимах. Але це лише крапля у морі, якщо подивитися на весь його функціонал. Почати варто з того, що FileInsight здатний парсувати структуру виконуваних бінарників для Windows (PE файлів), а також OLE-об'єктів Microsoft Office. Мало цього, користувачеві пропонується вбудований x86 дизассемблер. Достатньо вибрати частину файлу, яку хочеш переглянути у вигляді коду, що читається, і FileInsight покаже цей фрагмент як лістинг асемблерних інструкцій. Дизассемблер особливо корисний, коли шукаєш шовк у шкідливих файлах. Серед інших опцій, які припадуть до душі реверсерам, – можливість імпортувати оголошення структур. Для цього програмі достатньо вказати заголовний файл з оголошеннями на кшталт:

struct ANIHeader (
DWORD cbSizeOf; // Num bytes in AniHeader
DWORD cFrames; // Number of unique Icons
DWORD cSteps; // Number of Blits
};

У цьому випадку програма сама буде ширяти подібні конструкції. Втім, і за промовчанням пропонується чимало інтуїтивних алгоритмів для обробки коду. Йдеться, насамперед, про декодування багатьох методів обфускації (xor, add, shift, Base64 і т.д.) – вбудовані скрипти клацають подібний криптозахист на раз-два. Тут слід зазначити, що як об'єкт дослідження необов'язково має бути бінарник, це може бути і звичайна веб-сторінка, що викликає підозри. Багато дій програма дозволяє автоматизувати за допомогою простих сценаріїв JavaScript або модулів на Python, яких написано вже чимало. На жаль, за всіх переваг, у FileInsight є і серйозний недолік, що виражається в неможливості обробляти великі файли. Наприклад, якщо спробуєш згодувати утиліті файл розміром 400-500 Мб, вилітає помилка «Failed to open document».

Hex Editor Neo

Існує дві версії цього шістнадцяткового редактора від компанії HDD Software – проста безкоштовна та просунута комерційна версія. Freeware-варіант – це добротний, але мало чим примітний HEX-редактор, що має класний інтерфейс, що настроюється, з підтримкою різних колірних схем. Не більше того. А ось професійна версія Hex Editor Neo надає кілька корисних опцій, які можуть бути дуже корисними при аналізі бінарників. Наприклад, користувач має можливість декодування коду, закриптованого за допомогою найбільш загальних алгоритмів. Крім цього з'являється можливість перегляду та редагування локальних ресурсів типу NTFS-потоків, локальних дисків, пам'яті процесу та оперативності. У повній версії з'являється і підтримка скриптової мови, що дозволяє автоматизувати багато процесів за допомогою сценаріїв на VBScript і JavaScript. Але найсмачніше в тому, що до твоїх послуг надається вбудований дизассемблер, який працює і з x86, і з x64, і з .NET-бінарниками! Ще одна фіча - швидке створення патчів, засноване на порівнянні двох бінарників. Звучить вражаюче, але чи краще він, ніж FileInsight? Скоріше немає. FileInsight загалом виглядає більш функціонально. З іншого боку, будь-яка навіть безкоштовна версія Hex Editor Neo відмінно працює навіть з дуже великими файлами і дозволяє шукати ASCII і Unicode-рядки. Дизассемблер тут не обмежується лише x86 платформою, а вбудований редактор ресурсів дуже зручний. Є над чим подумати.

FlexHex

FlexHex – це потужний комерційний hex-редактор від компанії Heaventools Software, який включає багато функцій, доступних у Hex Editor Neo. Єдине, чого тут немає – це, мабуть, підтримка скриптів. Проте цей повнофункціональний редактор однаково добре обробляє бінарники, OLE-файли, фізичні диски та альтернативні NTFS-потоки. Останнє особливо важливо, тому що FlexHex дозволяє редагувати дані, які інші редактори можуть навіть не побачити. До того ж відразу відчувається орієнтованість на роботу з великими масивами інформації: який би розмір не був у файлу, навігація по ньому здійснюється без будь-яких лагів та гальм. Для більшої зручності працює система зручних закладок. При цьому FlexHex безперервно веде історію всіх операцій – можна скасувати будь-яку дію, просто вибравши її зі списку змін (undo-list не обмежений)! У FlexHex підтримуються всі необхідні операції з бінарними даними, пошук ASCII та Unicode-рядків. Якщо необхідно обробляти структуру із заздалегідь відомим форматом, задати її параметри не складе труднощів за допомогою спеціальних інструментів. В результаті отримуємо відмінний hex-редактор, але все-таки сильно поступається тому ж FileInsight. Єдина чудова опція - це обробка OLE-файлів, але і тут є проблеми. Кілька разів при спробі відкрити заражений OLE програма вилітала з помилкою "The docfile has been corrupted".

010 Editor

010 Editor – відомий комерційний продукт розроблений SweetScape Software. Якщо порівнювати його з попередніми трьома інструментами, то він вміє все: підтримує роботу з дуже великими файлами, надає класні можливості по оперуванню з даними, дозволяє редагувати локальні ресурси, має систему скриптингу для автоматизації рутинних дій (понад 140 функцій до твоїх послуг). А ще у 010 Editor є особливість, унікальна фішка. Редактор приділяє всім завдяки можливості парсити різні формати файлів, використовуючи власну бібліотеку шаблонів (так звані Binary Templates). Отут йому немає рівних. Над шаблонами працюють безліч ентузіастів у всьому світі, забиваючи різні структури форматів та даних. В результаті процес навігації за різними форматами файлів стає прозорим та зрозумілим. Це стосується також обробки бінарників для вінди (PE файлів), файлів-ярликів Windows (LNK), Zip-архівів, файлів Java-класів та багато іншого. Всю красу цієї фішки багато хто зміг усвідомити, коли відомий фахівець з безпеки Didier Stevens створив для 010 Editor шаблон для парсингу PDF-файлів. Разом з іншими утилітами це серйозно спростило аналіз заражених PDF-документів, які останні півроку не перестають дивувати кількістю місць, звідки можна експлуатувати програму-читалку. Додаємо сюди класний інструмент для порівняння бінарників, калькулятор з C-подібним синтаксисом, конвертування даних між ASCII, EBCDIC, Unicode-форматами та отримуємо дуже привабливий інструмент з унікальними фішками.

Hiew

Hiew, у плані способу поширення, мало чим відрізняється від своїх колег – це також комерційний продукт, який розробив наш співвітчизник Євген Сусликов. Програма, що має довгу історію, дуже полюбилася багатьом фахівцям з інформаційної безпеки. Тому є цілком очевидні причини – потужні можливості для дослідження та редагування структури та змісту файлів, що виконуються як вінди (PE), так і бінарників для Linux (ELF). Інша дуже корисна фіча для реверсингу – вбудований x86-64 асемблер та дизассемблер. Останній навіть підтримує інструкції ARM. Не треба говорити, що редактор чудово перетравлює великі файли і дозволяє редагувати логічні та фізичні диски. Багато завдань легко автоматизуються з допомогою системи клавіатурних макросів, скриптів і навіть API розробки розширень (Hiew Extrenal Modules). Але перш ніж рватися в бій, врахуй – інтерфейс Hiew є DOS-подібним вікном, працювати з яким з незвички досить незручно. Зате можеш відчути на собі всю красу олдскула.

Radare

Radare – це набір безкоштовних утиліт для Unix-платформи, які надають класні можливості для редагування файлів у режимі HEX. До нього входить безпосередньо сам hex-редактор (radare) з можливістю відкриття локальних та віддалених файлів. Програма аналізує виконувані файли різних форматів, як лінуксових (ELF), так і віндових (PE). Крім редагування в пакеті Radare є інструмент порівняння бінарних файлів (radiff) і вбудований асемблер/дизассемблер. А особисто мені кілька разів став у нагоді інструмент для генерації шелкодів (rasc). Будь-які операції легко можна автоматизувати та підігнати під себе за рахунок скриптової системи. З мінусів, знову ж таки, можна відзначити відсутність GUI-інтерфейсу – всі дії здійснюються з командного рядка, а повноцінно працювати з утилітами вдасться лише прочитавши документацію. З іншого боку на сайті є наочні скринкасти, які демонструють як основні моменти, так і маленькі секрети (на зразок підключення Python-плагіну).

То що ж вибрати?

Ми розглянули кілька потужних hex-редакторів, які включають корисні опції для аналізу підозрілих файлів. З усіх продуктів серйозно виділяється FileInsight, який при всьому своєму функціоналі (а він справді вражає) залишається безкоштовним. 010 Editor надає велику кількість шаблонів для обробки різних файлів, у тому числі PDF-документів. Це мега-фішка, якої не можна нехтувати. Ці два редактори я використовую постійно; Для роботи аналітика, мабуть, вони підходять найкраще. Якщо говорити про роботу під Unix-платформою, то, звісно, ​​не можна забувати про Radare. Пакет пропонує дуже потужні можливості, хоч і складний у використанні через те, що працює з командного рядка. Не дуже доброзичливий і Hiew, хоча його можливості, безумовно, дозволяють виконувати різні операції з бінарниками. До того ж, Hiew - це вибір великої кількості справжніх профі, а це дорогого коштує (і багато що означає). Що стосується Hex Editor Neo, то його варто взяти на озброєння, якщо тебе цікавить можливість дизасемблювати x86, x64 та .NET код.

ПРИМІТКА
Малюнки на цій сторінці не відображаються, але ви можете знайти їх у книзі.

Те, що ми зробимо зараз, на мій погляд дуже цікаве. Це буде ваша перша програма в машинних кодах (і, швидше за все, єдина))).

Асемблер – це мова низького рівня, але все ж таки мова. А чи пробували ви написати програму в машинних кодах? Нині спробуємо.

Написати програму можна і не маючи жодних асемблерів-компіляторів та інших інструментів – за допомогою якогось шістнадцяткового редактора (або hex-редактор або hex editor).

І все-таки розбір програм у шістнадцятковому редакторі дуже корисний. Особливо тим, хто збирається працювати з електронікою – адже мікропроцесори не розуміють Паскаль ні С++. Хоча й існують спеціальні пристрої та програми, які їм ці мови «пояснюють».

Для початку вам знадобиться шістнадцятковий редактор. Ви можете використовувати будь-який, який у вас є під рукою. Однак я використовуватиму вже згадуваний McAfee FileInsight v2.1. Цей hex редактор можна завантажити безкоштовно. Всі наведені нижче дії справедливі саме для цього редактора.

Отже, шістнадцятковий редактор у вас встановлений. Запускаємо його. Клацаємо по кнопці ВІДКРИТИ, знаходимо один із створених нами СОМ-файлів, наприклад debug_1.com, і завантажуємо його в редактор.

Коли файл завантажений, у редакторі ви побачите наступне (див. також рис. 1.12):

00000000 B4 02 B2 41 CD 21 CD 20 ...A.!. Можете відкрити два інших створених нами файлів: mycode.com (створений в emu8086) або ATEST.COM (який ми створили в розділі ). Побачите те саме. Це означає, що всі асемблери створюють однаковий машинний код. Тобто відмінності у тексті програм є принциповими – вони зумовлені лише відмінностями самих асемблерів.

ПРИМІТКА
Якщо у вашому випадку ви бачите іншу картину, то ви відкрили інший файл, або переглядаєте його в текстовому режимі. В останньому випадку натисніть кнопку View as Hex на панелі інструментів (див. мал. 1.12).

Що ж означає ці числа?

З нулями все зрозуміло - це перший осередок пам'яті, в який записано число В4. Це число потім буде записано на адресу 0100h (для СОМ-файлу). У рядку має бути 16 чисел, кожне з яких складається із двох цифр. Числа записуються у шістнадцятковій формі. Але у нас програма маленька – лише 8 байт, тому й чисел у нас 8.

Ну а що таке B4? Це команда - "Ввести значення в регістр АН". А яке значення вводимо? Правильно: 02 (наступне у рядку число).

AX=0200 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0B72 ES=0B72 SS=0B72 CS=0B72 IP=0102 NV UP EI PL NZ NA B241 MOV DL,41 Бачите в останньому рядку B241? Знайоме поєднання? Це - код команди MOV DL, 41.

Залишилося розібратися із загадковими символами наприкінці рядка. А тут все просто: кожна цифра в числі відповідає коду символу таблиці ASCII і ці символи виводяться в тій же послідовності, що і шістнадцяткові цифри. У цьому тексті замість деяких символів стоять точки (.) – це коди не буквених символів.

Ну а тепер напишемо і створимо нашу вивчену вздовж і впоперек програму без асемблерів та компонувальників. Відкриваємо редактор, створюємо новий файл (для цього клацаємо кнопку NEW на панелі інструментів), потім клацаємо кнопку View as Hex і вводимо дані:

00000000 B4 02 B2 41 CD 21 CD 20 Зберігаємо файл під ім'ям, наприклад, hex_1.com. Всі. Програма готова. Тепер її можна запустити і вкотре помилуватися своїм витвором. Результат буде той самий, що й у всіх попередніх випадках.

І ще один приємний сюрприз від редактора McAfee FileInsight v2.1 – має свій дизассемблер! Якщо ви завантажите в редактор файл, що виконується, а в лівому нижньому куті виберіть вкладку DISASSEMBLY, то зможете подивитися вихідний код завантаженої програми на мові асемблера (рис. 1.12).

Навіщо взагалі потрібні шістнадцяткові редактори та дизассемблери? Це ж так складно. Так, це непросто. Однак хакери так не гадають. Саме за допомогою шістнадцяткових редакторів та дизассемблерів вони ламають програми. Знаходять у коді потрібні їм місця та виправляють їх відповідно до своїх хакерських примх.

Звісно, ​​ми не хакери. Ламати програми не будемо. Однак дизассемблери та шістнадцяткові редактори дуже корисні і законослухняним програмістам. Вони використовуються, наприклад, для налагодження, вивчення машинних кодів тощо. Наприклад, ви знаєте, як виглядає команда мовою асемблера, але хочете дізнатися про її машинний код. Якщо немає документації, то вихід лише один – шістнадцятковий редактор та/або дизассемблер. Слід однак врахувати, що не всі команди вміщаються в машинний код з двох чисел. Деякі команди є досить складними і вимагають більшої кількості чисел для представлення в машинних кодах.

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-додатками, підтримуються і інструкції процесорів. З великими файлами редактор справляється без будь-яких складнощів, що дозволяє виконувати низькорівневу зміну даних на фізичних HDD.

Багато дій може бути автоматизовано. Для цього програмісти вбудували можливість створення скриптів, клавіатурних макросів та API-функцій, які використовуються для виклику внутрішніх процедур із зовнішніх програм. Але до беззастережної перемоги на ниві шістнадцяткових редакторів Hiew таки не дістався. Його інтерфейс повністю виконаний у стилі DOS, а малюванням вікон займається (або консоль, якщо говорити про Linux-системи).

Доброго дня.

Багато хто чомусь вважає, що робота з hex-редакторами - це доля професіоналів і користувачам-початківцям потикатися в них не слід. Але, на мій погляд, якщо мати хоча б базові навички роботи з ПК, і репрезентувати за чим вам потрібен hex-редактор - то чому ні?!

За допомогою програми подібного роду можна змінити будь-який файл, незалежно від його типу (багато посібників та гайдів містять у собі інформацію щодо зміни того чи іншого файлу за допомогою hex-редактора)! Щоправда, користувачеві необхідно мати хоча б основне поняття про шістнадцяткову систему (дані в hex-редакторі надаються саме в ній). Втім, базові знання з неї дають на уроках інформатики в школі, і напевно, багато хто чув і має уявлення про неї (тому її коментувати в цій статті я не стану). Отже, наведу найкращі hex-редактори для початківців (на мій скромний погляд).

1) Free Hex Editor Neo

Один з найпростіших і найпоширеніших редакторів шістнадцяткових, десяткових та бінарних файлів під ОС Windows. Програма дозволяє відкрити будь-який тип файлів, зробити зміни (історія змін зберігається), зручно виділяти та редагувати файл, проводити налагодження та вести аналіз.

Також варто відзначити і дуже хороший рівень продуктивності разом з низькими системними вимогами до машини (наприклад, програма дозволяє відкривати і редагувати досить великі файли, тоді як інші редактори просто зависають і відмовляються працювати).

Окрім іншого, програма підтримує російську мову, має продуманий та інтуїтивно-зрозумілий інтерфейс. Навіть користувач-початківець зможе розібратися і почати працювати з утилітою. Загалом рекомендую всім, хто починає своє знайомство з hex-редакторами.

2) WinHex

Цей редактор, на жаль, умовно-безкоштовний, натомість він – один із найуніверсальніших, підтримує купу різноманітних опцій та можливостей (частину з яких складно знайти у конкурентів).

У режимі редактора дисків дозволяє працювати з: HDD, дискетками, флешками, DVD, ZIP-дисками та ін. Підтримує файлові системи: NTFS, FAT16, FAT32, CDFS.

Не можу не відзначити зручні інструменти для аналізу: крім основного вікна можна підключити додаткові з різними калькуляторами, інструментами для пошуку та аналізування структури файлу. Загалом підійде як новачкам, так і досвідченим користувачам. Програма підтримує російську мову ( вибрати наступне меню: Help / Setup / Ukrainian ).

WinHex, крім своїх звичайнісіньких функцій (які підтримують аналогічні програми), дозволяє виробляти «клонування» дисків і видаляти інформацію з них так, щоб її вже ніхто і ніколи не зміг відновити!

3) HxD Hex Editor

Безкоштовний та досить потужний редактор бінарних файлів. Підтримує всі основні кодування (ANSI, DOS/IBM-ASCII та EBCDIC), файли практично будь-якого розміру (до речі, редактор дозволяє окрім файлів редагувати оперативну пам'ять, безпосередньо записувати зміни на вінчестер!).

Також можна відзначити продуманий інтерфейс, зручну та просту функцію пошуку та заміни даних, ступінчасту та багаторівневу систему резервних копій та відкатів.

Після запуску, програма представляє собою два вікна: зліва шістнадцятковий код, а праворуч - показано текстовий переклад і зміст файлу.

З мінусів я виділив би відсутність російської мови. Втім, багато функцій будуть зрозумілі навіть тим, хто ніколи не вчив англійську мову.

4) HexCmp

HexCmp – ця невелика утиліта поєднує в собі одразу 2 програми: перша дозволяє порівнювати бінарні файли між собою, а друга – це hex-редактор. Це дуже цінна опція, коли потрібно знайти відмінності в різних файлах, допомагає досліджувати різну структуру різних типів файлів.

До речі, місця після порівняння можуть бути зафарбовані в різні кольори, залежно від того, де все збігається і де дані різні. Порівняння відбувається на льоту та дуже швидко. Програма підтримує файли, розмір яких не перевищує 4 Гб (для більшості завдань цілком достатньо).

Окрім звичайного порівняння, можна вести порівняння і в текстовому варіанті (або навіть обох відразу!). Програма досить гнучка, дозволяє налаштувати під себе колірну гаму, вказати кнопки швидкого виклику. Якщо налаштувати програму належним чином - працювати з нею можна взагалі без мишки! Загалом, рекомендую до ознайомлення всім початківцям «перевіряльників» hex-редакторів та структури файлів.

Подібні публікації