Thursday, November 13, 2008

A binary/hex file editor that helps you actually understand the binary file (Think formatted, template driven, hex file editor on steroids) – 010 Editor

010 Editor

“010 Editor is a professional-grade text editor and hex editor designed to quickly and easily edit any file or drive on your computer. Combining an easy-to-use interface with a whole range of editing tools, 010 Editor is a valuable tool for anyone working with text or binary files.

  • View and edit any binary file on your hard drive (unlimited file size) and text files including Unicode files, C/C++ source code, etc.
  • Unique Binary Templates technology allows you to understand any binary file format.
  • Find and fix problems with hard drives, floppy drives, memory keys, flash drives, CD-ROMs, processes, etc.
  • Analyze and edit binary data with powerful tools including Find, Replace, Find in Files, Binary Comparisons, Checksum/Hash Algorithms, Histograms, etc.
  • Powerful scripting engine allows automation of many tasks (language is very similar to C).
  • Import and export your binary data in a number of different formats.

Binary Templates - The Power Behind 010 Editor

One of the most powerful features of 010 Editor is the ability to parse virtually any binary file using a Binary Template. Instead of browsing through a long range of hex bytes as with traditional hex editors, Binary Templates allow a file to be understood. Templates are easy to write and can be used to completely parse any data format, such as BMP or ZIP files (Templates for reading these files are included with 010 Editor).

A Binary Template looks similar to a C/C++ structure, but is actually run as a program. Every time a variable is declared in a Template, that variable is mapped to a set of hex bytes in a file. Data in the file can then be read or written by modifying the variable. Because the Template is run as a program, if, for, or while statements as well as functions or complex expressions can be used. When a Template is run, the defined variables can be edited using the Template Results, as shown on the left. New Templates can be added to 010 Editor and can even be configured to run automatically when a file is loaded. For more information on Binary Templates see the Binary Templates page.

010EdTemplate3

…”

010 Editor - 010 Editor - Binary Template Archive

“This page contains a repository of Binary Templates for use with 010 Editor. Please feel free to submit any templates you have that may be useful to other people. For more information on templates, see the Binary Templates page. Please review the terms and conditions for using this archive.

image

…”

While not free, though there is a free 30 day trial version, this reasonably priced utility seems officially cool. It’s not the hex editing, but the templating that I find so cool. It adds an additional information layer on top of the raw data you usually see in a hex editor. Best of all, is that the templates are independent of the program. So you can write your own binary file templates.

How often have you written a “viewer/dumper/etc” for some sort of binary file just so you could spelunk its data? Yeah, me too… Now, with this utility, we can just focus on the file format and ignore the UI goo.

A co-worker pointed this out to me as something cool and I had to agree (how cool is that, that some of my co-workers are stumping for the Cool Thing of the Day?… Thanks Jim. ;)

3 comments:

Anonymous said...

You're welcome.

One of the unique features I like about 010 Editor is the byte histogram. I've been using my trusty little byte frequency utility misnamed 'charcnt' (it should be named bytecnt) for at least 13 years, but it just generates a 256-row list of bytes. It doesn't display a nifty histogram. (It's the only generally useful program I ever wrote in C.)

Joe Crawford said...

You're not the only one with Hex on the brain, Jim Bumgardner recently posted this article http://www.krazydad.com/fieldguidetofiles.php

Anonymous said...

There's also an editor called AptEdit which has a similar binary templates option. It doesn't support conditions or scripting, but is otherwise quite good. And the application price is less steep.