[HN Gopher] ImHex - A Hex Editor
       ___________________________________________________________________
        
       ImHex - A Hex Editor
        
       Author : liberia
       Score  : 251 points
       Date   : 2022-07-30 16:13 UTC (6 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | bogwog wrote:
       | ImHex is great, especially the pattern editor. Very useful for
       | debugging custom binary formats besides just reverse engineering.
        
       | WerWolv wrote:
       | Thanks a lot for the love! If you have any feature requests, face
       | any problems or have any questions, please open an issue on my
       | GitHub page and I'll make sure to look into it as soon as
       | possible. There's also a Discord server linked at the top of the
       | Readme
        
       | [deleted]
        
       | xvilka wrote:
       | I wish they used Rizin[1] as a library to get the advantage of
       | using mature analysis in addition to the simple disassembly, more
       | architectures and formats, debugging, and decompilation plugins.
       | 
       | [1] https://github.com/rizinorg/rizin
        
         | mdaniel wrote:
         | > Rizin is a fork of the radare2 reverse engineering framework
         | with a focus on usability, working features and code
         | cleanliness.
         | 
         | Interesting; is there some backstory I could read about that? I
         | mean, the "code cleaniness" I bet is subjective, but I somehow
         | thought radare2 was still under development
        
       | harles wrote:
       | Hex editors are a seriously undervalued learning tool. As a kid,
       | I loved opening up the game files of stuff I was playing and see
       | what I could tweak.
       | 
       | I'm not sure this particular editor could replace HxD for me -
       | I'm not seeing process memory editing in its list of features.
       | I'm glad to see the space is still getting love though.
        
         | ColonelPhantom wrote:
         | I just installed ImHex, and I saw an option to attach to a GDB
         | server. I assume that implies memory editing capabilities, but
         | I haven't tried it yet.
         | 
         | I also don't know how the situation would be on non-GNU
         | platforms, although I think GDB is a thing on Windows with
         | MinGW?
        
         | truncate wrote:
         | So true! That was my introduction to binary format and
         | serialization as a kid, probably didn't even knew what these
         | words were back then. Or, when something crashed I think there
         | used to be button -- "Debug" an it would open up Visual/Windows
         | Debugger with assembly filling up the screen.
        
         | misnome wrote:
         | As a kid, my eyes were opened to this stuff by wotsit.org -
         | when I realised I could start decoding the internals of my
         | games!
        
         | Pakdef wrote:
         | As a kids I used to edit mIRC's ctcp version reply with an hex
         | editor.... Probably 25 years ago
        
         | sedatk wrote:
         | As a long time HxD user, I had no idea that it had process
         | memory editing capabilities.
        
       | xerxesaa wrote:
       | Looks incredible. It's rare to see such a full featured open
       | source replacement for an existing tool. Thank you.
        
       | misnome wrote:
       | Do all ImGui apps have text rendering this bad? I'm having
       | trouble smoothly reading... any of the text, at least on Mac. It
       | has a settings box, which allows you to change font size (but
       | appears to do nothing), and a scaling option which ... just seems
       | to make the artifacts bigger.
       | 
       | Switching to dark mode (by default it matched the system) made it
       | slightly better just by virtue of having more contrast (and all
       | the setting boxes actually have different coloured backgrounds
       | that means you can tell where one ends and the other begins).
       | 
       | It would be nice to find a good replacement for 010.
        
         | linker3000 wrote:
         | I was going to ask this. As someone with fine-detail vision
         | issues, I found the font rendering uncomfortable.
         | 
         | Also, you can exit the app without any warning to save your
         | work. I submitted this as a feature request.
        
         | [deleted]
        
         | WerWolv wrote:
         | By default it uses a pixel-perfect font (the one that's
         | included in ImGui) so anti-aliasing will not do anything but
         | make text look blurry.
         | 
         | If you don't like the default font, it's super easy to change
         | it though. Just go into the settings and under Font select your
         | .ttf Font file
        
           | pksjoas wrote:
           | What do you mean by a pixel-perfect font? A bitmap font?
           | Seems a very odd choice for the current era of high
           | resolution screens.
        
         | nebulous1 wrote:
         | Do you have the same issue with the screenshots?
        
           | dataflow wrote:
           | The screenshots are so jarring to read. Zero anti-aliasing?
        
             | blocko wrote:
             | Looks maybe like the opposite, there's way too much
             | smoothing. I don't mind pixel perfect fonts or even aliased
             | text but these just look like an aggressive blur was
             | applied to everything
        
           | capableweb wrote:
           | If you're referring to the images from the README under the
           | title "Screenshots" (currently https://user-
           | images.githubusercontent.com/10835354/139717326... and
           | https://user-
           | images.githubusercontent.com/10835354/139717323...) then
           | yeah, that text rendering is pretty bad.
        
           | misnome wrote:
           | Yes, the screenshots are excusable initially because they
           | just look like the images have just been shrunk.
           | 
           | But that's just an accurate reproduction of how it looks at
           | full size!
        
         | thrdbndndn wrote:
         | Yeah, and ironically it says "[for] people who value their
         | retinas"..
        
         | Comevius wrote:
         | The default ImGui rasterizer (imstb_truetype) is rubbish. The
         | new rasterizer (imgui_freetype) should be used instead.
         | 
         | https://github.com/ocornut/imgui/tree/master/misc/freetype
        
         | boardwaalk wrote:
         | I think there's something off with the render scaling, because
         | the pixels are enormous even when I set it to a non-fixed sized
         | font (Monaco). I had to set 2x scaling and then it looked
         | better but only because the text was enormous.
         | 
         | I recall this being something you had to pay attention to with
         | imgui/glfw -- probably just needs a small tweak.
        
       | Bigpet wrote:
       | Oh, looks neat. I've been looking for a cross-platform hex editor
       | for simple editing (wxmedit kind of sucks on macos and had issues
       | for a while now).
       | 
       | This seems to have some very powerful features, but sadly doesn't
       | support trivial editing stuff. Like when you have a simple text
       | file and need to do some light unicode or other encoding fixups.
       | 
       | Like "delete/remove selection" or "type in ascii replacements for
       | these bytes one after the other".
       | 
       | But I mean it's open source, so if I somehow find the time I
       | might add those.
        
       | matrix_overload wrote:
       | From Github:
       | 
       | > 16K stars, 755 forks, 52 open, 354 closed issues
       | 
       | From the linked Patreon page:
       | 
       | > 7 patrons, CA$36/month
       | 
       | > Next goal: CA$76.88 per month - I can pay all my monthly bills
       | 
       | This is why the open-source software is sad. The author will keep
       | burning through his youthful energy in return for some words of
       | appreciation (but much more issues and demands), and will at best
       | quietly give up at some moment, or at worst freak out and have
       | his colors/faker moment [0].
       | 
       | At the same time, products like this create the expectations that
       | some types of software should be free (i.e. subsidized by the
       | author's willingness to not have a life) and make it 10x harder
       | for people like the author to turn their work into a revenue-
       | generating business.
       | 
       | That said, if you have 16K stars on Github, you absolutely do
       | have enough userbase to sell a paid premium edition and
       | eventually grow it into your main job.
       | 
       | [0] https://news.ycombinator.com/item?id=29863672
        
         | [deleted]
        
           | [deleted]
        
       | canistel wrote:
       | The AppImage is 79MB. Are Appimages usually this huge, even for
       | immediate mode GUI apps?
        
       | painchoc wrote:
       | I have no idea how to use ImHex.
        
       | fortyseven wrote:
       | This might have been a daily driver if whatever UI library being
       | used wasn't so quirky and unfriendly. Oh well. Looks "leet" or
       | whatever, which is obviously more important.
        
         | leogout wrote:
         | It looks like imgui, a declarative UI library optimized to be
         | rendered by the GPU : https://github.com/ocornut/imgui
        
       | kronks wrote:
       | Referring to the title: Is a hex editor useful for literally
       | anybody else?
       | 
       | As a reverser it does seem amazing!
        
         | jjoonathan wrote:
         | How else are you supposed to debug misbehaving byte order
         | markers and emojis and other UT[?]F [?]blac[?]k
         | [?]m[?]a[?]g[?]i[?]c in your "plain text"?
        
           | 3np wrote:
           | Don't forget zero-width whitespace and RTL...
           | 
           | vim does support it, but I guess that makes it a hex editor,
           | too.
           | 
           | https://vi.stackexchange.com/questions/343/how-to-edit-
           | binar...
        
           | [deleted]
        
         | [deleted]
        
         | TheRealPomax wrote:
         | If you're writing tools that generate spec-based binary files,
         | you need a debugger that lets you examine generated files at
         | the binary level. For instance, I don't think you can do any
         | OpenType font tool engineering (as in, working on applications
         | that generate fonts) without having a good hex editor to check
         | whether the binary internals of your files are structured
         | correctly.
        
         | dazzawazza wrote:
         | I work in videogames and we often use custom binary file
         | formats, a HEX editor is very useful because, as an industry,
         | we don't document anything and the code is often a car crash :)
        
         | GuB-42 wrote:
         | At work, I sometimes have to encode or decode binary data, to
         | which I have full specs, and a hex editor is an extremely
         | valuable tool.
         | 
         | A hex editor is to binary data what a debugger is to code, a
         | packet analyzer is to networking, and an oscilloscope is to
         | electronics. These tools can be used for reverse engineering,
         | but it is certainly not their only purpose.
        
           | qorrect wrote:
           | What tool do you use now ?
        
             | GuB-42 wrote:
             | 010 Editor (commercial). But I may give ImHex a try.
        
         | Karliss wrote:
         | What title are you referring to? I am guessing that title got
         | edited and initially used partial header from github page "A
         | Hex Editor for Reverse Engineers" cutting of second part
         | "Programmers and people who value their retinas when working at
         | 3 AM".
         | 
         | Hex editor can also be very useful for programmers when working
         | with binary file formats. Implementing support for image and
         | archive formats. Testing that your code outputs the thing you
         | expected it to output or inspecting a file which your program
         | fails to process because some other program included some
         | unexpected option fields or something like that. It's sometimes
         | even useful even when working with text fails, typically
         | because they included some invisible symbols which you didn't
         | expect or differentiating between similar looking unicode
         | symbols.
        
         | laumars wrote:
         | I don't work with binary files much these days but I still use
         | hex editors a lot just to debug any weird rendering glitches in
         | terminal emulators. The ability to see the exact character
         | codes being generated rather than the terminal emulators
         | interpretation of them is invaluable. Though for that purpose
         | hexdump is usually sufficient.
         | 
         | Back in the 90s, when I was working with binary data regularly,
         | I'd have killed for something like ImHex.
        
       | weinzierl wrote:
       | This is a potential modern replacement for the 010 editor[1],
       | which is kind of the standard hex editor for reverse engineering.
       | 
       | 010 is great but also a bit dated[2] and clunky. I thought
       | numerous times that a modern rewrite could be a nice project to
       | work on. I'm happy that others tackled it! Kudos to the team.
       | 
       | One super cool feature would be if ImHex could read the 010
       | templates, but I'm not sure if that is legally OK. I'm not even
       | sure if it would be morally OK, because I guess just as much work
       | has gone into them as into the actual editor.
       | 
       | [1] https://www.sweetscape.com/
       | 
       | [2] It is actively maintained but looks old tech.
        
         | bitexploder wrote:
         | I like Oketa as well. Oketa, ImHex and HexFiend are all nice
         | tools. Some folks swear by the radare suite as well. ImHex has
         | the most features for fiddling with data structures and such.
        
           | mkl wrote:
           | *Okteta, like "octet" (= byte): https://apps.kde.org/okteta/
        
       | dang wrote:
       | Related:
       | 
       |  _ImHex - A Hex Editor_ -
       | https://news.ycombinator.com/item?id=25353965 - Dec 2020 (78
       | comments)
        
       | KingOfCoders wrote:
       | Ah my first assembler program was a Z80 hex editor <3
        
       | game-of-throws wrote:
       | Made with Dear ImGui. I'd recognize that font/style anywhere.
        
       | qorrect wrote:
       | This looks way better than hex-mode.
        
       ___________________________________________________________________
       (page generated 2022-07-30 23:00 UTC)