News:

11 March 2016 - Forum Rules

Main Menu

Hex Editors - Opinions Please

Started by SunGodPortal, January 30, 2015, 06:41:59 PM

Previous topic - Next topic

SunGodPortal

Once I decided to start playing around with hex I downloaded the copy of Cygnus in the utilities section. It seems nice enough but I can't find a "compare" function. It probably doesn't have one I guess.

So anyway, what are a few hex editors that some of you prefer? And if you don't mind, tell what you like about it/them.
Cigarettes, ice-cream, figurines of the Virgin Mary...

Dr. Floppy

Translhextion pwns the scene! Only real blind spots it has is searching for strings containing "00" bytes. And if you're moving around large chunks of data (> 16 kB), it's almost guaranteed to crash after the second process.

That said, it's very user-friendly and customizable. (I find a black background with red/cyan byte data to be most pleasing to the eye.)

chillyfeez

I actually like Cygnus a lot for its MS Office feel.
The free version doesn't seem to support tables, as fast as I can tell, though, so I use Hexpose for text editing (not that I think Hexpose is the best, but simple tool for simple function).
Ongoing project: "Final Fantasy IV: A Threat From Within"

Latest Demo

FAST6191

I did a hex editor shootout a couple of years ago and it came down to three main things

1) Commercial editors

2) Freeware editors

3) ROM hacking hex editors.

If you can do all three then great, you will however want the ROM hacking ones and if you go free then you will have to mix and match things to get the functionality seen in the commercial editors. ROM hacking is pretty much still a Windows only game so mac, ?BSD and linux fans will have to get a VM or dual boot really (you might get wine working but then comes all the other editors). However I do see 010 Editor spawned a linux and a mac version so you might get lucky. Edit. I may have to revise my statement, update for 2015 in some cases as http://alternativeto.net/software/010-editor/ is giving me some ideas and it looks like I might have to have a look at http://www.catch22.net/software/hexedit [/edit]

The editors in question

For 1)
Hex Workshop
http://www.hexworkshop.com/
010 editor
http://www.sweetscape.com/010editor/

Both are fine editors, chances are any shots you see around here from me are of hex workshop. 010 is good and feature wise pretty comparable but I was spoiled by hex workshop. The only other one I would really put up there with them is http://www.x-ways.net/winhex/ (do not confuse it with the ROM hacking editor known as windhex) but it lacked some of the features I would have wanted as a ROM hacker. If I were to start digging around hard drives, RAM and other such things then it is fantastic. Most commercial hex editors are pretty awful really.

For 2)
You want three of them, possibly four. Being tiny and free it is not so bad though. I tried a lot of commercial editors and these would wipe the floor with most of them save for the ones above. Most of them have not really been updated in years which is unfortunate, however a hex editor is a hex editor and all these should do fine with files you are likely to encounter in hacking.
HxD
http://mh-nexus.de/en/hxd/
XVI32
http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm
Hexplorer
http://sourceforge.net/projects/hexplorer/
Tiny Hexer
http://www.softpedia.com/get/Others/Miscellaneous/tiny-hexer.shtml
The main site went years ago so I linked it above, if softpedia is something you can not punch into shape there should be various other rehostings elsewhere. Edit. http://www.romhacking.net/utilities/1051/ apparently it is here now.

HxD is basic but if I am sitting there on site somewhere and find that there is no hex editor then you can bet that will be my first port of call. XVI32 is only there because it has a fairly potent scripting language in it which beats most other things I see, even up in the commercial world.
Hexplorer, change the UI as your first job and it only does one file at a time but it does have some very nice features you can play with.
Tiny Hexer is a great little program, it has many features like compare, distribution, find strings and more that you would find in the commercial editors.
Between the four you can get some very respectable hex editor action going on. It is not going to be all in one program though.

3) The only thing you really want these for is table support. You can kind of crowbar in custom encodings to various editors listed above but if you are going to want to read, edit and export with some of the fancier options afforded by tables then you need a ROM hacking hex editor. Many of these editors lack in some feature or another, even basic stuff like undo and unlimited cut and paste. In my search I never found a non hacking editor that could handle dual/multi tile encoding or was easy to enter multiple characters in a table for -- it was always one to one encoding and decoding and generally a pain to make/edit tables in (not to mention not supporting .tbl).

Crystaltile2
http://www.romhacking.net/utilities/818/
Not quite as nice as some others here and does not play well with some table formats (usually encoding or something simple like end of file not having a blank, or having a blank or something like that) but it has custom tables, it has shiftJIS as a standard encoding it can select (slightly more common now but a true rarity back when) and it has some serious script searching abilities (it has 24 bit relative search for instance). On top of that it is probably one of the better tile editors out there if you can make it work for you.

Translhextion
http://www.romhacking.net/utilities/219/
Goldfinger
http://www.romhacking.net/utilities/204/
Windhex32
http://www.romhacking.net/utilities/291/

Other than Crystaltile2 they are all much of a muchness, pick whichever one you can get along with. Translhextion works best for me.

I did try a few programming text editors that also sported a hex editing capability, most were better than nothing and probably better than some of the stuff people tried to sell but did not beat the standalone program. Exception, if it really can be called that, would be for IDA's hex editing capabilities but even then it is only going to be the disassembler integration that helps.

Zoinkity

It's a rather special-case editor, but Hex Edit is a somewhat older, now freeware hex editor with a few features not usually found in freebie ones.

Most important is binary searches using a mask.  You can control the number of bytes advanced each iteration and mask away bits you don't want to compare.  That's helpful when looking for a bit of ASM when you want to ignore an immediate or something. 

Highly customizable, templates, bitwise and bytewise operations on 1, 2, 4, and 8 byte ints, byteswapping, and supports macros.  Since it logs each step for the undo feature you won't want to do a million iterations at once, but that said you can do progressive operations using the calculator.  That can be handy if you changed the size of one value, need to update subsequent table entries, but those entries need to be aligned to a certain address.

It does have flaws.  For instance, file navigation isn't super-friendly and copied data is not converted to text automatically.  Block copy/paste is probably faster in something like HxD.  If you just need to do something simple you won't need this, but it easily has the best search features you'll find in a free tool.

puzzledude


Gi Nattak

I use Windhex because I'm oldschool like that. Really though it is super user-friendly and I've found no reason to change to another.

HxD is a great one though, and it is capable of copy and pasting in bytes which can be very useful, instead of having to dump and insert.

MaxMouse

Hex Workshop proved to be the most functional and user friendly to me. It also comes with a satisfying amount of features that are always lacking in one editor or another. But since good things are rarely for free, HW isn't freeware and if this is what you're aiming for, I'd say HxD is a good choice.
Still, you'll probably need other editors for rom hacking, such as Windhex, which I use for tables.
One simply cannot defy that which was concealed by silence. - Mm~

Tirlititi

When I was under Linux, I used Hex Edit because it was simple and wine-compatible.
Now, I'm using HHD Hex Editor Neo (free version) mainly because its interface is neat and it is fast. It lacks a bunch of features though in its free version...

I should really try others ^^

One question : sometimes, I would like to make a search with holes in it. For example, I know the the attack bonus of 3 weapons (let's say 5, 10 and 20), I know they are sorted in this order and I suspect the weapons data to be of a constant-size.
So, a search with holes in it would be 'Search( 5, [eventually something], 10, [eventually something of the same size], 20 )'. The "something" is filled with other weapon datas (its sprite ID, who can use it...).
A kind of regexp search, but a binary one.

I didn't find that feature in hex editors I tried. I had to code an hex viewer myself to do so. Do you know one?
Quote from: UnmonThis staff of mine has transformed itself into a dragon and has swallowed up the universe! Oh, where are the rivers and mountains and the great earth?

Grimoire LD

Quote from: Tirlititi on February 22, 2015, 06:06:39 AM
When I was under Linux, I used Hex Edit because it was simple and wine-compatible.
Now, I'm using HHD Hex Editor Neo (free version) mainly because its interface is neat and it is fast. It lacks a bunch of features though in its free version...

I should really try others ^^

One question : sometimes, I would like to make a search with holes in it. For example, I know the the attack bonus of 3 weapons (let's say 5, 10 and 20), I know they are sorted in this order and I suspect the weapons data to be of a constant-size.
So, a search with holes in it would be 'Search( 5, [eventually something], 10, [eventually something of the same size], 20 )'. The "something" is filled with other weapon datas (its sprite ID, who can use it...).
A kind of regexp search, but a binary one.

I didn't find that feature in hex editors I tried. I had to code an hex viewer myself to do so. Do you know one?

It sounds like what you would need are Wildcards, which a lot of hex editors have in my experience. For this case you would use FF as the Wildcard and put in... 05FFFFFFFF10FFFFFFFF15FFFFFFFF and your search should bring you to your desired weapons.

February 22, 2015, 11:54:22 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

Quote from: Tirlititi on February 22, 2015, 06:06:39 AM
When I was under Linux, I used Hex Edit because it was simple and wine-compatible.
Now, I'm using HHD Hex Editor Neo (free version) mainly because its interface is neat and it is fast. It lacks a bunch of features though in its free version...

I should really try others ^^

One question : sometimes, I would like to make a search with holes in it. For example, I know the the attack bonus of 3 weapons (let's say 5, 10 and 20), I know they are sorted in this order and I suspect the weapons data to be of a constant-size.
So, a search with holes in it would be 'Search( 5, [eventually something], 10, [eventually something of the same size], 20 )'. The "something" is filled with other weapon datas (its sprite ID, who can use it...).
A kind of regexp search, but a binary one.

I didn't find that feature in hex editors I tried. I had to code an hex viewer myself to do so. Do you know one?

It sounds like what you would need are Wildcards, which a lot of hex editors have in my experience. For this case you could use FF as the Wildcard and put in... 05FFFFFFFF10FFFFFFFF15FFFFFFFF and your search should bring you to your theoretical table.

tryphon

He doesn't know the size between the relevant values. I don't know if wildcards handle that (I personnally use a python script when the search is a little tricky, typically this sort of things).

February 22, 2015, 03:52:20 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

He doesn't know the size between the relevant values. I don't know if wildcards handle that (I personnally use a python script when the search is a little tricky, typically this sort of things).

Azkadellia

I myself use MadEdit. Doesn't support table files though, but it has a lot if encodings built into it. Plus, it's multi-platform.
Current Projects: On hold indefinitely.
I do the Twitter thing now: https://twitter.com/MistressSaeko (expect lots of game streaming announcements)
Mistress of the RHDN Discord server.

Tirlititi

Quote from: tryphon on February 22, 2015, 03:51:38 PM
He doesn't know the size between the relevant values. I don't know if wildcards handle that (I personnally use a python script when the search is a little tricky, typically this sort of things).
Indeed, that's a part of the point ^^
That's why I talked about regexp, because the situation can be very specific (the example I gave is not something I'm struggling about right now but I encountered situations like this before). So it's better to have a good amount of possibilities.

I must be blind but I never saw wildcard features in hex editor. Maybe I've just only used poor hex editors... Thanks for the answers !
Quote from: UnmonThis staff of mine has transformed itself into a dragon and has swallowed up the universe! Oh, where are the rivers and mountains and the great earth?

Gideon Zhi

I generally use windhex32 most of the time. As has already been stated, it's simple and gets the job done. It also has wildcard support (though no regex).

For any copy/paste/insert operation or file compares I use Hex Workshop, but otherwise it's windhex32 all the way.

BlackDog61

#14
(Sorry for necro-posting, but I thought it would be better than to create a new topic around the same need.)
I took time reviewing RHDN's offer for hex editors. Mostly because I got frustrated with windhex. Here's a review from me, based on my needs: the support of Japanese-to-English translations, with the need to run on windows 7. I didn't feel like I'd do justice to the editors which review I cut short because of my specific needs, so I'm not planning to post this on their RHDN pages. Also, sorry for those who think these are snappy judgements; like I said - this is especially tailored for my needs and could not reflect the whole feature set of these programs.

I'd love to hear similar details for editors not listed here; especially those with shared source code.

Hex editors quick use review:
- Cygnus Hex Editor:
   . uses an installer. (I prefer portable versions)
   . supports windows - good
   . doesn't follow links in the open window (so you can't use Explorer's recent locations)
   . supports multi-file edit & split window (but you can't open them in a single open operation)
   . no comparison feature (would be great since multiple file open is supported)
   . no table support => this is my decision maker. NEXT!
- DataWorkshop-v1.1.1-open-source:
   . no executable from the get-go, you have to have ant install and then you can compile.
    => this is my decision maker. ON HOLD (might be interested in source code, but hope for more supported project)
- DirectHex:
   . Won't launch. NEXT.
- Direct32:
   . Won't launch. NEXT.
- GoldFinger:
   . Runs!
   . Table support (warning: doesn't support SJIS nor UTF8 encoding) => I cannot use it
   . Hex presented by default using "#" (I assume you have to load a table to see anything) - I really liked WindHex's loading an ASCII table by default.
   . Font size for hex is extremely small => this is my decision maker. NEXT!
- Hexecute 3-10:
   . comes with source - yay!
   . one file at a time only
   . bugged display refresh when you alt-tab or click around => this is my decision maker. NEXT!
   . Supports UTF8 tables (didn't check the result, but does display kanji) - warning, change options->text codepage->unicode to see anything.
   . doesn't show any text by default - encoding has to be set to see ASCII.
- Hexedit-0.9.7:
   . comes with source - yay!
   . doesn't come with executable and requires make "linux style" with configure and such => this is my decision maker. ON HOLD
- HEXPOSEv3_666:
   . comes with source - yay! Err - wait! Actually, these are Pascal. Hem. Yaysh?
   . Won't launch. NEXT.
- HexTraImp:
   . Java command line => no user interface => NEXT.
- Jinx:
   . I thought I wouldn't mind a DOS editor because, y'know, retro site & retro gaming,so I don't fear the reaper. Well, I've changed my mind: I've got mice genes now. Sorry. Squeak. NEXT.
- Tiny Hexer:
   . "If you do not agree with the license you have to destroy the package." LOL
   . can compare files
   . shows statistics of bytes values in file.
   . seems to offer quite some customization (user interface, plugins, scripts)
   . supports tables (a bit entrenched in the menus: options->plug-in settings->custom character translation table. Then click the open icon and select your table. Then OK to close that window. Don't forget view->character translation->custom)
   . Problem: it uses those tables to/from "windows codepage" i.e.extended ASCII, so no SJIS or UTF8.
   => this is my decision maker. Too bad it; really looked nice. NEXT!
- NESWrite 2.10:
   . I know, I'm not going to go NES, so why do I even try? 'Cause it should still have what I need, mind you. Except...
   . Won't launch. NEXT.
- Nightmare2:
   . includes sources - Yay!
   . Java distributed, without an executable. Humph. So... launch from "dist", the jar file.
   . OK so I "select file", I guess...? Nothing happens...
   . Ah, the "open module" thingy, it has to be it.
   . Err, seriously, I don't get it and the readme talks about java stuff, which is irrelevant as, being a user, I want to hex stuff. Oh and there's a doc folder which contains...I guess advanced examples. But I can't open a file, y'know?
   => this is my decision maker. NEXT!
- SNES-Edit V0.95:
   . Wait it looks like a dos window inside a window... Okay...
   . But it catches my mouse to select the language. Alright, alright!
   . and then the mouse does nothing. I see the "file" menu. I click. I Alt-F. I F10 then F. then click.
   . I know they say you gotta read the readme, but if I can't open a file, this is gonna be a pain through and through.
   (Alt-X doesn't even  react to exit anymore. I know, I know: it's probably my own fault. Nothing the Task Manager can't handle, though.)
   => this is my decision maker. NEXT!
- Thingy32:
   . Supports tables... but not Japanese characters. => this is my decision maker. NEXT!
   . Very basic interface, even though has an interface with most functions.
   . Very hard to read HEX text (no spacing). Maybe there's an option somewhere, I don't know.
- Translhextion: (good contender, looking for extras compared to my current editor)
   . seems to have interesting hex manipulation features (bits even)
   . Crashed when I selected "thingy view" for the table - though I don't know why I would?
   . supports tables. But I haven't found how to display Japanese characters from my table,'cause the only characters encodings supported are ASCII and OEM (which is explained in the help - thanks for letting me know about OEM)
   . Ah wait, the help says it can only display them in ThingyView mode. And it didn't crash the second time I tried to tick it - now I can see Japanese!
   . You can dump binary, and you can copy-paste the interpreted characters... except their encoding isn't applied before copy. So you have to re-encode text in SJIS, for instance. Well, better than no copy.
   . Mouse response on the editor's hex window isn't perfect.
      . Quite a few times (>40% for me, at times>60%) you click but the text cursor doesn't move.
      . When the text cursor is in the hex, no highlight is given to the table-interpreted view, unless you select (click & drag).
      . Clicking on the text view seems to have random effects. I'm not able to select the character under the mouse with that view; most of the time, a line below is clicked, and sometimes I click towards the right end of the line but a close-to-the-left character is selected.
   . search offers a find with table, but Japanese characters don't get pasted correctly there when I copy from a text editor
   . Nice colors alternating on the hex view
- Ultimate Hacking Rom dev4:
   . won't install (missing file). NEXT.
- XLate:
   . Won't launch. NEXT.

... And what I've been using for some time:
- Windhex:
   . supports tables with SJIS & UTF8 (even though you have to build them ;)
   . applies ASCII table by default
   . can dump / insert binary
   . doesn't handle copy-paste on the text side very well
   . doesn't let the mouse select a portion of the file
   . clunky user interface for anything related to files (open/save/load table/dump/insert)
   . not exactly wonderful color scheme
   . doesn't search for Japanese correctly (but searches hex and ASCII OK)
   . doesn't offer structures interpretation
   . opens only one file
   . proposes to compare files, but only spouts a list of offsets/sizes as the result (not a winmerge-like navigation through them with both files visible)
   . width expand works for small sizes, but starts misbehaving around 30-byte wide.
   . no scrolling wheel support on the mouse

SunGodPortal

Very interesting read BlackDog. I had almost forgotten about this thread.

I generally use HxD. You can have multiple files open, it can file compare, etc. It has pretty much everything I've needed so far except for table support. When I need to use tables and SJIS for translating I use Windhex32.
Cigarettes, ice-cream, figurines of the Virgin Mary...

Chaos Rush

For quick byte changes I use GoldFinger, since it's pretty barebones and loads up very fast, getting the job done quick. For more advanced stuff like file-comparing, I use HxD.
Twitter: https://twitter.com/jmatz1995
Discord for my indie game: https://t.co/xiU0UodNta

NoOneee

#17
I normally use HexEdit 4.0 from hexedit.com. It has some nice features (but no table support), a nice calculator with support for variables, and it's open-source. It is unfortunately abandoned. I don't know why it isn't widely used.

Edit: Well, I thought it was abandoned, but it turns out the project is still active at https://github.com/AndrewWPhillips/HexEdit.
It seems we might have a 5.0 version soon.