This is an extension built by Dominick Reba (@fudgepop01) that allows for relative ease of development of ksy files. To find out more about Kaitai Struct and what it can do, head here: [kaitai.io]
If you want to see an overview of what this extension can do, check out [the overview video here]
this is the first extension to utilize the [fudgedit] hex editor. An extension exposing the editor itself will be released at a later date if requested.
To generate a new parser from a ksy file in a target language, right click on a ksy file and select "compile to target language". A prompt will appear where you choose the target langugae of choice. Pick the language and a parser will be generated from the ksy.
To make editing ksy files significantly easier, you'll want to download the [redhat YAML Language Server].
Then you'll want to include the following lines in your
regions: highlighting with depth
A region is the name I've given to the different chunks of a file. Depth refers to how many layers are traversed and visualized in the hex viewer. Take the following example ksy:
When the region depth parameter has a value of 1, only the regions representing
When hovering over one of these generated regions, you'll see some data about
the underlying region in the form of a tooltip. This tooltip will contain
at minumum a
Hovering over regions will grey out all other regions to allow the the user to focus on what particular region is being highlighted and distinguish it from the others.
Hovering over a region with a raw value type, such as string or integer will (read: should) additionally display the obtained value in the best way it can.
chunks: focus on what's relevant
If the option is enabled, chunking will automatically take place when a node is clicked in the tree-view. This will force the hex viewer to only render the chunk of the file that's relevant.
Upon compiling a kaitai struct file, a tree view in the explorer panel will pop up (if enabled). This will be titled KSEXPLORER (Kaitai Struct EXPLORER), and contains a tree view of all of the region names along with their types (or values). This will also give the user a bit more control over the editor.
tree views: navigation
if a tree view's node has children, then a dropdown toggle will appear at the start of the node. Clicking this will expand that region and show the child nodes.
tree views: jumping
By clicking on one of the tree's nodes, the hex editor will jump to the location of that node in the hex, place the cursor at the starting byte of the node, and select the area occupied by the node in the editor. This allows the user to navigate and view regions significantly easier, or focus on particular regions without the color overlay.
None! It should all work out of the box!
After working for awhile to improve the hex viewer, I am proud to release 0.7.0 of this extension! There are a number of new things that have been added thanks to this new power. Here is the changelog entry for this version:
Speaking of the changelog, it now actually serves the correct function as a changelog. I've since cleaned up and restructured this README file.