HexFiend - A fast and clever open source hex editor for Mac OS X
ridiculousfish.com
ridiculousfish.com
I'm very actively developing Hex Fiend, which is nearing a new release. Some major new features are bookmarks, support for text encodings (including multibyte, though sadly not variable width), support for opening files only readable by root, including device files (after authentication, naturally), and a visual binary diff (a true LCS diff). There's many other miscellaneous improvements and bug fixes, including the longstanding request of preserving the Undo stack after Save, when doing so would not require too much memory.
For those unfamiliar with Hex Fiend, the features that set it apart from other hex editors are:
- Very deep support for large files. Many other hex editors have some support for large files, but it's easy to get into a situation where they consume all your memory, or do some O(n) blocking operation that hangs the UI. Hex Fiend never does either.
- Natural Mac-like editing, including insertion and deletion, smooth scrolling, multiple discontiguous selection, anchored selection, coalesced undo, key bindings, lots more.
- It's provided as a framework which is easy to embed in other apps.
- It's open source with a permissive BSD style license.
Some have asked how Hex Fiend compares to 0xED. Not to pick on anyone, but I'll give some examples that illustrate Hex Fiend's strengths relative to 0xED (and most other hex editors):
1. Open a large file (say 5 GB), overwrite some bytes in the middle, add some bytes to the end, then hit Save. Hex Fiend will appear to save instantly because it makes the changes in-place, while 0xED will require time proportional to the file size as it writes the entire file to disk.
2. Search for some text. 0xED will block the UI until the text is found or the file is exhausted, while Hex Fiend performs the search in the background, including a progress indicator and cancel button.
3. Select everything in the file and choose Edit->Copy. Hex Fiend will do this instantly, while 0xED will require time and space proportional to the file size, as it attempts to read the entire file into memory. Now select all and hit the delete key. Hex Fiend again does this instantly, while 0xED will again try to read the file into memory (to service its Undo stack).
Let me know if you have any questions and I'll be happy to answer them in this thread!
Also, your blog rocks.
I do however, have a few UI niggles you might be interested in hearing. When I jump to an offset, I have the hardest time spotting the cursor. There's that nice brief yellow line flash so I can see what line the cursor is on, which is already a lifesaver, but I just can't spot the little blinking line, the grey on white just doesn't stand out enough I guess. I have to click on the line and basically binary search down to the right offset. Some sort of call out for the quad of bytes containing the cursor as well as the line would be _awesome_.
Also, since I'm mostly looking at scientific data I'm trying to parse, it is _awesome_ to hear that you've added signed floats and integers.
Let me just reiterate, thanks for this app.
(Also, apologies if I'm referring to an old version - I don't know offhand which one I have)
:-)
1) Will it be available on the Mac Appstore? :)
2) You mention that adding some bytes on the end is instant, and so is modifying bytes in the middle. It seems that for most filesystems (and definitely HFS+), it should be possible to insert data in the middle of a file (not really that common in most of my hex editing habits, but maybe for some people?) without incurring much of a cost either. If the inserted data is between extents, then you simply stick a new extent between them, and if it's within an existing extent, you can split it in constant time and do the same thing. Do you know of any Mac OS APIs provide low-enough-level access to do this? Or does it not seem feasible for some other reason?
I also want to know what the two other apps are :)
Unix, works well, has some of the nicest apps out there is my guess.
(I split most of my work between my Mac and Linux)
Is an Intel-only version and an update of the website in the plans somewhere?
The thing that sets Burp apart from (say) Tamper Data in Firefox is the fuzzer (Burp calls it the "intruder"). The free OWASP WebScarab also has a fuzzer, but it's not as good.
http://www.google.com/search?q=site:news.ycombinator.com+rid...
:-)
And couldn't help but notice in the results: