LINUX.ORG.RU
ФорумTalks

[реквестирую] Байтовый редактор со структурами / битовыми полями


0

0

Дабы было удобнее ковырять разные бинарные файлики, патчить их. А то в обычном hex-редакторе пока найдешь нужный байт, пока пересчитаешь значения бит - куча времени уходит...

Что-то мне кажется, что сейчас набегут вендотролли и начнут советовать проприетарные платные редакторы.

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

Ну если под вайном работают - почему нет? Я большие файлы открываю в HexEditor от VirtualDub, запущенного в вайне. Изврат, но работает быстрее чем ghex, который файлы в себя целиком засасывает.

EmStudio
() автор топика
Ответ на: комментарий от nanonymous

> Что-то мне кажется, что сейчас набегут вендотролли и начнут советовать проприетарные платные редакторы.

ну почему сразу виндотроли? помню в досе когда то была такая приблудина, которой в конфиге можно было на её внутреннем языке задать формат структур файла и она после представляла просматриваемый файл разбитый на соотв. структуры. чудная была программка, очень помогала при ковырянии во всяких вражеских бинарниках. только вот забыл как она называлась :(

// wbr

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

А ее можно научить битовым полям переменной длины?

Например:

The next nine bytes represent a data structure used in the SWF format called a Rectangle. Here is the file description of a rectangle:

RECT
Field T ype C ommen t
Nbits UB[5] Bits in each rect value field
Xmin SB[Nbits] x minimum position for rect
Xm ax SB[Nbits] x maximum position for rect
Ymin SB[Nbits] y minimum position for rect
Ymax SB[Nbits] y maximum position for rect

To understand these bytes, we need to look at the individual bits.
78 00 05 5F 00 00 0F A0 00

0111 1000 0000 0000 0000 0101 0101 1111 0000 0000
0000 0000 0000 1111 1010 0000 0000 0000
There are five fields in a rectangle structure: Nbits, Xmin, Xmax, Ymin, Ymax. The unsigned
Nbits field occupies the first five bits of the rectangle and indicates how long the next four signed
fields are.
Here’s where we hit another subtle point about the SWF file representation. Reading and writing
bits is different from reading and writing words and dwords. There is no swapping at all. This is
because when Flash is reading an n-bit field, it reads a byte at a time until it has read all n bits.
You don’t do any swapping inside of bytes so there is no swapping at all. So the next five bits are
read in order and evaluate to 15. Although the Nbit field usually varies, it appears fixed in the
header so that header has a fixed size (It may just be because the movie dimensions are usually
the same).

EmStudio
() автор топика

в Емаксе есть hexl-mode. думаю, произвольным структурам его тоже можно научить.

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

Ааааа хочу такую.... А что если побробовать замутить ? Обычный HEX-едитор только с подключаемыми ASN-формами или зюмелем. От это былоб счастие...

iBliss
()
Ответ на: комментарий от klalafuda

Я ей сэйвы от первого уфо ковырял, проклятый склероз...

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

> А ее можно научить битовым полям переменной длины?

> Например:
> ...
> RECT

Слово "Rect" в данном контексте ассоциируется у меня исключительно с "ректально" и "паяльник". Ибо телепатический интерфейс и лишние движения.

Gharik
()
Ответ на: комментарий от iBliss

> Ааааа хочу такую.... А что если побробовать замутить ? Обычный HEX-едитор только с подключаемыми ASN-формами или зюмелем. От это былоб счастие...

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

вопрос даже не в том, чтобы сесть и написать её - это в принципе не есть большая проблема. но вот разработать грамотный и удобный в использовании язык, с помощью которого можно было бы легко описывать сложные структуры данных причём с поддержкой ветвления i.e. "если поле x = 1 то дальше идёт структура foo а если 2 то структура bee" - это несколько более геморойно. ANS.1 или аналоги за базу конечно взять можно, но AFAIR тот же ANS.1 не поддерживает к примеру ветвления а делать упрощённую версию которая только что и умеет порезать файл на фиксированный набор структур - это далеко не так полезно как хотелось бы.

ps: а та програмулина была достаточно вумная с точки зрения языка описания. с её помощью, к примеру, можно было вполне сносно смотреть и редактировать DBFы или собственные форматы на основе btree и прочие подобные штуки.

// wbr

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

> "если поле x = 1 то дальше идёт структура foo а если 2 то структура bee"

Никто не мешает сделать 2-3 схемы с фиксированным значением типа.

На ASN можно и ветвление сделать. Хотя он нонче сильно в промсекторе застрял, ну можно и зюмель использовать, как более известный.

> а та програмулина была достаточно вумная с точки зрения языка описания

У нас тут что-то жабское проприетарное вроде пользовали. Именно на ASN cхемах, но она в комплекте с АРМами шла.

iBliss
()
Ответ на: комментарий от Ex

> посмотри в сторону IDA Pro

А она кстати tcap логи разбирать умеет ?

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