wxHexEditor: wx-based Hex Editor!

Miscellaneous tools
Message
Author
muggins
Posts: 6724
Joined: Fri 20 Jan 2006, 10:44
Location: hobart

wxHexEditor: wx-based Hex Editor!

#1 Post by muggins »

http://wxhexeditor.sourceforge.net/

Made latest beta into sfs. Only tested on Pemasu's raring.

Run via Menu>Utility>General>wxHexEditor.

Uploaded to wxHexEditor-0.22b.sfs
Attachments
wxhexeditor.png
(56.8 KiB) Downloaded 2278 times
Last edited by muggins on Fri 17 Jan 2014, 21:51, edited 3 times in total.

User avatar
Makoto
Posts: 1665
Joined: Fri 04 Sep 2009, 01:30
Location: Out wandering... maybe.

#2 Post by Makoto »

Interesting. I've been looking for a decent Linux hex editor, to replace the Windows one I've been using through Wine. This looks like it's developing fairly well, though I'd have to wonder if there will be an option to change how the cursor offset is displayed - I'm too used to the 0x0000 format. :P (Well, that and I have a lot of notes written with the locations in that format... :oops: )
[ Puppy 4.3.1 JP, Frugal install ] * [ XenialPup 7.5, Frugal install ] * [XenialPup 64 7.5, Frugal install] * [ 4GB RAM | 512MB swap ]
In memory of our beloved American Eskimo puppy (1995-2010) and black Lab puppy (1997-2011).

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#3 Post by disciple »

I really like wxHexEditor, although I haven't updated from svn for a few months ;)
If anyone wants to learn c++/wx, there are still some features that need implementing and would probably be good to learn on, and the author is really keen for help (he offered me commit rights without me even asking for them, after I posted a patch for a really basic workaround :)).

The main point in this project is that it can handle large files as it doesn't load the whole file into ram. There is one other (IIRC QT based?) project that the author of this mustn't have noticed though :)
though I'd have to wonder if there will be an option to change how the cursor offset is displayed - I'm too used to the 0x0000 format.
I presume the problem is not just that you haven't noticed you can change between hex and binary offset display by clicking in the offset display area?
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

User avatar
Makoto
Posts: 1665
Joined: Fri 04 Sep 2009, 01:30
Location: Out wandering... maybe.

#4 Post by Makoto »

Bah. I can't be expected to click everywhere, now, can I? :P

Yeah, I hadn't noticed that. Thanks. Looks like I can remove my Wined hex editor, after all. :) Now, all I have to do is hope there will be a byte-compare feature in the future. :oops:
[ Puppy 4.3.1 JP, Frugal install ] * [ XenialPup 7.5, Frugal install ] * [XenialPup 64 7.5, Frugal install] * [ 4GB RAM | 512MB swap ]
In memory of our beloved American Eskimo puppy (1995-2010) and black Lab puppy (1997-2011).

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#5 Post by disciple »

Well, I think he's started implementing what you want (not complete yet though):
Revision 204 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 19 06:11:56 2011 UTC (2 days, 19 hours ago) by erdem_ua
File length: 41178 byte(s)
Diff to previous 201

Added File Compare dialog GUI and main core code.
Fixed multiple assertions on menu enable codes.
Removed "(Alpha)" keyword on right click menus.
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#6 Post by disciple »

Makoto wrote:Bah. I can't be expected to click everywhere, now, can I? :P
Do you think it would be better if it was switched by a right-click rather than a left-click?
Personally I'd like to be able to select in the offset pane with the left button...
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

User avatar
Makoto
Posts: 1665
Joined: Fri 04 Sep 2009, 01:30
Location: Out wandering... maybe.

#7 Post by Makoto »

disciple wrote:Do you think it would be better if it was switched by a right-click rather than a left-click?
Personally I'd like to be able to select in the offset pane with the left button...
Possibly. I can imagine accidentally clicking in that pane and not realizing it. :D It might be nice if there was a column header bar you could click on instead, to swap it between the view methods (like you would change between field sort methods in a file explorer), I don't know.
[ Puppy 4.3.1 JP, Frugal install ] * [ XenialPup 7.5, Frugal install ] * [XenialPup 64 7.5, Frugal install] * [ 4GB RAM | 512MB swap ]
In memory of our beloved American Eskimo puppy (1995-2010) and black Lab puppy (1997-2011).

User avatar
eua
Posts: 10
Joined: Wed 18 May 2011, 15:58
Location: Istabul, Turkey
Contact:

#8 Post by eua »

Hiiissshhh. Be quiet. Author might be watching you... 8)

User avatar
Makoto
Posts: 1665
Joined: Fri 04 Sep 2009, 01:30
Location: Out wandering... maybe.

#9 Post by Makoto »

Really? Okay, I'll keep quiet. :D
[ Puppy 4.3.1 JP, Frugal install ] * [ XenialPup 7.5, Frugal install ] * [XenialPup 64 7.5, Frugal install] * [ 4GB RAM | 512MB swap ]
In memory of our beloved American Eskimo puppy (1995-2010) and black Lab puppy (1997-2011).

User avatar
eua
Posts: 10
Joined: Wed 18 May 2011, 15:58
Location: Istabul, Turkey
Contact:

#10 Post by eua »

Looks like:
r208 | erdem_ua | 2011-05-19 03:01:22 +0300 (Thu, 19 May 2011) | 2 lines

Added left click to offset controller copies the address.

------------------------------------------------------------------------
r207 | erdem_ua | 2011-05-19 02:25:19 +0300 (Thu, 19 May 2011) | 2 lines

Changed Offset Hex:Dec switching by right mouse button from now.
:)

User avatar
eua
Posts: 10
Joined: Wed 18 May 2011, 15:58
Location: Istabul, Turkey
Contact:

#11 Post by eua »

You can use svn for file comparison option...

Code: Select all

r212 | erdem_ua | 2011-05-21 16:02:39 +0300 (Sat, 21 May 2011) | 2 lines
Implemented whole Comparison Dialog.

r211 | erdem_ua | 2011-05-21 14:11:27 +0300 (Sat, 21 May 2011) | 2 lines
Fixed File Compare operation.

r210 | erdem_ua | 2011-05-21 02:36:22 +0300 (Sat, 21 May 2011) | 2 lines
Added Comparison Panel (Beta).

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#12 Post by disciple »

Fantastic!
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

User avatar
Makoto
Posts: 1665
Joined: Fri 04 Sep 2009, 01:30
Location: Out wandering... maybe.

#13 Post by Makoto »

I'll second that. :)

(Sorry, would've signed on a lot earlier; busy day. (collapses))
[ Puppy 4.3.1 JP, Frugal install ] * [ XenialPup 7.5, Frugal install ] * [XenialPup 64 7.5, Frugal install] * [ 4GB RAM | 512MB swap ]
In memory of our beloved American Eskimo puppy (1995-2010) and black Lab puppy (1997-2011).

User avatar
eua
Posts: 10
Joined: Wed 18 May 2011, 15:58
Location: Istabul, Turkey
Contact:

#14 Post by eua »

Now unicode search available.
And looks like disassembler support comming next.
r213 | erdem_ua | 2011-05-23 02:41:55 +0300 (Mon, 23 May 2011) | 3 lines
Implemented UTF8/Unicode searching.
Added Auto UTF8 Search switch on Unicode search strings.

r214 | erdem_ua | 2011-05-23 03:24:06 +0300 (Mon, 23 May 2011) | 2 lines
Added Disassember Panel skeleton.
Edit:
r215 | erdem_ua | 2011-05-24 03:31:16 +0300 (Tue, 24 May 2011) | 3 lines
Implemented Disassembler panel code by using udis86 library.(Beta)
So what you want next?

User avatar
Makoto
Posts: 1665
Joined: Fri 04 Sep 2009, 01:30
Location: Out wandering... maybe.

#15 Post by Makoto »

Can't think of anything, offhand. :oops: Maybe something to do with a patch system (creating diffs?), but that might end up being handled differently between Linux and Windows (especially if you were to create 'executable' patches... :D)

(As you can see, I probably should NOT try to make suggestions after being out with my family all night until three A.M... :shock: :P )
[ Puppy 4.3.1 JP, Frugal install ] * [ XenialPup 7.5, Frugal install ] * [XenialPup 64 7.5, Frugal install] * [ 4GB RAM | 512MB swap ]
In memory of our beloved American Eskimo puppy (1995-2010) and black Lab puppy (1997-2011).

User avatar
eua
Posts: 10
Joined: Wed 18 May 2011, 15:58
Location: Istabul, Turkey
Contact:

#16 Post by eua »

There are some cosmetics but I think it looks better.
r218 | erdem_ua | 2011-05-25 04:04:38 +0300 (Wed, 25 May 2011) | 2 lines
Changed OffsetCtrl for use less digits if hex mode in use.
Added Auto-Offset resizing by file length
I can integrate xdiff like engine or just put my own diff code to patch BIN files.
But that patch file is compatible with all OSses. Why do you think that will be break compatibility between Win and Linux?

I think next big thing is Memory Reading for windows (at least on XP) and Linux (don't know how to do on OSX)..

I think it's prohibited on linux but some users doesn’t think same.
Do you know any way to read whole physical memory at Linux?

User avatar
Makoto
Posts: 1665
Joined: Fri 04 Sep 2009, 01:30
Location: Out wandering... maybe.

#17 Post by Makoto »

I'd gone off on a tangent and was thinking about (standalone) executable patches when I'd made that comment. :oops: (See, that's why I shouldn't try to make suggestions at 3AM, when I'm rather tired. :) )

I can't say I know anything about memory reading/addressing, unfortunately. :( Would that also require you to start considering having both a 32-bit and 64-bit version of wxHexEditor, due to the differences in the way they address memory? (Or can you do both within a 32-bit program? (I did say I knew very little about the subject... :oops: ))

(...then again, my posts in the middle of the day when I'm fully awake aren't necessarily all that coherent... :mrgreen: )
[ Puppy 4.3.1 JP, Frugal install ] * [ XenialPup 7.5, Frugal install ] * [XenialPup 64 7.5, Frugal install] * [ 4GB RAM | 512MB swap ]
In memory of our beloved American Eskimo puppy (1995-2010) and black Lab puppy (1997-2011).

User avatar
Makoto
Posts: 1665
Joined: Fri 04 Sep 2009, 01:30
Location: Out wandering... maybe.

#18 Post by Makoto »

Okay, just remembered something I'd forgotten.

For copying text from the right-hand pane, a warning will pop up if the selection contains nulls, and the text will be truncated. Would an option (off by default) to automatically convert the nulls to copy-friendly characters (such as spaces, underscores?) be a good idea? That might also need a sub-option to warn (or keep the above warning) as a reminder if you were indeed going to paste the text in the same or another instance of the editor, though, to be safe.

Or, perhaps add the option to convert the nulls in the selection, in the existing warning. That way, you can keep the warning, and those who are going to paste the text into something other than a program don't have to end up taking a screenshot of the text they were trying to copy. :lol:
[ Puppy 4.3.1 JP, Frugal install ] * [ XenialPup 7.5, Frugal install ] * [XenialPup 64 7.5, Frugal install] * [ 4GB RAM | 512MB swap ]
In memory of our beloved American Eskimo puppy (1995-2010) and black Lab puppy (1997-2011).

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#19 Post by disciple »

Makoto: FYI we also had a discussion going about that at http://sourceforge.net/tracker/index.ph ... tid=913065

It might be good to have an option to specify which character to replace them with. But I think in theory it should actually be possible to copy the whole string without replacing the null characters. Because if I correctly understand what Google is telling me, you can have a null character in a text file, or in a C++ string.

Here's another idea that would be nice: using a different colour (red?) in that panel for non-printing characters.
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#20 Post by disciple »

disciple wrote:Here's another idea that would be nice: using a different colour (red?) in that panel for non-printing characters.
Nice, but probably not incredibly useful ;)
-----------------------------

Erdem, are you developing primarily on Windows?
With current svn I get this error on Puppy:

Code: Select all

src/HexDialogs.cpp: In member function 'uint64_t FindDialog::FindText(wxString, uint64_t, unsigned int)':
src/HexDialogs.cpp:207: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
/usr/include/wx-2.8/wx/buffer.h:127: note: candidate 1: char wxCharBuffer::operator[](size_t) const
src/HexDialogs.cpp:207: note: candidate 2: operator[](const char*, int) <built-in>
make: *** [src/HexDialogs.o] Error 1
Google takes me to places like this http://xania.org/200711/ambiguous-overloading, but I think I am still too ignorant to fix it.
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

Post Reply