1.1, A.Stahl (ok), 11:55, 10/03/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Блин. Висит у меня над душой одна задачка по парсингу бинарного файла неизвестной структуры. В своё время не получилось, но необходимость никуда не делась. А тут какой-то новый инструмент. Придётся щупать чтобы потом с чистой совестью можно было сказать: "Ну, я всё перепробовал, не получается".
| |
|
|
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 +/– |
Первое что приходит на ум - сделать по гексдампу на каждом шагу, и потом сравнивать диффом
| |
|
|
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 пока нет и очень долго не будет.
| |
|
|
|
|
|
3.7, n80 (?), 14:15, 10/03/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да, много чего понимает, успешно доставал им файлы из тех же инсталляторов, например.
| |
|
|
5.18, n80 (?), 19:01, 10/03/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Может помочь 7z x
Есть такое дело, тоже частенько использую, особенно в совсем простых случаях. Но иногда нужно больше возможностей, так что binwalk тоже нужен.
| |
|
|
|
2.6, имя (ok), 14:09, 10/03/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
radare2! Им, как ни странно, не только над исполняемыми файлами орудовать можно.
| |
|
3.21, Аноним (-), 21:19, 10/03/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Варез же. И под линух вроде нету. К тому же именно анализ, именно структуры, именно неизвестного файла - это ну вообще совсем не ее.
| |
|
|
5.25, Аноним (25), 21:36, 10/03/2020 [^] [^^] [^^^] [ответить]
| +/– |
Там вроде фри версия из разряда "файлы не открывай, работу не сохраняй, и вообще давай неси нам миллионы денег"?
| |
|
6.36, Аноним (-), 04:35, 11/03/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
И если кто думает что этой чудной компании так прямо просто дать денег - хаха, сейчас. Когда я пробовал это, было проще пройти квест 80 уровня...
| |
|
|
|
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.5, Аноним (5), 13:55, 10/03/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Работает ли он с блоками бит переменной длины некратной 8? Можно ли проанализировать им файл ZIP, восстановив алгоритм распаковки? Есть ли готовые примеры такого разбора?
| |
1.10, Аноним (10), 15:39, 10/03/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
Работает ли он с блоками бит переменной длины некратной 8? Можно ли проанализировать им файл ZIP, восстановив алгоритм распаковки? Есть ли готовые примеры такого разбора?
Этому умнику: бери да проверяй
| |
|
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 +/– |
Чтобы написать пулл-реквест на документацию, нужно долго изучать код. Гораздо проще, когда документацию апдейтит автор кода.
| |
|
|
|
|
|
1.37, bOOster (ok), 06:11, 11/03/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
33 года назад делал что-то подобное - поиск спрайтов, на Bk0010-01. С переписыванием модуля загрузки с магнитофона, грузил в видео память (хотя на бк между видео и основной разницы нету, кроме того что последняя отображается) и в небольшом окошке осуществлял манипуляции. Редактировать и записать тоже можно было. При небольшой усидчивости получалась другая игра.
| |
|