<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Вышел язык спецификации бинарных форматов Kaitai Struct 0.5</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/109607.html</link>
    <description>Проект Kaitai представил (http://kaitai.io/news/2016-11-09.html) новый релиз Kaitai Struct версии 0.5 (http://kaitai.io/news/2016-11-09.html), декларативного языка описания бинарных форматов и структур данных. Как и прежде, основная идея проекта заключается в том, что практически любой формат файла или структуру сетевого протокола можно описать на Kaitai Struct, составив исходный файл .ksy, который затем компилируется (с помощью прилагаемого компилятора ksc) в готовый парсер на любом из поддерживаемых языков программирования.&lt;br&gt;&lt;br&gt;&lt;br&gt;Основная сфера применения подобного решения - разбор всевозможных существующих (зачастую закрытых и проприетарных) форматов (офисных, мультимедийных и т.д.) и протоколов. Благодаря наличию продвинутых инструментов отладки и визуализации, Kaitai Struct нашел свое применение и в быстром реверс-инжиниринге неизвестных форматов, а также в digital forensics. Ряд организаций, занимающийся хранением исторических цифровых архивов, взяли Kaitai Struct на вооружение как стандарт описания форма</description>

<item>
    <title>Вышел язык спецификации бинарных форматов Kaitai Struct 0.5 (Max)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/109607.html#73</link>
    <pubDate>Sat, 26 Nov 2016 00:09:52 GMT</pubDate>
    <description>Ну почти так.&lt;br&gt;Нужно сначала получить все дескрипторы, а потом уже получить второй массив.&lt;br&gt;Могу скинуть пример позже.&lt;br&gt;</description>
</item>

<item>
    <title>Вышел язык спецификации бинарных форматов Kaitai Struct 0.5 (GreyCat)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/109607.html#72</link>
    <pubDate>Fri, 25 Nov 2016 16:20:18 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Если нужно получить &quot;начало&quot; через конец блока дескрипторов - то, вероятно, нужно &lt;br&gt;&amp;gt;&amp;gt; создать отдельный элемент в seq, который бы начинался сразу после этого &lt;br&gt;&amp;gt;&amp;gt; самого блока дескриптора - он создаст поток, в этом потоке размечать &lt;br&gt;&amp;gt;&amp;gt; уже instances. Индексация при этом уже будет с 0, получать ничего &lt;br&gt;&amp;gt;&amp;gt; не нужно.&lt;br&gt;&amp;gt; Вот именно, что нужно не просто получить &quot;начало&quot;, а использовать блок дескрипторов &lt;br&gt;&amp;gt; для разбора этих элементов. Нужно как-то итерировать блок дескрипторов внутри instances &lt;br&gt;&amp;gt; после блока...&lt;br&gt;&lt;br&gt;Можно какой-то чуть более конкретный пример? Я пока понял, что вроде бы речь идет о случае, когда есть два отдельных массива (прямо совсем отдельных, чуть ли не в разных объектах на разных уровнях лежащих), и надо итерироваться сразу по обоим одновременно?&lt;br&gt;</description>
</item>

<item>
    <title>Вышел язык спецификации бинарных форматов Kaitai Struct 0.5 (Maxim)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/109607.html#71</link>
    <pubDate>Thu, 24 Nov 2016 20:20:10 GMT</pubDate>
    <description>&amp;gt; Если нужно получить &quot;начало&quot; через конец блока дескрипторов - то, вероятно, нужно &lt;br&gt;&amp;gt; создать отдельный элемент в seq, который бы начинался сразу после этого &lt;br&gt;&amp;gt; самого блока дескриптора - он создаст поток, в этом потоке размечать &lt;br&gt;&amp;gt; уже instances. Индексация при этом уже будет с 0, получать ничего &lt;br&gt;&amp;gt; не нужно.&lt;br&gt;&lt;br&gt;Вот именно, что нужно не просто получить &quot;начало&quot;, а использовать блок дескрипторов для разбора этих элементов. Нужно как-то итерировать блок дескрипторов внутри instances после блока...&lt;br&gt;</description>
</item>

<item>
    <title>Вышел язык спецификации бинарных форматов Kaitai Struct 0.5 (GreyCat)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/109607.html#70</link>
    <pubDate>Wed, 23 Nov 2016 19:33:37 GMT</pubDate>
    <description>Очень мало что понял без более конкретных примеров, но попробую ответить.&lt;br&gt;&lt;br&gt;&amp;gt; Размер элемента определяется разностью между концом и началом, но началом служит конец &amp;gt; блока дескрипторов, а эту информацию внутри instances никак не получить...&lt;br&gt;&lt;br&gt;Если нужно получить &quot;начало&quot; через конец блока дескрипторов - то, вероятно, нужно создать отдельный элемент в seq, который бы начинался сразу после этого самого блока дескриптора - он создаст поток, в этом потоке размечать уже instances. Индексация при этом уже будет с 0, получать ничего не нужно.&lt;br&gt;&lt;br&gt;Альтернативный (но относительно хаковый) вариант - каким-то образом сделать так, чтобы после блока дескрипторов вызвался _io.pos и сохранился где-то (в вычислимом instance, например). А затем уже отчитывать вручную от него.&lt;br&gt;&lt;br&gt;&amp;gt; Нужно все-таки научить этот язык итерировать списки.&lt;br&gt;&lt;br&gt;Зачем?&lt;br&gt;&lt;br&gt;&amp;gt; И я так и не нашел как создавать предусловия для цикла.&lt;br&gt;&lt;br&gt;Никак.&lt;br&gt;</description>
</item>

<item>
    <title>Вышел язык спецификации бинарных форматов Kaitai Struct 0.5 (Rustlang)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/109607.html#69</link>
    <pubDate>Thu, 17 Nov 2016 09:21:29 GMT</pubDate>
    <description>Здравствуйте. Мне попался бинарный файл, который содержит в качестве дескриптора таблицу вида: тип элемента+конец смещения относительно начала файла.&lt;br&gt;Размер элемента определяется разностью между концом и началом, но началом служит конец блока дескрипторов, а эту информацию внутри instances никак не получить...&lt;br&gt;Нужно все-таки научить этот язык итерировать списки.&lt;br&gt;И я так и не нашел как создавать предусловия для цикла.&lt;br&gt;</description>
</item>

<item>
    <title>Вышел язык спецификации бинарных форматов Kaitai Struct 0.5 (Maxim)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/109607.html#68</link>
    <pubDate>Tue, 15 Nov 2016 19:57:55 GMT</pubDate>
    <description>&amp;gt; И обращаться к телу секции, как main.rows&#091;42&#093;.body.&lt;br&gt;&lt;br&gt;Кстати, в данном случае надо сбросить подсветку родительской секции. В данном случае она отображается неверно.&lt;br&gt;</description>
</item>

<item>
    <title>Вышел язык спецификации бинарных форматов Kaitai Struct 0.5 (Maxim)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/109607.html#67</link>
    <pubDate>Tue, 15 Nov 2016 19:33:15 GMT</pubDate>
    <description>&amp;gt; Вы уже можете обращаться к main.rows&#091;42&#093;.section_start и main.rows&#091;42&#093;.section_size. &lt;br&gt;&amp;gt; Теперь вы хотите к main дописать что-то, чтобы иметь возможность обращаться &lt;br&gt;&amp;gt; к телу секции как-то типа main.test&#091;42&#093;. А я предлагаю дописать не &lt;br&gt;&amp;gt; к main, а к row - что логичнее, т.к. объект row &lt;br&gt;&amp;gt; как раз посвящен одной конкретной секции. И обращаться к телу секции, &lt;br&gt;&amp;gt; как main.rows&#091;42&#093;.body.&lt;br&gt;&lt;br&gt;Да. Именно то, что мне нужно.&lt;br&gt;Просто не привык я к таком OOP)&lt;br&gt;Спасибо.&lt;br&gt;</description>
</item>

<item>
    <title>Вышел язык спецификации бинарных форматов Kaitai Struct 0.5 (GreyCat)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/109607.html#66</link>
    <pubDate>Tue, 15 Nov 2016 19:27:52 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Какой из вариантов компактнее?&lt;br&gt;&amp;gt; Тут дело в другом. Какой из вариантов рабочий...&lt;br&gt;&amp;gt; Я не совсем понял, как заставить ваш вариант итерировать таблицу...&lt;br&gt;&lt;br&gt;Вам что нужно получить-то в итоге?&lt;br&gt;&lt;br&gt;У вас есть что-то типа:&lt;br&gt;&lt;br&gt;types:&lt;br&gt;  main:&lt;br&gt;    seq:&lt;br&gt;      - id: rows_count&lt;br&gt;        type: u4&lt;br&gt;      - id: rows&lt;br&gt;        type: row&lt;br&gt;        repeat: expr&lt;br&gt;        repeat-expr: rows_count&lt;br&gt;  row:&lt;br&gt;    seq:&lt;br&gt;      - id: section_start&lt;br&gt;        type: u4&lt;br&gt;      - id: section_size&lt;br&gt;        type: u4&lt;br&gt;&lt;br&gt;Вы уже можете обращаться к main.rows&#091;42&#093;.section_start и main.rows&#091;42&#093;.section_size. Теперь вы хотите к main дописать что-то, чтобы иметь возможность обращаться к телу секции как-то типа main.test&#091;42&#093;. А я предлагаю дописать не к main, а к row - что логичнее, т.к. объект row как раз посвящен одной конкретной секции. И обращаться к телу секции, как main.rows&#091;42&#093;.body.&lt;br&gt;</description>
</item>

<item>
    <title>Вышел язык спецификации бинарных форматов Kaitai Struct 0.5 (Maxim)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/109607.html#65</link>
    <pubDate>Tue, 15 Nov 2016 19:23:22 GMT</pubDate>
    <description>&amp;gt; Какой из вариантов компактнее?&lt;br&gt;&lt;br&gt;Тут дело в другом. Какой из вариантов рабочий...&lt;br&gt;Я не совсем понял, как заставить ваш вариант итерировать таблицу...&lt;br&gt;</description>
</item>

</channel>
</rss>
