Page 1 of 2

wxHexEditor: wx-based Hex Editor!

Posted: Fri 25 Mar 2011, 23:32
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

Posted: Tue 29 Mar 2011, 09:20
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: )

Posted: Wed 30 Mar 2011, 06:42
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?

Posted: Wed 30 Mar 2011, 08:18
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:

Posted: Fri 22 Apr 2011, 02:01
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.

Posted: Fri 22 Apr 2011, 02:17
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...

Posted: Fri 22 Apr 2011, 03:18
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.

Posted: Wed 18 May 2011, 16:19
by eua
Hiiissshhh. Be quiet. Author might be watching you... 8)

Posted: Thu 19 May 2011, 18:31
by Makoto
Really? Okay, I'll keep quiet. :D

Posted: Thu 19 May 2011, 21:36
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.
:)

Posted: Sat 21 May 2011, 12:52
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).

Posted: Sun 22 May 2011, 00:09
by disciple
Fantastic!

Posted: Sun 22 May 2011, 10:13
by Makoto
I'll second that. :)

(Sorry, would've signed on a lot earlier; busy day. (collapses))

Posted: Mon 23 May 2011, 14:56
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?

Posted: Wed 25 May 2011, 10:02
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 )

Posted: Wed 25 May 2011, 20:51
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?

Posted: Wed 25 May 2011, 21:32
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: )

Posted: Thu 26 May 2011, 04:56
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:

Posted: Fri 27 May 2011, 10:31
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.

Posted: Sat 28 May 2011, 00:31
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.