<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Synalysis Q&amp;A - Recent questions and answers</title>
<link>https://synalysis.guru/q2a/qa</link>
<description>Powered by Question2Answer</description>
<item>
<title>How to do Bitwise AND Operation</title>
<link>https://synalysis.guru/q2a/327/how-to-do-bitwise-and-operation</link>
<description>&lt;table border=&quot;1&quot; cellspacing=&quot;1&quot; cellpadding=&quot;1&quot; style=&quot;width:500px&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;7 (MSB)&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0 (LSB)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;langcode&lt;/td&gt;&lt;td&gt;copyrightb&lt;/td&gt;&lt;td&gt;origbs&lt;/td&gt;&lt;td rowspan=&quot;1&quot; colspan=&quot;5&quot;&gt;dialnorm&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1 or 0&lt;/td&gt;&lt;td&gt;1 or 0&lt;/td&gt;&lt;td&gt;1 or 0&lt;/td&gt;&lt;td rowspan=&quot;1&quot; colspan=&quot;5&quot;&gt;0-31 (0 represents 31)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br&gt;Sorry for the probably basic question. How would I extract the 4 fields values above using the mask feature? I'm using a hex mask successfully in another part of the file, but that is a simple mask on the whole byte value not at the bit level. From what I understand, if I took e.g. 'origbs' as an example, it will have a true/false value of 1/0. The byte has a value of 0x60 so...&lt;/p&gt;&lt;p&gt;origbs (Bit 5):&lt;/p&gt;&lt;p&gt;Mask: 0x20 (which is 00100000 in binary)&lt;/p&gt;&lt;p&gt;Extraction: (0x60 &amp;amp; 0x20) &amp;gt;&amp;gt; 5&lt;/p&gt;&lt;p&gt;Result: (0x60 &amp;amp; 0x20) &amp;gt;&amp;gt; 5 = (01100000 &amp;amp; 00100000) &amp;gt;&amp;gt; 5 = 00100000 &amp;gt;&amp;gt; 5 = 0x1 (or 1 in decimal)&lt;/p&gt;&lt;p&gt;Is this possible please and if so how do I set it up? Thank you.&lt;/p&gt;</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/327/how-to-do-bitwise-and-operation</guid>
<pubDate>Sat, 31 Aug 2024 14:07:49 +0000</pubDate>
</item>
<item>
<title>Answered: Add a new checksum?</title>
<link>https://synalysis.guru/q2a/324/add-a-new-checksum?show=325#a325</link>
<description>Unfortunately not yet possible to add it in a config or script however I've implemented a minute ago for the next version.</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/324/add-a-new-checksum?show=325#a325</guid>
<pubDate>Fri, 30 Aug 2024 19:58:24 +0000</pubDate>
</item>
<item>
<title>Answered: How to process encoded offsets</title>
<link>https://synalysis.guru/q2a/322/how-to-process-encoded-offsets?show=323#a323</link>
<description>Never mind, I figured it out myself. I ended up writing a custom data type script for the entire dictionary, which includes functions for decoding the offsets. I then mapped the structures using `currentMapper.mapStructureAtPosition`.</description>
<category>Generic</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/322/how-to-process-encoded-offsets?show=323#a323</guid>
<pubDate>Thu, 18 Jul 2024 21:01:25 +0000</pubDate>
</item>
<item>
<title>Answered: How can I re-analyze a file during script development?</title>
<link>https://synalysis.guru/q2a/316/how-can-i-re-analyze-a-file-during-script-development?show=318#a318</link>
<description>&lt;p&gt;To force re-analysis in Synalyze It! without closing and re-opening the file, you can try the following steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Use the &quot;Reanalyze&quot; option from the &quot;Analyze&quot; menu if available.&lt;/li&gt;&lt;li&gt;Reload the script or data type in the application's settings.&lt;/li&gt;&lt;li&gt;Consult the official documentation or support for any shortcuts or tools to streamline this process.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;For professional help with technical projects and more, check out Syscorp, the &lt;a rel=&quot;nofollow&quot; href=&quot;https://syscorp.in/local-seo&quot;&gt;Best Local SEO company in Chennai&lt;/a&gt;. Visit their website for top-notch services to boost your online presence.&lt;/p&gt;</description>
<category>Generic</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/316/how-can-i-re-analyze-a-file-during-script-development?show=318#a318</guid>
<pubDate>Tue, 09 Jul 2024 10:57:12 +0000</pubDate>
</item>
<item>
<title>Answered: how to find duplicates in html files?</title>
<link>https://synalysis.guru/q2a/112/how-to-find-duplicates-in-html-files?show=315#a315</link>
<description>&lt;p&gt;To identify duplicate content in HTML files, especially for web development projects like those handled by SysCorp, a systematic approach is crucial. Duplicates can negatively impact search engine rankings and user experience,&amp;nbsp;For &lt;a rel=&quot;nofollow&quot; href=&quot;https://syscorp.in/web-development&quot;&gt;best web design company in chennai&lt;/a&gt;.&lt;/p&gt;</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/112/how-to-find-duplicates-in-html-files?show=315#a315</guid>
<pubDate>Fri, 28 Jun 2024 10:06:00 +0000</pubDate>
</item>
<item>
<title>Answered: How to create grammar file that highlight occurrences of specific bytes ?</title>
<link>https://synalysis.guru/q2a/308/create-grammar-file-highlight-occurrences-specific-bytes?show=314#a314</link>
<description>Currently there's not such a (grammar) feature.&lt;br /&gt;
&lt;br /&gt;
However, when you use the search all findings are highlighted.</description>
<category>Hexinator</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/308/create-grammar-file-highlight-occurrences-specific-bytes?show=314#a314</guid>
<pubDate>Sun, 26 May 2024 01:14:42 +0000</pubDate>
</item>
<item>
<title>Answered: Synalyze It! v1.32: I want to diff 2 binary files, but the option &quot;New diff&quot; is greyed out</title>
<link>https://synalysis.guru/q2a/312/synalyze-want-diff-binary-files-but-the-option-new-diff-greyed?show=313#a313</link>
<description>The binary diff feature is only part of the Pro version.&lt;br /&gt;
There's a possibility to upgrade to Pro in the menu Synalyze It!/Upgrade to Pro...</description>
<category>Synalyze It!</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/312/synalyze-want-diff-binary-files-but-the-option-new-diff-greyed?show=313#a313</guid>
<pubDate>Sun, 26 May 2024 01:12:51 +0000</pubDate>
</item>
<item>
<title>Answered: Getting started with grammars--a file of simple variable-length records</title>
<link>https://synalysis.guru/q2a/310/getting-started-with-grammars-simple-variable-length-records?show=311#a311</link>
<description>&lt;p&gt;This sounds very similar to PNG, have you had a look at this tutorial?&lt;/p&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.synalysis.net/tutorials/decode-png-file&quot;&gt;https://www.synalysis.net/tutorials/decode-png-file&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
<category>Grammars</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/310/getting-started-with-grammars-simple-variable-length-records?show=311#a311</guid>
<pubDate>Thu, 25 Apr 2024 20:37:27 +0000</pubDate>
</item>
<item>
<title>Hexinator for Ubuntu system lacking Internet access</title>
<link>https://synalysis.guru/q2a/309/hexinator-for-ubuntu-system-lacking-internet-access</link>
<description>&lt;p&gt;I'd like to make Hexinator available to install via &lt;span style=&quot;font-family:courier new,courier,monospace&quot;&gt;apt&lt;/span&gt; for some Ubuntu systems that have no access to the Internet and so can't download the necessary material from &lt;a rel=&quot;nofollow&quot; href=&quot;https://hexinator.com/downloads/&quot;&gt;https://hexinator.com/downloads/&lt;/a&gt;. If this can be done, please tell me what I need to do, including any prerequisites I might also need.&lt;/p&gt;</description>
<category>Hexinator</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/309/hexinator-for-ubuntu-system-lacking-internet-access</guid>
<pubDate>Thu, 25 Apr 2024 13:10:38 +0000</pubDate>
</item>
<item>
<title>Trying to install on Ubuntu, but there is a dependency to python2.7</title>
<link>https://synalysis.guru/q2a/307/trying-to-install-on-ubuntu-but-there-is-dependency-python2</link>
<description>Python2 has been dead for a while, does this mean that hexinator also is dead?</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/307/trying-to-install-on-ubuntu-but-there-is-dependency-python2</guid>
<pubDate>Fri, 06 Oct 2023 07:21:41 +0000</pubDate>
</item>
<item>
<title>how can i put the &quot;remaining length&quot;-element not at the end of a structure, but between fixed-length-elements?</title>
<link>https://synalysis.guru/q2a/306/remaining-length-element-structure-between-length-elements</link>
<description>&lt;p&gt;i have a fixed-length-chunk at the end of every section of my file,&lt;br&gt;but i don't know the length of the variable-length-binary.&lt;br&gt;how can i put the variable size between fixed-length-elements?&lt;br&gt;it only works if the remaining length element is at the end.&lt;br&gt;&lt;br&gt;the structure looks like this:&lt;br&gt;chunk_1 (fixed length)&lt;br&gt;&amp;nbsp; &amp;nbsp; fixed length binary&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;variable length binary (remaining)&lt;/strong&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; fixed length binary&lt;br&gt;chunk_2 (fixed length)&lt;br&gt;&amp;nbsp; &amp;nbsp; fixed length binary&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;variable length binary (remaining)&lt;/strong&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; fixed length binary&lt;br&gt;chunk_3&amp;nbsp;(fixed length)&lt;br&gt;&amp;nbsp; &amp;nbsp; fixed length binary&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;strong&gt;variable length binary (remaining)&lt;/strong&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; fixed length binary&lt;/p&gt;</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/306/remaining-length-element-structure-between-length-elements</guid>
<pubDate>Sat, 05 Aug 2023 12:48:55 +0000</pubDate>
</item>
<item>
<title>How to display bytes (non-printing control codes) as Unicode control pictures?</title>
<link>https://synalysis.guru/q2a/305/display-bytes-printing-control-codes-unicode-control-pictures</link>
<description>I use Hexinator to select byte range freuently. with default font Courier New, non-printing control codes are displayed as dots, which is not so intuitive/distinguishable, thus affacts productivity.&lt;br /&gt;
&lt;br /&gt;
So are there any monospace fonts which display non-printing control codes as Unicode control pictures? or as 2-digit hex glyphs?&lt;br /&gt;
&lt;br /&gt;
If no such font found, how do I make a such font?</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/305/display-bytes-printing-control-codes-unicode-control-pictures</guid>
<pubDate>Fri, 04 Aug 2023 12:42:35 +0000</pubDate>
</item>
<item>
<title>Answered: What does the &quot;Consists of&quot; box do exactly?</title>
<link>https://synalysis.guru/q2a/300/what-does-the-consists-of-box-do-exactly?show=303#a303</link>
<description>&lt;p&gt;Sorry for the loss, is actually the whole XML file unusable?&lt;/p&gt;&lt;p&gt;The consists-of was initially used for the automatic selection of one of multiple structures. It's only used in the AFP grammar.&lt;/p&gt;&lt;p&gt;The generic way to select one of many structures is to reference them in a structure with order &quot;variable&quot; and min repeat count of 0.&lt;/p&gt;&lt;p&gt;Please send me an email to&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;mailto:andreas@synalysis.com?subject=synalysis.guru%20question&quot;&gt;andreas@synalysis.com&lt;/a&gt; in case you need further assistance with your grammar.&lt;/p&gt;</description>
<category>Grammars</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/300/what-does-the-consists-of-box-do-exactly?show=303#a303</guid>
<pubDate>Thu, 25 May 2023 13:43:00 +0000</pubDate>
</item>
<item>
<title>Answered: how do i reject a zero length string - or alternatively how do i terminate parsing an element from a script?</title>
<link>https://synalysis.guru/q2a/301/reject-length-alternatively-terminate-parsing-element-script?show=302#a302</link>
<description>&lt;p&gt;This is probably best made with a scripting element - see some examples here:&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.synalysis.net/scripting/&quot;&gt;https://www.synalysis.net/scripting/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Let it read the byte at the current position with byteView.readByte(), then map the structure that selects one of the attributes.&lt;/p&gt;&lt;p&gt;If you need further assistance please send me an email to &lt;a rel=&quot;nofollow&quot; href=&quot;mailto:andreas@synalysis.com?subject=synalysis.guru%20question&quot;&gt;andreas@synalysis.com&lt;/a&gt;.&lt;/p&gt;</description>
<category>Grammars</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/301/reject-length-alternatively-terminate-parsing-element-script?show=302#a302</guid>
<pubDate>Thu, 25 May 2023 13:37:14 +0000</pubDate>
</item>
<item>
<title>Answered: Is there a way to pass parameters to custom types?</title>
<link>https://synalysis.guru/q2a/297/is-there-a-way-to-pass-parameters-to-custom-types?show=298#a298</link>
<description>So you want to provide for each usage in the Grammar a parameter to the script of the custom type?&lt;br /&gt;
And the parameter doesn't depend on any other element parsed previously?</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/297/is-there-a-way-to-pass-parameters-to-custom-types?show=298#a298</guid>
<pubDate>Mon, 24 Apr 2023 19:55:26 +0000</pubDate>
</item>
<item>
<title>Answered: Question about scripts and grammars</title>
<link>https://synalysis.guru/q2a/294/question-about-scripts-and-grammars?show=295#a295</link>
<description>In general you can use the name of the element that holds the length in the Length field of the following structure.&lt;br /&gt;
&lt;br /&gt;
Have you tried this?</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/294/question-about-scripts-and-grammars?show=295#a295</guid>
<pubDate>Wed, 08 Mar 2023 17:22:26 +0000</pubDate>
</item>
<item>
<title>Answered: Grammer Editor</title>
<link>https://synalysis.guru/q2a/292/grammer-editor?show=293#a293</link>
<description>I figured it out.</description>
<category>Grammars</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/292/grammer-editor?show=293#a293</guid>
<pubDate>Wed, 08 Mar 2023 05:08:55 +0000</pubDate>
</item>
<item>
<title>Answered: Automate file reading and parsing</title>
<link>https://synalysis.guru/q2a/115/automate-file-reading-and-parsing?show=290#a290</link>
<description>So far that's not possible. However, you can run the whole script within Hexinator.</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/115/automate-file-reading-and-parsing?show=290#a290</guid>
<pubDate>Sat, 18 Feb 2023 08:41:57 +0000</pubDate>
</item>
<item>
<title>Answered: Decode small Nokia full dump of a mobile phone</title>
<link>https://synalysis.guru/q2a/136/decode-small-nokia-full-dump-of-a-mobile-phone?show=289#a289</link>
<description>First step is to check if the file format is documented somewhere. If not, it probably makes sense to check if you can spot patterns in the file. For example, every SMS message or contact very likely follows a similar pattern. Dates/time values for example are stored in many formats as 4-byte integers with seconds since 1970.</description>
<category>Hexinator</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/136/decode-small-nokia-full-dump-of-a-mobile-phone?show=289#a289</guid>
<pubDate>Sat, 18 Feb 2023 08:22:10 +0000</pubDate>
</item>
<item>
<title>Answered: Value field of a structure</title>
<link>https://synalysis.guru/q2a/140/value-field-of-a-structure?show=288#a288</link>
<description>Here you probably have to use a script that collects the single strings.</description>
<category>Grammars</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/140/value-field-of-a-structure?show=288#a288</guid>
<pubDate>Sat, 18 Feb 2023 07:49:01 +0000</pubDate>
</item>
<item>
<title>Answered: Find regex/wildcard?</title>
<link>https://synalysis.guru/q2a/143/find-regex-wildcard?show=287#a287</link>
<description>As regexes or wildcards are usually operated on text data it's not that common in hex editors.&lt;br /&gt;
&lt;br /&gt;
However, it should be possible to use grep (with regexes) if your file consists mainly of text.</description>
<category>Synalyze It!</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/143/find-regex-wildcard?show=287#a287</guid>
<pubDate>Sat, 18 Feb 2023 07:43:39 +0000</pubDate>
</item>
<item>
<title>Answered: How can I change the calendar dates of my CPAP data?</title>
<link>https://synalysis.guru/q2a/150/how-can-i-change-the-calendar-dates-of-my-cpap-data?show=286#a286</link>
<description>&lt;p&gt;The first step is to look closer about the data (file) format as the manufacturers of devices producing CPAP data use different formats.&lt;/p&gt;&lt;p&gt;Is your data readable with this software?&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.sleepfiles.com/OSCAR/&quot;&gt;https://www.sleepfiles.com/OSCAR/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
<category>Hexinator</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/150/how-can-i-change-the-calendar-dates-of-my-cpap-data?show=286#a286</guid>
<pubDate>Sat, 18 Feb 2023 07:40:06 +0000</pubDate>
</item>
<item>
<title>Answered: Data panel &amp; strings</title>
<link>https://synalysis.guru/q2a/146/data-panel-%26-strings?show=285#a285</link>
<description>You can use the codepage comparison panel for this. It lists the same bytes with all available codepages.&lt;br /&gt;
&lt;br /&gt;
It doesn't update with the cursor but I guess usually you see in the text part of the hex editor what could be a text.&lt;br /&gt;
&lt;br /&gt;
Does this help?</description>
<category>Hexinator</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/146/data-panel-%26-strings?show=285#a285</guid>
<pubDate>Fri, 17 Feb 2023 17:22:48 +0000</pubDate>
</item>
<item>
<title>Answered: Add mask via bitshift?</title>
<link>https://synalysis.guru/q2a/144/add-mask-via-bitshift?show=284#a284</link>
<description>I'd suggest to do it with division. In case your number element is named BigNumber, set the Value field to&lt;br /&gt;
&lt;br /&gt;
BigNumber / 16</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/144/add-mask-via-bitshift?show=284#a284</guid>
<pubDate>Fri, 17 Feb 2023 17:19:59 +0000</pubDate>
</item>
<item>
<title>Answered: Length information comes after the usage of the actual length. Is it even possible to use it in Grammar?</title>
<link>https://synalysis.guru/q2a/148/length-information-after-usage-actual-length-possible-grammar?show=283#a283</link>
<description>&lt;p&gt;Probably something like in the ZIP grammar could work: a simple script continues parsing at header, then another script let &lt;span style=&quot;font-family:courier new,courier,monospace&quot;&gt;data0&lt;/span&gt; be parsed.&lt;/p&gt;</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/148/length-information-after-usage-actual-length-possible-grammar?show=283#a283</guid>
<pubDate>Fri, 17 Feb 2023 17:02:02 +0000</pubDate>
</item>
<item>
<title>Answered: Is there a way to get nibble arrays to obey endianness?</title>
<link>https://synalysis.guru/q2a/227/is-there-a-way-to-get-nibble-arrays-to-obey-endianness?show=282#a282</link>
<description>&lt;p&gt;As this is currently not possible with the standard grammar means it could be done with a custom (scripted)&amp;nbsp;data type. I you need support for such a script, please write a message to&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;mailto:grammars@synalysis.com&quot;&gt;grammars@synalysis.com&lt;/a&gt;.&lt;/p&gt;</description>
<category>Grammars</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/227/is-there-a-way-to-get-nibble-arrays-to-obey-endianness?show=282#a282</guid>
<pubDate>Fri, 17 Feb 2023 16:49:16 +0000</pubDate>
</item>
<item>
<title>Answered: custom type for data panel</title>
<link>https://synalysis.guru/q2a/238/custom-type-for-data-panel?show=281#a281</link>
<description>So far this is not implemented but it's a very good suggestion, thank you!</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/238/custom-type-for-data-panel?show=281#a281</guid>
<pubDate>Fri, 17 Feb 2023 16:46:06 +0000</pubDate>
</item>
<item>
<title>Answered: How to match 1 of several child structures</title>
<link>https://synalysis.guru/q2a/147/how-to-match-1-of-several-child-structures?show=280#a280</link>
<description>&lt;p&gt;Could you please send the grammar with a sample file to &lt;a rel=&quot;nofollow&quot; href=&quot;mailto:grammars@synalysis.com&quot;&gt;grammars@synalysis.com&lt;/a&gt;? It's hard to solve such issues without having the actual grammar.&lt;/p&gt;</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/147/how-to-match-1-of-several-child-structures?show=280#a280</guid>
<pubDate>Fri, 17 Feb 2023 16:45:05 +0000</pubDate>
</item>
<item>
<title>Answered: Variable document structure</title>
<link>https://synalysis.guru/q2a/167/variable-document-structure?show=279#a279</link>
<description>This looks very similar to how the PNG grammar works.&lt;br /&gt;
&lt;br /&gt;
You create a (separate) &amp;quot;parent&amp;quot; structure that contains only one field for ID with &amp;quot;must match&amp;quot; checked.&lt;br /&gt;
&lt;br /&gt;
Then you create (separate) structures that inherit from the parent structure and contain the record specific fields. For the ID field you add one fixed value with the record specific ID.&lt;br /&gt;
&lt;br /&gt;
In the main structure (named like the file) you create a structure with variable element order, then add references to all the record structures.</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/167/variable-document-structure?show=279#a279</guid>
<pubDate>Fri, 17 Feb 2023 15:56:53 +0000</pubDate>
</item>
<item>
<title>Answered: can I scan the entire hard drive (not just a file) for a name and change it with Synalyze It?</title>
<link>https://synalysis.guru/q2a/228/scan-entire-hard-drive-just-file-name-and-change-with-synalyze?show=278#a278</link>
<description>&lt;p&gt;Honestly this is not within it's intended use. It could be achieved with a Python script running in Synalyze It! however you could run the same script separately.&lt;/p&gt;&lt;p&gt;I'd suggest a solution as described here:&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;https://unix.stackexchange.com/questions/227662/how-to-rename-multiple-files-using-find&quot;&gt;https://unix.stackexchange.com/questions/227662/how-to-rename-multiple-files-using-find&lt;/a&gt;&lt;/p&gt;</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/228/scan-entire-hard-drive-just-file-name-and-change-with-synalyze?show=278#a278</guid>
<pubDate>Fri, 17 Feb 2023 15:38:22 +0000</pubDate>
</item>
<item>
<title>Answered: How to cast a data type?</title>
<link>https://synalysis.guru/q2a/234/how-to-cast-a-data-type?show=277#a277</link>
<description>This is actually a hidden feature: simply create a string element (name without spaces!) for the number, then use its name as Repeat/max count. The string is treated as a decimal number.</description>
<category>Grammars</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/234/how-to-cast-a-data-type?show=277#a277</guid>
<pubDate>Fri, 17 Feb 2023 15:34:40 +0000</pubDate>
</item>
<item>
<title>Answered: Import from Base64?</title>
<link>https://synalysis.guru/q2a/230/import-from-base64?show=276#a276</link>
<description>&lt;p&gt;Thank you for the suggestion, this can be solved with a script. Simply but the code below in the script editor in a new script of type &lt;em&gt;selection&lt;/em&gt;. This means that you first select the bytes&amp;nbsp;that are part of the BASE64 string (in the hex editor), then run the script via the script menu.&lt;/p&gt;&lt;p&gt;~~~~~~~~~~~~~~~~~8&amp;lt;~~~~~~~~~~~~~~~~~&lt;br&gt;&lt;span style=&quot;font-family:courier new,courier,monospace&quot;&gt;import base64&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:courier new,courier,monospace&quot;&gt;def processByteRange(byteView, byteArray, bytePos, byteLength):&lt;br&gt;&amp;nbsp; &amp;nbsp; # this method processes a sequence of bytes&lt;br&gt;&amp;nbsp; &amp;nbsp; &quot;&quot;&quot;parseByteRange method&quot;&quot;&quot;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:courier new,courier,monospace&quot;&gt;&amp;nbsp; &amp;nbsp; data_string = byteView.readString(bytePos, byteLength, &quot;ISO_8859-1&quot;)&lt;br&gt;&amp;nbsp; &amp;nbsp; data_bytes = data_string.encode('ascii')&lt;br&gt;&amp;nbsp; &amp;nbsp; decoded = base64.b64decode(data_bytes)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:courier new,courier,monospace&quot;&gt;&amp;nbsp; &amp;nbsp; byteArray.deleteRange(bytePos, byteLength)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:courier new,courier,monospace&quot;&gt;&amp;nbsp; &amp;nbsp; index = 0&lt;br&gt;&amp;nbsp; &amp;nbsp; for base64_char in decoded:&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; byteArray.insertByte(bytePos + index, base64_char)&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; index += 1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;~~~~~~~~~~~~~~~~~8&amp;lt;~~~~~~~~~~~~~~~~~&lt;br&gt;&amp;nbsp;&lt;/p&gt;</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/230/import-from-base64?show=276#a276</guid>
<pubDate>Fri, 17 Feb 2023 15:20:31 +0000</pubDate>
</item>
<item>
<title>Answered: How do I start using grammar?</title>
<link>https://synalysis.guru/q2a/273/how-do-i-start-using-grammar?show=275#a275</link>
<description>The easiest workflow is that you open a file with a known file extension / grammar and the grammar suggests to download and apply that grammar. This is possible because the application loads the formats.xml when starting. When you open wav.grammar with Hexinator it should be opened in the grammar editor (not as XML in the hex editor).&lt;br /&gt;
&lt;br /&gt;
Once the grammar is loaded in the grammar editor, opened data files (in the hex editor) should have the grammar available in the &amp;quot;Grammar&amp;quot; toolbar selection. After you selected there &amp;quot;Windows Wave&amp;quot; the file should be decoded and the results shown in the tree view right next to the hex editor.&lt;br /&gt;
&lt;br /&gt;
Is this explanation sufficient?</description>
<category>Grammars</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/273/how-do-i-start-using-grammar?show=275#a275</guid>
<pubDate>Fri, 17 Feb 2023 09:27:15 +0000</pubDate>
</item>
<item>
<title>Answered: Can the number of repetitions of a structure be set by a number from within another structure?</title>
<link>https://synalysis.guru/q2a/272/number-repetitions-structure-number-within-another-structure?show=274#a274</link>
<description>You can reference a number element parsed previously by name (if it doesn't have spaces in the name).&lt;br /&gt;
&lt;br /&gt;
Simply put the name of that element in the &amp;quot;Repeat max&amp;quot; field.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Repeat&amp;quot; field only works for number elements being in the same structure. The advantage of the Repeat field is that it allows to reference a field that's not yet parsed.</description>
<category>Grammars</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/272/number-repetitions-structure-number-within-another-structure?show=274#a274</guid>
<pubDate>Fri, 17 Feb 2023 09:21:40 +0000</pubDate>
</item>
<item>
<title>Answered: Can a grammar reference another grammar?</title>
<link>https://synalysis.guru/q2a/152/can-a-grammar-reference-another-grammar?show=271#a271</link>
<description>Yes, this is possible. Use the &amp;quot;Grammar Reference&amp;quot; element in order to continue parsing with another grammar.&lt;br /&gt;
&lt;br /&gt;
Simply right-click (or ctrl click) on the element after which you want to reference the grammar, then select Append/Grammar Reference.</description>
<category>Grammars</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/152/can-a-grammar-reference-another-grammar?show=271#a271</guid>
<pubDate>Mon, 26 Sep 2022 11:03:16 +0000</pubDate>
</item>
<item>
<title>Answered: Anyone using OSX Monterey v 12.3 with SynalyseIT?</title>
<link>https://synalysis.guru/q2a/241/anyone-using-osx-monterey-v-12-3-with-synalyseit?show=264#a264</link>
<description>&lt;p&gt;Please have a look at this (beta) version:&lt;/p&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.synalyze-it.com/Downloads/SynalyzeItProTA_1.24.zip&quot;&gt;https://www.synalyze-it.com/Downloads/SynalyzeItProTA_1.24.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Be aware that now Python 3.10 is included so some existing scripts may have to be adapted.&lt;/p&gt;&lt;p&gt;Especially make sure that function calls are written like this:&lt;/p&gt;&lt;p&gt;print(“abc”)&lt;/p&gt;&lt;p&gt;And that // must be used for integer division instead of /&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Any feedback is appreciated!&lt;/p&gt;&lt;p&gt;P.S.: There will also be an App Store version, of course&lt;/p&gt;</description>
<category>Synalyze It!</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/241/anyone-using-osx-monterey-v-12-3-with-synalyseit?show=264#a264</guid>
<pubDate>Sun, 21 Aug 2022 19:55:38 +0000</pubDate>
</item>
<item>
<title>Answered: SynalyzeIt for Monterey</title>
<link>https://synalysis.guru/q2a/251/synalyzeit-for-monterey?show=263#a263</link>
<description>&lt;p&gt;Please have a look at this (beta) version:&lt;/p&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.synalyze-it.com/Downloads/SynalyzeItProTA_1.24.zip&quot;&gt;https://www.synalyze-it.com/Downloads/SynalyzeItProTA_1.24.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Be aware that now Python 3.10 is included so some existing scripts may have to be adapted.&lt;/p&gt;&lt;p&gt;Especially make sure that function calls are written like this:&lt;/p&gt;&lt;p&gt;print(“abc”)&lt;/p&gt;&lt;p&gt;And that // must be used for integer division instead of /&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Any feedback is appreciated!&lt;/p&gt;&lt;p&gt;P.S.: There will also be an App Store version, of course&lt;/p&gt;</description>
<category>Synalyze It!</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/251/synalyzeit-for-monterey?show=263#a263</guid>
<pubDate>Sun, 21 Aug 2022 19:37:59 +0000</pubDate>
</item>
<item>
<title>Answered: Looks amazing, is it still maintained?</title>
<link>https://synalysis.guru/q2a/224/looks-amazing-is-it-still-maintained?show=236#a236</link>
<description>MacOS 12.2.1 with SynalizeitPro 1.23.4 and still getting the warning. Hoping to get confirmation that this will be upgraded. This is my go-to hex-editor.</description>
<category>Synalyze It!</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/224/looks-amazing-is-it-still-maintained?show=236#a236</guid>
<pubDate>Fri, 18 Feb 2022 13:19:54 +0000</pubDate>
</item>
<item>
<title>Has someone generated a grammar for m-bus (meter bus) yet?</title>
<link>https://synalysis.guru/q2a/229/has-someone-generated-a-grammar-for-m-bus-meter-bus-yet</link>
<description>I'd like to parse a hex file with a dump of a m-bus protocol. Has someone prepared the grammar for analyzing m-bus protocols? That would be very nice.&lt;br /&gt;
&lt;br /&gt;
Thank's a lot.&lt;br /&gt;
&lt;br /&gt;
Powerman</description>
<category>Grammars</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/229/has-someone-generated-a-grammar-for-m-bus-meter-bus-yet</guid>
<pubDate>Thu, 02 Dec 2021 16:31:43 +0000</pubDate>
</item>
<item>
<title>Answered: How do I tell if I have the pro upgrade on the original Synalyze It from the App Store?</title>
<link>https://synalysis.guru/q2a/222/tell-have-the-pro-upgrade-the-original-synalyze-from-the-store?show=223#a223</link>
<description>The standard way to restore the upgrade is via the menu &amp;quot;Synalyze It!&amp;quot;/&amp;quot;Upgrade to Pro...&amp;quot;, then click &amp;quot;Restore Purchases&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please make sure that you are logged in iCloud with the same account you used for doing the purchase. The most common problem to restore purchases is using another Apple ID.</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/222/tell-have-the-pro-upgrade-the-original-synalyze-from-the-store?show=223#a223</guid>
<pubDate>Wed, 28 Jul 2021 07:27:29 +0000</pubDate>
</item>
<item>
<title>Answered: Conditional grammar structures</title>
<link>https://synalysis.guru/q2a/145/conditional-grammar-structures?show=153#a153</link>
<description>Hi,&lt;br /&gt;
&lt;br /&gt;
I've just purchased the software and had a similar problem. I've tried to put it together for you quickly.&lt;br /&gt;
&lt;br /&gt;
The method I used:&lt;br /&gt;
&lt;br /&gt;
- create new grammar&lt;br /&gt;
&lt;br /&gt;
- add structure&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;name it MPLS file: this is going to be your root element which will contain all the others&lt;br /&gt;
&lt;br /&gt;
- add structure:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;name it type or StreamType: this is going to contain the numeric value which you will use for your condition.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;Right-click on it and append it with a number, call it type and make sure its length is 1 byte.&lt;br /&gt;
&lt;br /&gt;
- add structures: A, B, C. I don't know the actual content of these but you will use them in your particular structures.&lt;br /&gt;
&lt;br /&gt;
- add structure:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;name it StreamType 1: on the right in Properties: Set Extends entry to StreamType (or type depending how you called your type structure)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;click on StreamType 1/type element and in Fixed values: press '+' icon to add a value, give it a name and set its value to 1. I think this will make sure that this structure will be used when type = 1. Right-click on StreamType 1 element and append a structure reference to 'A'.&lt;br /&gt;
&lt;br /&gt;
- Go back to MPLS file element and right-click and append a structure reference to StreamType 1.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;I'm guessing your MPLS file can contain any number of structures in any order so set MPLS file Properties on the right to have Element order: Variable and Repeat: min: 0 and max: Unlimited.&lt;br /&gt;
&lt;br /&gt;
Click on Stream Type 1 within MPLS file and in Properties set Repeat: min: 0 and max:1. I guess this sets it to be optional.&lt;br /&gt;
&lt;br /&gt;
Repeat everything you've done for StreamType 1 for your StreamType 2 and StreamType 3.&lt;br /&gt;
&lt;br /&gt;
I'm hoping it is going to be easy once you tried it on the interface.&lt;br /&gt;
&lt;br /&gt;
Best regards,&lt;br /&gt;
&lt;br /&gt;
Janos&lt;br /&gt;
&lt;br /&gt;
Here is the result I've got:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ufwb version=&amp;quot;1.17&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;grammar name=&amp;quot;New grammar&amp;quot; start=&amp;quot;id:36&amp;quot; author=&amp;quot;JanosVaczi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structure name=&amp;quot;MPLS file&amp;quot; id=&amp;quot;36&amp;quot; repeatmin=&amp;quot;0&amp;quot; repeatmax=&amp;quot;-1&amp;quot; encoding=&amp;quot;ISO_8859-1:1987&amp;quot; endian=&amp;quot;big&amp;quot; signed=&amp;quot;no&amp;quot; order=&amp;quot;variable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structref name=&amp;quot;&amp;amp;lt;Stream Type 1&amp;amp;gt;&amp;quot; id=&amp;quot;50&amp;quot; repeatmin=&amp;quot;0&amp;quot; structure=&amp;quot;id:47&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structref name=&amp;quot;&amp;amp;lt;Stream Type 2&amp;amp;gt;&amp;quot; id=&amp;quot;68&amp;quot; repeatmin=&amp;quot;0&amp;quot; structure=&amp;quot;id:58&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structref name=&amp;quot;&amp;amp;lt;Stream Type 3&amp;amp;gt;&amp;quot; id=&amp;quot;69&amp;quot; repeatmin=&amp;quot;0&amp;quot; structure=&amp;quot;id:63&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/structure&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structure name=&amp;quot;StreamType&amp;quot; id=&amp;quot;44&amp;quot; encoding=&amp;quot;ISO_8859-1:1987&amp;quot; endian=&amp;quot;big&amp;quot; signed=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;number name=&amp;quot;type&amp;quot; id=&amp;quot;46&amp;quot; type=&amp;quot;integer&amp;quot; length=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/structure&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structure name=&amp;quot;Stream Type 1&amp;quot; id=&amp;quot;47&amp;quot; extends=&amp;quot;id:44&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;number name=&amp;quot;type&amp;quot; mustmatch=&amp;quot;yes&amp;quot; id=&amp;quot;49&amp;quot; type=&amp;quot;integer&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;fixedvalues&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;fixedvalue name=&amp;quot;One&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/fixedvalues&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/number&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structref name=&amp;quot;&amp;amp;lt;A&amp;amp;gt;&amp;quot; id=&amp;quot;57&amp;quot; structure=&amp;quot;id:51&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/structure&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structure name=&amp;quot;Stream Type 2&amp;quot; id=&amp;quot;58&amp;quot; extends=&amp;quot;id:44&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;number name=&amp;quot;type&amp;quot; mustmatch=&amp;quot;yes&amp;quot; id=&amp;quot;60&amp;quot; type=&amp;quot;integer&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;fixedvalues&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;fixedvalue name=&amp;quot;Two&amp;quot; value=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/fixedvalues&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/number&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structref name=&amp;quot;&amp;amp;lt;B&amp;amp;gt;&amp;quot; id=&amp;quot;61&amp;quot; structure=&amp;quot;id:53&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structref name=&amp;quot;&amp;amp;lt;C&amp;amp;gt;&amp;quot; id=&amp;quot;62&amp;quot; structure=&amp;quot;id:55&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/structure&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structure name=&amp;quot;Stream Type 3&amp;quot; id=&amp;quot;63&amp;quot; extends=&amp;quot;id:44&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;number name=&amp;quot;type&amp;quot; mustmatch=&amp;quot;yes&amp;quot; id=&amp;quot;65&amp;quot; type=&amp;quot;integer&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;fixedvalues&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;fixedvalue name=&amp;quot;Three&amp;quot; value=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/fixedvalues&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/number&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structref name=&amp;quot;&amp;amp;lt;B&amp;amp;gt;&amp;quot; id=&amp;quot;66&amp;quot; structure=&amp;quot;id:53&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structref name=&amp;quot;&amp;amp;lt;A&amp;amp;gt;&amp;quot; id=&amp;quot;67&amp;quot; structure=&amp;quot;id:51&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/structure&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structure name=&amp;quot;A&amp;quot; id=&amp;quot;51&amp;quot; encoding=&amp;quot;ISO_8859-1:1987&amp;quot; endian=&amp;quot;big&amp;quot; signed=&amp;quot;no&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structure name=&amp;quot;B&amp;quot; id=&amp;quot;53&amp;quot; encoding=&amp;quot;ISO_8859-1:1987&amp;quot; endian=&amp;quot;big&amp;quot; signed=&amp;quot;no&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;structure name=&amp;quot;C&amp;quot; id=&amp;quot;55&amp;quot; encoding=&amp;quot;ISO_8859-1:1987&amp;quot; endian=&amp;quot;big&amp;quot; signed=&amp;quot;no&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/ufwb&amp;gt;</description>
<category>Grammars</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/145/conditional-grammar-structures?show=153#a153</guid>
<pubDate>Wed, 09 Sep 2020 12:36:16 +0000</pubDate>
</item>
<item>
<title>Answered: How to export parsed results to a file</title>
<link>https://synalysis.guru/q2a/133/how-to-export-parsed-results-to-a-file?show=141#a141</link>
<description>Hello,&lt;br /&gt;
&lt;br /&gt;
I'm not sure if I understand, but maybe you want the same as me.&lt;br /&gt;
&lt;br /&gt;
I would like to be able save selected part of (parsed) file as new file.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
Yamaha keyboard style file consists of 2 parts: MIDI + CASM data&lt;br /&gt;
&lt;br /&gt;
I want to save the first (MIDI) part as a new MIDI file.</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/133/how-to-export-parsed-results-to-a-file?show=141#a141</guid>
<pubDate>Sun, 01 Mar 2020 22:42:29 +0000</pubDate>
</item>
<item>
<title>Answered: I have no clue where to start. Help??</title>
<link>https://synalysis.guru/q2a/129/i-have-no-clue-where-to-start-help?show=139#a139</link>
<description>&lt;p&gt;First, just look at each WAV file, just in the hex editor. If everything shows up as&amp;nbsp;&lt;strong&gt;00&lt;/strong&gt;s, your data really&amp;nbsp;&lt;em&gt;is&lt;/em&gt;&amp;nbsp;lost. Assuming these aren't some special structure, the first 44 bytes describe the file. Everything after that is sound samples that are literally amplitude (loudness) values. A file that is 44.1&amp;nbsp;khz, 16 bit, stereo, each second of audio will be 176,400 bytes. A full minute would add up to 10 MB.&lt;/p&gt;&lt;p&gt;There's an existing grammar but, before you look at that, I'd recommend reading up a little on how a WAV file is structured:&lt;/p&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://soundfile.sapp.org/doc/WaveFormat/&quot;&gt;http://soundfile.sapp.org/doc/WaveFormat/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The grammar for Hexinator / Synalize It! is called &quot;Windows Wave&quot; because the format was introduced by Microsoft. It's a slightly complex grammar but you could try using that and see if it can tell you anything useful. Of course, if you're bored or drunk and want to see something&amp;nbsp;&lt;em&gt;really&lt;/em&gt;&amp;nbsp;complex. take a look at the MP3 grammar. You'll start to wonder how humanity has made it this far.&lt;/p&gt;</description>
<category>Synalyze It!</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/129/i-have-no-clue-where-to-start-help?show=139#a139</guid>
<pubDate>Fri, 28 Feb 2020 05:29:40 +0000</pubDate>
</item>
<item>
<title>Answered: Synalize It only recognizes first instance of element in custom grammar?</title>
<link>https://synalysis.guru/q2a/135/synalize-recognizes-first-instance-element-custom-grammar?show=138#a138</link>
<description>&lt;p&gt;&lt;span style=&quot;color:rgb(0, 0, 255)&quot;&gt;I know you're probably well-past the due date for your project, but I gave an answer in case somebody else had a similar question.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;A couple of things:&lt;/p&gt;&lt;p&gt;The grammar tag shows &lt;strong&gt;start=&quot;id:197&quot;&lt;/strong&gt;, which is the ID of the Bin structure. You want this to point at the&amp;nbsp;&lt;strong&gt;BinContainer&lt;/strong&gt;. Replace the preceding with&amp;nbsp;&lt;strong&gt;start=&quot;id:213&quot;&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Your&amp;nbsp;&lt;strong&gt;Padding&lt;/strong&gt;&amp;nbsp;piece has&amp;nbsp;&lt;strong&gt;repeatmax=&quot;-1&quot;&lt;/strong&gt;. I believe only structures support unlimited repeating. There are several things you could do here. Each of these has its own pros and cons:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Change&amp;nbsp;&lt;strong&gt;repeatmax&lt;/strong&gt;. Either match the &lt;strong&gt;Bin &lt;/strong&gt;structure (set max to 64) or set it at a very large value (e.g. 65535, the decimal version of 0xFFFF).&lt;/li&gt;&lt;li&gt;Change&amp;nbsp;&lt;strong&gt;length&lt;/strong&gt;. Set&amp;nbsp;&lt;strong&gt;repeatmax=&quot;1&quot;&lt;/strong&gt;,&amp;nbsp;&lt;strong&gt;length=&quot;remaining&quot;&lt;/strong&gt;, and uncheck&amp;nbsp;&lt;strong&gt;Must match&lt;/strong&gt;&amp;nbsp;(or remove the fixed value). This will repeat to the end of the size of &lt;strong&gt;Bin &lt;/strong&gt;(64).&lt;/li&gt;&lt;li&gt;Embed the binary value inside a structure and set&amp;nbsp;&lt;strong&gt;repeatmax=&quot;64&quot;&lt;/strong&gt;. If you choose this method, you can leave your&amp;nbsp;&lt;strong&gt;Must match&lt;/strong&gt;&amp;nbsp;with the 77 value.&lt;/li&gt;&lt;li&gt;Remove&amp;nbsp;&lt;strong&gt;Padding&lt;/strong&gt;. The parser will automatically skip to the end of the 64 bytes used by&amp;nbsp;&lt;strong&gt;Bin&lt;/strong&gt;.&lt;/li&gt;&lt;/ul&gt;</description>
<category>Grammars</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/135/synalize-recognizes-first-instance-element-custom-grammar?show=138#a138</guid>
<pubDate>Fri, 28 Feb 2020 05:07:44 +0000</pubDate>
</item>
<item>
<title>Answered: Does there exist a simple grammar for CSV files?</title>
<link>https://synalysis.guru/q2a/114/does-there-exist-a-simple-grammar-for-csv-files?show=132#a132</link>
<description>I believe this will help you:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/synalysis/Grammars/blob/master/csv.grammar&quot; rel=&quot;nofollow&quot;&gt;https://github.com/synalysis/Grammars/blob/master/csv.grammar&lt;/a&gt;</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/114/does-there-exist-a-simple-grammar-for-csv-files?show=132#a132</guid>
<pubDate>Wed, 13 Nov 2019 10:54:41 +0000</pubDate>
</item>
<item>
<title>Read structure another value within script</title>
<link>https://synalysis.guru/q2a/131/read-structure-another-value-within-script</link>
<description>&lt;p&gt;Hi,&lt;/p&gt;&lt;p&gt;I have a structure with name &quot;TLLV&quot;, that splits on 2 substructures: &quot;Header&quot; and &quot;Payload&quot;.&lt;/p&gt;&lt;p&gt;Payload has&amp;nbsp;&quot;Value&quot; and&amp;nbsp;&quot;padding&quot;, that is very depends on the length of the &quot;Value&quot;, specified in Header. And I want to calculate &quot;padding&quot; length in the custom datatype with writing&amp;nbsp;the&amp;nbsp;script:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;currentGrammar = currentMapper.getCurrentGrammar()&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;headerStruct = currentGrammar.getStructureByName(&quot;TLLV_Header&quot;)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;offset = currentMapper.getCurrentOffset()&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;bytesProcessed = currentMapper.mapStructureAtPosition(headerStruct, offset, 16)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;length = headerStruct.getElementByName(&quot;valueLength&quot;)&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;So, currently, I am able to reach out length, as an element.&lt;/p&gt;&lt;p&gt;But how to convert element to a &quot;Number&quot; type to be able to use it?&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
<category>Generic</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/131/read-structure-another-value-within-script</guid>
<pubDate>Wed, 13 Nov 2019 10:49:56 +0000</pubDate>
</item>
<item>
<title>Is it possible to write an advanced script, like decrypting?</title>
<link>https://synalysis.guru/q2a/130/is-it-possible-to-write-an-advanced-script-like-decrypting</link>
<description>Hello,&lt;br /&gt;
&lt;br /&gt;
I am wondering, before I will start, is it possible to adopt python decrypting code to the Synalysis?&lt;br /&gt;
&lt;br /&gt;
I want to try to write AES-128-CBC decryptor, to be able to read the data directly in Synalysis instead of jumping with exporting/importing + bash scripts.&lt;br /&gt;
&lt;br /&gt;
Which limitations should I consider? Have I access to the files on the disk to read the key? Can I directly invoke openssl or import some of useful python libraries?&lt;br /&gt;
&lt;br /&gt;
Sincerely,&lt;br /&gt;
&lt;br /&gt;
Vladimir.</description>
<category>Python</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/130/is-it-possible-to-write-an-advanced-script-like-decrypting</guid>
<pubDate>Tue, 12 Nov 2019 14:13:23 +0000</pubDate>
</item>
<item>
<title>Answered: How to find differences between two Binary files?</title>
<link>https://synalysis.guru/q2a/126/how-to-find-differences-between-two-binary-files?show=127#a127</link>
<description>Well, should have looked a bit longer I guess...&lt;br /&gt;
&lt;br /&gt;
There it was, under the Files drop-down menu - you call it &amp;quot;New Diff&amp;quot;, and yes, you load two files in and the differences show up as another colour.&lt;br /&gt;
&lt;br /&gt;
May I suggest that you have this info in the Help file?&lt;br /&gt;
&lt;br /&gt;
'New Diff' works exactly as I wanted, just a bit more buried than I could casually find 'casue I was looking for &amp;quot;Compare'!.&lt;br /&gt;
&lt;br /&gt;
Great program!</description>
<category>Synalyze It!</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/126/how-to-find-differences-between-two-binary-files?show=127#a127</guid>
<pubDate>Fri, 11 Oct 2019 01:03:22 +0000</pubDate>
</item>
<item>
<title>Answered: Grammers for Unreal files?</title>
<link>https://synalysis.guru/q2a/118/grammers-for-unreal-files?show=124#a124</link>
<description>Since you probably don't want to reverse engineer the file formats the first step is to obtain a description of the file format.&lt;br /&gt;
&lt;br /&gt;
Do you have the binary template for 010 Editor?</description>
<guid isPermaLink="true">https://synalysis.guru/q2a/118/grammers-for-unreal-files?show=124#a124</guid>
<pubDate>Thu, 10 Oct 2019 15:06:59 +0000</pubDate>
</item>
<item>
<title>Answered: Will dark mode support be added to Synalyze It! on macOS?</title>
<link>https://synalysis.guru/q2a/113/will-dark-mode-support-be-added-to-synalyze-it-on-macos?show=123#a123</link>
<description>Dark mode is supported now with the latest version (1.23).</description>
<category>Synalyze It!</category>
<guid isPermaLink="true">https://synalysis.guru/q2a/113/will-dark-mode-support-be-added-to-synalyze-it-on-macos?show=123#a123</guid>
<pubDate>Thu, 10 Oct 2019 14:59:08 +0000</pubDate>
</item>
</channel>
</rss>