Imagine... you have a binary file and don't know its contents. Or some software creates binary files you have a specification for but don't want to decode them manually.
Have you ever looked at hex dumps and felt how hard it is to make sense of it? And to remember the meaning of all the bits and bytes?
Synalyze It! allows you to create a “grammar“ for your binary files interactively. Unlike in regular hex editors or viewers the files are interpreted automatically for you! Analysis of binary files has never been easier.
Additionally Synalyze It! is a full-featured Hex Editor for Mac OS X allowing you to edit files of unlimited size and interpret the bytes with dozens of text encodings.
Essentially it’s a modeling tool for arbitrary file formats that is being used by software developers and data stream experts as well as in computer forensics.
The grammars are stored as XML files and contain all the structures that may occur in a file of a certain format, just like XML schemas. It's even possible to inherit structures from others (like in OO languages) so you don't have to repeat for example a length field that appears at the beginning of each structure.
Synalyze It! is an extremely flexible and useful tool for viewing binary file data. It enables you to easily apply a structured format to your file bytes and convert them into meaningful displays of data.
Synalyze It! provides formatters for common binary types like ICC, PNG, TIFF, WAV, ZIP and dozens more. That alone is useful but, if you’re a programmer creating a custom binary file format, Synalyze It! is priceless.
With Synalyze It!, you can create custom data formatters for your personal binary files. Instead of struggling with cryptic lines of hexadecimal, you can view and label data values as floating point or integer, signed or unsigned, with any byte length. Your files can even modify the formatting, allowing you to create settings on the fly to variably view your data.
If the standard formatting tools are not enough, you can write formatting scripts using Python or Lua. I quickly got ambitious and was soon in over my head exploring Synalyze It!’s features. When I emailed a question to the developer, the technical support was outstanding. I was sent a complete solution to my problem that also served as an advanced Synalyze It! tutorial.
I doubt that I will ever fully exploit the potential of Synalyze It! but the value I’ve received is already many multiples of the price I paid.
For some well-known formats you can download grammars here. Matching grammars are suggested automatically when you open a file.
If you like Synalyze It! consider buying the Pro version in the Mac App Store.
The Pro version has even more useful features.
I just bought the pro version of Synalyze, and I am very glad I did. Thank you for taking the time to bring this excellent tool to life.
I’m the author of an open-source program called SleepyHead, which is used for reviewing CPAP machine data (used in Sleep Apnea treatment), and already I’m wishing I discovered Synalyze a lot sooner, as an awful lot of binary format hacking is involved thanks to the manufacturers not releasing documentation.
I particularly like being able to use expressions in the length fields.. I spent ages looking through the example grammar and scripts only to find I didn’t even need them thanks to this feature. (It pays to read the manual first.. ;)
Keep up the good work!
See it in action:
In case you need a tool specialized in disk editing, I recommend to check out iBored.
2016-08-24: Version 1.17 allows dynamic size of offset elements
2016-08-22: New grammar for FOND resources (thanks, Gabriel!)
2016-08-20: New grammar for Apple bookmark data
2016-08-08: New version with lots of improvements
2016-07-04: New grammar for InnoDB .ibd files (thanks, Ryan!)
2016-07-04: New grammar for ar archive files (thanks, Saleem!)
2016-03-18: Added grammar for SGI images (thanks, Iain!)
2016-02-23: Added grammar for Android boot images (thanks, Jens!)
2016-02-12: Added grammar for GNU Tar files (thanks, Johannes!)
2016-01-25: Added grammar for Tibia .map files (thanks, Mathias!)
2015-12-17: Published version 1.14 with binary comparison (diff) feature
2015-12-06: QuickTime grammar extended
2015-11-11: AAC grammar made by Anton published
2015-10-20: Version 1.13 released with support for 010 Editor binary templates
2015-10-11: Version 1.12 released El Capitan support and some improvements
2015-05-30: Version 1.10 released with several improvements
2015-02-27: Added grammar for Postgres COPY files (thanks, Daniel)
2015-02-06: Added grammar for FileMaker 5.1 files (thanks, Daniel)