LINUX.ORG.RU

Трудности перехода. Hex редактор

 , ,


6

7

Посоветуйте более-менее мощный hex-редактор для замены 010 Editor’a (Знаю, есть нативный, но цена как-то высоковата).

Нужно чтобы он

а) был графическим, qt|kde|gtk3

б) поиск/замена текста работала во всех открытых вкладках одновременно

в) имел встроенный скриптовый язык для обработки бинарных данных

На поддержку шаблонов данных и совместимость со скриптами 010 я уже даже не рассчитываю…

Все что я нашел - либо слишком примитивные, или консольные.

Может быть, существует какое-то расширение для vscodium которое так умеет?

★★

Последнее исправление: hargard (всего исправлений: 2)
Ответ на: комментарий от hatred

А что нужно от HEX редактора? Для меня фича «открыть файл любого размера и не выжрать всю память» это must have и не обсуждается.

Как видишь, оба «дефолтных» редактора из KDE и GNOME к сожалению проваливают этот элементарный тест.

hexdump, xxd, hexyl и магия консоли? :)

PPS а ещё диффалки: я пока пользуюсь только vbindiff. В AUR есть ещё hexdiff, hexcompare, но не тыкал.

Я тоже активно пользуюсь hexdump, xxd и vbindiff, но в большинстве случаев работу в GUI делать быстрее и удобнее. Нагляднее как минимум. Предубеждения по поводу GUI у меня никакого нет.

Тут вопрос - шашечки или ехать.

Мне как раз именно что ехать. А потому я выбрал в качестве GUI-редактора – HxD, который прекрасно работает через Wine. А в качестве GUI-альтернативы vbindiff есть HexCmp. Ну и про платный 010 Editor (на Qt кстати) забывать не стоит.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Консоль, потому как регулярно возникает необходимость scp откуда-то и сразу посмотреть. Быстрее выходит. По поводу Wine… у самого IDA torrent edition :-)

hatred ★★★
()
Ответ на: комментарий от hatred

Если честно, мне, как человеку заставшего 90-е в более-менее сознательном возрасте, особенно насмотревшегося на свистоперделки и «скины» на приложухах в Windows 9x, вообще непонятен этот плач по unify look and feel.

+1. Мода на то, что все программы в системе должны иметь унифицированный вид, возникла исторически недавно. В конце 90-х всякие программы для профессиональных дизайнеров и прочих творцов выделялись именно, что дизайнерским внешним видом, и это (удивительно, но факт) считалось достоинством.

hobbit ★★★★★
()
Ответ на: комментарий от hatred

Я попытался, но что-то не осилил. Особенно в части декомпилятора в псевдокод.

Он же там по дефолту сразу идёт. И кстати генерация псевдокода как в IDA, так и в Ghidra помогает более углубленно понять логику, потому что два источника всегда лучше чем один (какие-то моменты лучше у IDA, какие-то у Ghidra и т. д.).

EXL ★★★★★
()
Ответ на: комментарий от EXL

Судя по всему, нужно второй заход совершить.

hatred ★★★
()

$ apt-cache show wxhexeditor

 Features:

    It uses 64 bit file descriptors (supports files or devices up to 2^64 bytes , means some exabytes but tested only 1 PetaByte file (yet). ).
    It does NOT copy whole file to your RAM. That make it FAST and can open files (which sizes are Multi Giga < Tera < Peta < Exabytes)
    You can work with delete/insert bytes to file, more than once, without creating temp file!.
    Could open your devices on Linux, Windows or MacOSX.
    Memory Usage : Currently ~25 MegaBytes while opened multiple > ~8GB files.
    Could operate with file thru XOR encryption.
    Has multiple views to show multiple files in same time.
    Has x86 disassembly support (via integrated udis86 library) to hack things little faster.
    Has colourfull tags to make reverse engineering easier and more fun.
    You can copy/edit your Disks, HDD Sectors with it.( Usefull for rescue files/partitions by hand. )
    Sector Indication on Disk devices, also has Go to Sector dialog...
    Formated CopyAs! It's easy to copy part of a file in HEX format for C/C++ source, ASM source, also supports HTML,phpBB and Wiki page formats with TAGs!!
    Supports Hex or Text editor alone operation.Also can disable Offset region.
    Supports customizeable hex panel formatting and colors.
    Allows Linux Process Memory Editing operations
    Comparison of binary files, allows merge of near results.
    Supports ***many*** encodings including almost all DOS/Windows/MacOS CPs and multi-character sets like UTF8/16/32, Shift JIS, GBK, EUC_KR...
    Decimal, Hexadecimal, Octal and LBA ("Sector+Offset") addressing modes, (switchable one to another by right click of mouse on Offset panel.
    Save selection as a dump file feature for make life easier.
    "Find Some Bytes" feature for quickly find next meaningful bytes at file/Disk
    MD/RIPEMD/SHA/TIGER/HAVAL/CRC/ADLER/GOST/WHRILPOOL/SNEFRU checksum functions (via integrated mhash library.)
    Import & Export TAGs support from file.
    Written with C++/wxWidgets GUI libs and can be used with other OSes such as Mac OS, Windows as native application.
futurama ★★★★★
()
24 мая 2022 г.
Ответ на: комментарий от abcq

Просто ради эксперимента, попробуйте проделать все тоже самое в нем, а потом расскажите, ок?

Итак, рапортую.

Понадобилось выполнить элементарную вещь: вытащить из дампа прошивки одного дорогого мне сотового телефона некоторые Java-приложения. Эта работа как раз для HEX-редактора.

Дистрибутив: Ubuntu 22.04 LTS

Думаю дай скачаю этот ImHex и проверю, раз тут рекомендовали. Иду на официальный сайт софтины и вижу четыре варианта загрузки под Linux:

  • ELF
  • DEB
  • FlatPack
  • AppImage

FlatPack сразу отметаем, у меня ведь в Ubuntu имеется Snap, а ставить себе дополнительную систему самодостаточных пакетов не имеет смысла.

Итак, решил выбрать первый пункт, ELF, мне он показался наиболее быстрым. Распаковал, запустил, сделал, закрыл. Формат ZIP у скачиваемого архива вместо привычного TAR.ЧТО-ТО настрожил. Ладно, распаковал, перешёл в директорию, выполняю ./usr/bin/imhex, пишет Permission denied, как и думал побитые права. Из винды что ли его паковали? Добавляю права на запуск, пытаюсь запустить, вижу:

$ chmod +x ./usr/bin/imhex
$ ./usr/bin/imhex
./usr/bin/imhex: error while loading shared libraries: libimhex.so: cannot open shared object file: No such file or directory

Там rpath не научили разработчика делать? Ладно, делаю подгрузку либы и вижу:

$ LD_LIBRARY_PATH=./usr/lib/:$LD_LIBRARY_PATH ./usr/bin/imhex
./usr/bin/imhex: error while loading shared libraries: libglfw.so.3: cannot open shared object file: No such file or directory

Да чтоб их всех:

$ sudo apt install libglfw3
$ LD_LIBRARY_PATH=./usr/lib/:$LD_LIBRARY_PATH ./usr/bin/imhex
./usr/bin/imhex: error while loading shared libraries: libmbedtls.so.12: cannot open shared object file: No such file or directory

$ sudo apt install libmbedtls14
libmbedtls14 is already the newest version (2.28.0-1build1).

Дальше лень стало ковыряться. Перешёл к установке DEB.

Скачал DEB-пакет (который зачем-то снова запаковали в ZIP), выполнил:

$ sudo apt install ./imhex.deb
$ imhex
imhex: error while loading shared libraries: libmbedtls.so.12: cannot open shared object file: No such file or directory

$ ldd /usr/bin/imhex
Sorry, the application ld-linux-x86-64.so.2 has stopped unexpectedly.
ld-linux-x86-64.so.2 crashed with SIGSEGV

Ясно, понятно. Ну нас же спасёт в этом случае самодостаточный AppImage-пакет?

Качаем AppImage, он жирный на целых ~80 МБ, значит туда всё положили наверное. Запускаем:

$ chmod +x imhex.AppImage
$ ./imhex.AppImage
dlopen(): error loading libfuse.so.2

AppImages require FUSE to run.

$ sudo apt install libfuse-dev

./imhex.AppImage 
[05:28:23] [INFO]  [main] Welcome to ImHex!
libGL error: MESA-LOADER: failed to open crocus: /usr/lib/dri/crocus_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: crocus
libGL error: MESA-LOADER: failed to open crocus: /usr/lib/dri/crocus_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: crocus
libGL error: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: swrast
[05:28:23] [ERROR] [main] GLFW Error [65543] : GLX: Failed to create context: GLXBadFBConfig
[05:28:23] [FATAL] [main] Failed to create GLFW window!

Собственно это всё что нужно знать о том, с каким говном сталкиваются прикладные разработчики если они хотят выпустить свою софтину под Linux. Вот человек сделал HEX-редактор, сделал для Windows EXE-файлик и всё работает у всех, пользователи рады и экономят своё время. Я-то конечно соберу из сорцов, заодно убив энергии на парочку деревьев и смогу решить эту проблему с запуском спустя часок-другой. Но оно мне надо?

И я не виню прикладного программиста, который сделал этот ImHex, видно что человек этот позитивно был к Linux настроен, попытался выпустить свой HEX-под под разные пакетные менеджеры, наверняка перечитав кучу говномануалов, меня например воротит от спеков по DEB и дебилнизации пакетов. Он даже сделал вариант с архивом, на который часто забивают!

Но экосистема установки приложений и утилит в дистрибутивах Linux накормила как разработчика ImHex, так и меня таким вот говном.

А потом все делают глупые лица и спрашивают почему у Linux всего 0.91% на десктопах и разработчики прикладного ПО шарахаются от него как от прокажённого. Ответ в моём сообщении.

И снова меня выручил HEX-редактор в Web-браузере, вместо вот этого вот пердолинга и красноглазия.

EXL ★★★★★
()
Ответ на: комментарий от EXL

FlatPack сразу отметаем, у меня ведь в Ubuntu имеется Snap

Я хотел написать «ну поставил бы флатпак, что за препоны», но вот что комично - по ссылке на сайте 404, а на гитхабе в релизах никакого флатпака и нет

(вангую, что когда/если он был, там обязательно что-то не работало из за песочницы)

Ах, нет, проблемы с CI

Midael ★★★★★
()
Последнее исправление: Midael (всего исправлений: 2)
Ответ на: комментарий от EXL

FlatPack сразу отметаем, у меня ведь

… цель не программу запустить, а развесистый текст написать; о том, как всё плохо.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Кстати, чем binwalk не подошёл? Он умеет ZIP-архивы вытаскивать из прошивок.

Он это делает чертовски криво. И не только с ZIP-архивами, но и с изображения форматов PNG, GIF и пр. тоже криво вытаскивает. Ищет только начало файла по MAGIC’ам, а конец файла не определят и нарезает прошивку на части «от MAGIC’а до конца прошивки». Что так в HEX-редакторе вырезать, что после binwalk’а обрезать.

EXL ★★★★★
()
Ответ на: комментарий от futurama

ты это не пробовал? (я нет, т.к. нет задач)

Да, он просто неудобный.

Так-то я давно уже нашёл решение для себя, использую либо HxD в Wine, либо этот онлайновый HEX-редактор в Web’е.

EXL ★★★★★
()
Ответ на: комментарий от EXL

нарезает прошивку на части «от MAGIC’а до конца прошивки».

А, ну да. Есть у него такая особенность.

Ну тогда PhotoRec. В настройках указываешь искать только zip-файлы, указываешь размер сектора в 1 байт на случай, если в прошивке данные никак не выровнены, и вперёд.

i-rinat ★★★★★
()
Ответ на: комментарий от nikitalol

Я-то конечно соберу из сорцов, заодно убив энергии на парочку деревьев и смогу решить эту проблему с запуском спустя часок-другой. Но оно мне надо?

И снова меня выручил HEX-редактор в Web-браузере, вместо вот этого вот пердолинга и красноглазия.

EXL ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.