The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск Hobbits 0.21, визуализатора для реверс-инжиниринга бинарных файлов

10.03.2020 10:13

Доступен выпуск проекта Hobbits 0.21, развивающего графический интерфейс для анализа, обработки и визуализации бинарных данных в процессе проведения обратного инжиниринга. Код написан на С++ с использованием библиотеки Qt и распространяется под лицензией MIT.

Функции разбора, обработки и визуализации подключаются в форме плагинов, которые можно выбирать в зависимости от типа анализируемых данных. Доступны плагины для отображения в классических шестнадцатеричном, двоичном и ASCII представлениях, побитовой и побайтовой растеризации (каждый пиксель связывается с битом или байтом), символьной растеризации. Для анализа данных предлагаются плагины для поиска и навигации по данным, выделения типовых шаблонов и заголовков, определения блоков на основе регулярных выражений.



  1. Главная ссылка к новости (https://github.com/Mahlet-Inc/...)
  2. OpenNews: HAL - IDE для реверс-инжиниринга цифровых электронных схем
  3. OpenNews: OpenDrop - открытая реализация технологии Apple AirDrop
  4. OpenNews: АНБ опубликовало Ghidra, инструментарий для обратного инжиниринга
  5. OpenNews: Компания Cisco открыла код PyREBox, окружения для изучения вредоносного ПО
  6. OpenNews: Новая версия фреймворка для обратного инжиниринга - radare2 0.9.6
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/52500-hobbits
Ключевые слова: hobbits, reverse
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (48) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, A.Stahl (ok), 11:55, 10/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Блин. Висит у меня над душой одна задачка по парсингу бинарного файла неизвестной структуры. В своё время не получилось, но необходимость никуда не делась. А тут какой-то новый инструмент. Придётся щупать чтобы потом с чистой совестью можно было сказать: "Ну, я всё перепробовал, не получается".
     
     
  • 2.11, Аноним (11), 15:54, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    попробуйте пробовать криптографию;)
     
     
  • 3.19, A.Stahl (ok), 19:25, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да нет там никакого шифрования, просто нужно набраться терпения...


     
  • 2.20, Аноним (-), 21:18, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Блин. Висит у меня над душой одна задачка по парсингу бинарного файла неизвестной структуры

    А этот файл секретный? И на что вообще похож?

     
     
  • 3.24, A.Stahl (ok), 21:27, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Туда большая сложная программа записывает своё "состояние".
    Исходников программы нет.
    А вот некоторые мелкие правки хотелось бы вносить без оригинальной программы.
     
     
  • 4.32, Зз (?), 00:23, 11/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Первое что приходит на ум - сделать по гексдампу на каждом шагу, и потом сравнивать диффом
     
  • 4.44, Аноним (44), 23:34, 11/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это случаем не база данных какая-нибудь встраиваемая?
     
  • 2.27, Аноним (44), 22:17, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сабж нужен если используются структуры размером с нецелое число байтов, особая жопа - когда каждый кусок занимает разное количество БИТОВ. Тогда в хексе полная каша, выглядит как будто зашифрованный или пожатый. Если у вас структуры, каждое поле которых занимает с целое число байтов, то попробуйте Kaitai Web IDE. Там можно реверсить форматы, о которых даже ничего не знаешь, просто кучу файлов имеешь. Просто смотришь в хекс и замечаешь регулярности.
     
     
  • 3.34, Аноним (34), 02:00, 11/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > особая жопа - когда каждый кусок занимает разное количество БИТОВ.

    Так редко делают, в основном в сжатии и проч, где биты надо экономить любой ценой. Потому что кодить парсинг этого довольно канительно, а програмеры тоже люди. Как вариант может быть сжатие опосля - но тогда чаще всего оно какое-нибудь из более-менее типовых, библиотечных. Потому что кодить свое собственное сжатие опять же канительно.

    Но реверс сжатия вообще отдельная тема. Если надо это - сходите на compress.su какой, чтоли. Там пара человек любит такие ребусы.

    > Просто смотришь в хекс и замечаешь регулярности.

    Однозначно. Если он не сжатый, конечно. И желательно чтобы их несколько было, так назначение разных структур может стать понятнее.

     
     
  • 4.39, Аноним (44), 09:30, 11/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Потому что кодить парсинг этого довольно канительно, а програмеры тоже люди.

    Ну с Kaitai кодить парсинг такого легко и просто. Единственный недостаток - кучу памяти жрёт. А вот сериализации в Kaitai пока нет и очень долго не будет.

     

  • 1.2, Аноним (2), 12:40, 10/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    binwalk же
     
     
  • 2.3, 1234 (??), 12:50, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    он что-то кроме прошивок openwrt понимает?
     
     
  • 3.7, n80 (?), 14:15, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, много чего понимает, успешно доставал им файлы из тех же инсталляторов, например.
     
     
  • 4.12, Unnamed (??), 16:15, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Может помочь 7z x
     
     
  • 5.18, n80 (?), 19:01, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Может помочь 7z x

    Есть такое дело, тоже частенько использую, особенно в совсем простых случаях. Но иногда нужно больше возможностей, так что binwalk тоже нужен.

     
  • 2.6, имя (ok), 14:09, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    radare2! Им, как ни странно, не только над исполняемыми файлами орудовать можно.
     
  • 2.9, Аноним (9), 14:16, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    IDA Pro. Искать народную версию сам знаешь где.
     
     
  • 3.21, Аноним (-), 21:19, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Варез же. И под линух вроде нету. К тому же именно анализ, именно структуры, именно неизвестного файла - это ну вообще совсем не ее.
     
     
  • 4.23, anonimous (?), 21:26, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    По поводу вареза не совсем так. Версия Pro - варез, версия Free - нет. И для Linux есть и то, и другое.

    Вот ссылка на версию Free (правда для задач из этой новости ее полезность неизвестна):
    https://www.hex-rays.com/products/ida/support/download_freeware/

     
     
  • 5.25, Аноним (25), 21:36, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Там вроде фри версия из разряда "файлы не открывай, работу не сохраняй, и вообще давай неси нам миллионы денег"?
     
     
  • 6.36, Аноним (-), 04:35, 11/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И если кто думает что этой чудной компании так прямо просто дать денег - хаха, сейчас. Когда я пробовал это, было проще пройти квест 80 уровня...
     
  • 4.26, Рейко Каневская (?), 21:45, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ида идеально работает под вайном искаропки
     
     
  • 5.35, Аноним (-), 04:33, 11/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, но wine - в пень. А еще там очень милая компания и автор. Если в иде что-то пойдет не так, единственная реальная опция - застрелиться. Примерно то же самое касается идеи это чудо честно купить...
     
  • 3.29, Аноним (44), 22:46, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это ту, которая на 10 лет устарела, но, в отличии от retdecа, на i686 бинарях хотя-бы hex-ray работает и прожёвывает довольно быстро и при адекватных требованиях к памяти? Кто-нибудь уже допилите этот грёбанный retdec, чтобы для его построения не требовалось строить llvm (у неё есть deb-репозиторий с "ночными" либами, а построение её с нуля занимает часы).
     

  • 1.4, user90 (?), 13:27, 10/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Картинки понравились, обобряю.
     
  • 1.5, Аноним (5), 13:55, 10/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Работает ли он с блоками бит переменной длины некратной 8? Можно ли проанализировать им файл ZIP, восстановив алгоритм распаковки? Есть ли готовые примеры такого разбора?
     
     
  • 2.45, Аноним (45), 12:28, 12/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Визуализировать блоки некратные 8 битам можно!
     

  • 1.8, Аноним (8), 14:15, 10/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А ассемблеры понимает?
     
     
  • 2.17, АНБ (?), 18:39, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ассемблер objdump -D показывает.
     

  • 1.10, Аноним (10), 15:39, 10/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Работает ли он с блоками бит переменной длины некратной 8? Можно ли проанализировать им файл ZIP, восстановив алгоритм распаковки? Есть ли готовые примеры такого разбора?

    Этому умнику: бери да проверяй

     
     
  • 2.13, Аноним (13), 16:55, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    а вот этот умник поди не знает что такое трэды.
     

  • 1.14, териванов (?), 17:17, 10/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А известно чего этой тулзой уже отреверсили?
     
  • 1.15, name (??), 17:27, 10/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    файлы от photoshop открывает?
     
  • 1.16, хз.кто (?), 18:20, 10/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    http://kaitai.io/ - это лучше, если нужно описывать структуру файлов
     
     
  • 2.22, Аноним (-), 21:20, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Какая-то хипстерская фигня для хомячков.
     
  • 2.28, Аноним (44), 22:26, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    kaitai офигенная штука (доступная по https кстати), я ей сам постоянно пользуюсь. Но её недостаточно для black-box реверсинга всякой дерьмовой каши.
     
     
  • 3.33, Аноним (34), 01:55, 11/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > доступная по https кстати

    Ну, это, конечно, самое главное при реверсинге :)

     
     
  • 4.38, Аноним (44), 08:23, 11/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это не самое главное, но постить ссылки со схемой http, если сайт работает по https - это моветон.
     
  • 2.30, Аноним (30), 23:45, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Она научилась описывать GIF, PNG, ZIP, GZ и прочие форматы со сжатием дальше заголовка? Судя по примеру на главной странице — всё ещё нет. Она позволяет легко сделать парсер, который покажет оглавление архива, но для написания распаковщика не поможет. Потому что работает не с битами, а только с байтами.

    По крайней мере, так было 4 года назад, и с тех пор принципиальных изменений в примерах не было.

     
     
  • 3.31, Аноним (44), 23:59, 10/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если размер сжатого потока известен заранее, если и на сжатый и на разжатый хватит памяти, и если есть модуль декомпрессии (из 'kaitai.compress.') для языка.
     
     
  • 4.40, Аноним (30), 12:17, 11/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > kaitai.compress

    Молодцы, развиваются.

    > если и на сжатый и на разжатый хватит памяти

    На диск писать не умеет?

    > Если размер сжатого потока известен заранее

    То есть на каждый сжатый файл нужен свой kty? Или можно брать этот размер из данных в анализируемом файле?

     
     
  • 5.43, Аноним (44), 23:31, 11/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Или можно брать этот размер из данных в анализируемом файле?

    Да, каждое поле с 'process' обязанно быть подпотоком. 'process' пршсто трансформирует подпотоки. А подпотоки реализованы так: вычитываются в память, проходится processором, на расжатые данные создаётся объект потока, объект скармливается парсеру. Не нравится - шли pull requestы.

     
     
  • 6.47, Аноним (45), 12:32, 12/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чтобы написать пулл-реквест на документацию, нужно долго изучать код. Гораздо проще, когда документацию апдейтит автор кода.
     
  • 2.48, Аноним (30), 22:38, 14/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Плагин для вызова Kaitai с самописной заменой его Web IDE уже пишут: https://github.com/Mahlet-Inc/hobbits/issues/24
     

  • 1.37, bOOster (ok), 06:11, 11/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    33 года назад делал что-то подобное - поиск спрайтов, на Bk0010-01. С переписыванием модуля загрузки с магнитофона, грузил в видео память (хотя на бк между видео и основной разницы нету, кроме того что последняя отображается) и в небольшом окошке осуществлял манипуляции. Редактировать и записать тоже можно было. При небольшой усидчивости получалась другая игра.
     
  • 1.41, Аноним (30), 20:33, 11/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как его запускать? Какой указать параметр mode в командной строке?
     
  • 1.42, Аноним (30), 21:39, 11/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Автокорреляция глючит.
     
     
  • 2.46, Аноним (45), 12:29, 12/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Уже починили в 0.22.1.
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру