proxy
June 24th, 2008, 13:44
0.9.0 released, change log is very long, and this is the first version to support x86-64! Now that the big move to supporting both x86 and x86-64 (compile time decision) is done. I hope to get back into a faster release cycle.
Hope you all enjoy!:
2008-06-18
----------
* Fixed a bug in the hardware breakpoint manager plugin which didn't allow
disabling of the last breakpoint.
* Extended the maximum size that OpcodeSearcher will consider from 4 bytes to
8 bytes, which yields some more options.
* Finished changing OpcodeSearcher plugin to use edisassm, it should be a lot more
robust now. Forutnately, edisassm is pretty fast, so the performance impact isn't too
bad.
* Most dialogs use QT 4.2.x's QDialogButtonBox's now which should give a better
look on non-KDE platforms.
2008-06-12
----------
* Fixed a bug in DebuggerCore involving hardware debug registers in 64-bit mode.
this fix allows hardware breakpoints to work in 64-bit builds.
* Changed OpcodeSearcher plugin to use edisassm when searching instead of hard
coded values. This allows the code to be more easily ported to new archs such
as x86-64.
2008-06-06
----------
* Fixed minor bug with selections in QHexWidgets when selecting outside of the
viewable range. There was an underflow, which was cast to an unsigned type
causing some upward selections to select from start to the end of the range.
* More improvements in 64-bit support. The ArchProcessor for x86-64 is now
aware of the amd64 C calling convention and will now properly predict function
arguments for when symbols are available.
2008-06-01
----------
* Hardware breakpoints are much more complete, supporting Write, Read/Write,
and Execute types of 1, 2, and 4 bytes sizes.
2008-05-31
----------
* edisassm 1.5.2 released, mostely making the code more standards compliant to
ensure that the code will compile on newer versions of g++.
tested with 4.2.3 on Ubuntu.
2008-05-28
----------
* edisassm 1.5.1 released with some minor bug fixes
* Corrected some bugs in edb under x86-64 involving the analysis engine.
2008-05-28
----------
* edisassm 1.5.0 released with EMT64 support! A lot of time was put into
verifying the instruction tables to ensure that disassembly woudl be accurate.
* A couple of minor bug fixes were done in EDB.
* Added patches to clean up build on ubuntu systems.
2008-05-18
----------
* Added LOTs of SSE4 ops to edissasm, updated a bunch of the tables.
2008-05-07
----------
* edisassm now can handle RIP relative addressing mode. I also fixed some decode
ordering issues that were introduced when 64-bit mode was being added. The
only piece left is the tweaking of the instruction tables to match what was
added/removed/changed for 64-bit mode!
2008-05-06
----------
* edisassm now can disassemble 64-bit code partially correct. It does not yet
support RIP relative modes and does not take into account changes in the
opcode map (new and removed opcodes). Soon edb will have full 64-bit support!
2008-04-30
----------
* Made a large effort to port edisassm to 64-bit
The most visible change
is that is makes much larger use of templates. Instruction and Operand now
take a template param (32 and 64 are valid). which can be used like this:
Instruction<32> insn(buf, size); or you can use edb::Instruction which will be
be typedefed to the appropriate type based on your build environment. Because
of the massive ammount of templating needed to implement this, it is possible
that older compilers will have trouble with it. I will test which compilers
are expected to work.
2008-04-11
----------
* Renamed REG_NONE to REG_NULL to avoid a conflict with windows headers.
* Got edisassm compile on win32 for the first time
2008-03-24
----------
* Improved some of the function finder code, I am planning on moving this to a
more central analysis system.
2008-03-15
----------
* Fixed some incorrect bit setting in HW breakpoint code.
2008-03-14
----------
* Improved the HW breakpoint code. It will now show the enabled state based on
what the application is actually in. So if you do something like reset the
application, then the HW breakpoints will show as disabled (because they are).
* Some general code optimizations.
2008-02-29
----------
* First code for hardware breakpoints is in, edb can now set a hardware bp
and resume from it, next is setting the proper type of bp (read/write/execute)
as needed and also making the dialog show correctly even when application
has been terminated or restarted.
2008-02-27
----------
* Simplified some signal code in QHexView and Bookmarks plugin.
* Started some very preliminary work on the hardware breakpoint plugin. So far
I have the GUI planned out for it. It will likely require that the plugin
hook the debug event system in order to enable resuming after hitting the BP.
This is ok though since there is an infrastructure in place for that
.
2008-02-25
----------
* Improved handling of breakpoints which aren't caused by int3 bytes placed by
edb. for example: "int 3" (which encodes as 0xcd 0x03) is now handeled more
correctly.
* Preliminary code for hardware breakpoints is in place, the DebuggerCore is now
able to get/set the debug registers on intel. The only real hurdle left is
continuing after it is hit. This will need a similar system to software
breakpoints.
2008-02-15
----------
* Made some changes to help with portability.
* Made edisassm use std::ifstream instead of mmap.
2008-02-12
----------
* Simplified the expression code a bit by factoring down common code a bit. This
results in a slightly larger binary, but smaller source (due to small function
inlining). I think this is fine since the code is more managable.
* Fixed expressions handling of the XOR operator "^". It was not properly
implemented.
* Moved the known function table to a plugin. It isn't super efficient quite yet
but works well.
2008-02-10
----------
* Made the columns in the disassembly view movable when mouse is 2 or less
pixels away from from the line, not just exact match. This should make it an
easier target.
2008-02-08
----------
* Made DebuggerCore::readPages account for breakpoints in its results.
* Fixed a bug where reads/writes could return success when they couldn't read
this resulted. Fortunately this really didn't effect the result of any
operations.
2008-02-06
----------
* applied patch from elitak@gmail.com to plugins.pri to help avoid build errors
on certain configuration.
2008-01-28
----------
* updates QT dependancy to be for version 4.2 or greater. There are a few
features of QT that I have held off from using or have worked around in the
past. The next version (0.9.0) will no longer compile on versions lower than
4.2
2008-01-24
----------
* Fixed more bugs in edisassm, it was some SSE opcodes where Intel docs claimed
both operands have be Mod/RM, in which case I have no idea what the proper
thing to do is. So, it is now in sync with what sandpile.org says, which
matches other disassemblers output. I have also added a regression test for
this.
* You can now see symbols in the disassembler view if you move the left most
line right. By default it will look as usual. But in a very similar way to
ollydbg, you can now see known symbols next to addresses.
* Improved function finder plugin. It will now give "bonus points" to functions
which have known symbols.
2008-01-19
----------
* Fixed a harmless crash when EDB failed to load the debugger core plugin. This
was introduced in the last release
.
2008-01-17
----------
* For builds on QT >= 4.3, you can now give a tab a label but right clicking
on it.
* Made the QHexView and QDisassembly widgets use the system palette colors.
This will make it so EDB will match the prefered colour scheme of the user.
enjoy
http://www.codef00.com/projects.php#Debugger
proxy
Hope you all enjoy!:
2008-06-18
----------
* Fixed a bug in the hardware breakpoint manager plugin which didn't allow
disabling of the last breakpoint.
* Extended the maximum size that OpcodeSearcher will consider from 4 bytes to
8 bytes, which yields some more options.
* Finished changing OpcodeSearcher plugin to use edisassm, it should be a lot more
robust now. Forutnately, edisassm is pretty fast, so the performance impact isn't too
bad.
* Most dialogs use QT 4.2.x's QDialogButtonBox's now which should give a better
look on non-KDE platforms.
2008-06-12
----------
* Fixed a bug in DebuggerCore involving hardware debug registers in 64-bit mode.
this fix allows hardware breakpoints to work in 64-bit builds.
* Changed OpcodeSearcher plugin to use edisassm when searching instead of hard
coded values. This allows the code to be more easily ported to new archs such
as x86-64.
2008-06-06
----------
* Fixed minor bug with selections in QHexWidgets when selecting outside of the
viewable range. There was an underflow, which was cast to an unsigned type
causing some upward selections to select from start to the end of the range.
* More improvements in 64-bit support. The ArchProcessor for x86-64 is now
aware of the amd64 C calling convention and will now properly predict function
arguments for when symbols are available.
2008-06-01
----------
* Hardware breakpoints are much more complete, supporting Write, Read/Write,
and Execute types of 1, 2, and 4 bytes sizes.
2008-05-31
----------
* edisassm 1.5.2 released, mostely making the code more standards compliant to
ensure that the code will compile on newer versions of g++.
tested with 4.2.3 on Ubuntu.
2008-05-28
----------
* edisassm 1.5.1 released with some minor bug fixes
* Corrected some bugs in edb under x86-64 involving the analysis engine.
2008-05-28
----------
* edisassm 1.5.0 released with EMT64 support! A lot of time was put into
verifying the instruction tables to ensure that disassembly woudl be accurate.
* A couple of minor bug fixes were done in EDB.
* Added patches to clean up build on ubuntu systems.
2008-05-18
----------
* Added LOTs of SSE4 ops to edissasm, updated a bunch of the tables.
2008-05-07
----------
* edisassm now can handle RIP relative addressing mode. I also fixed some decode
ordering issues that were introduced when 64-bit mode was being added. The
only piece left is the tweaking of the instruction tables to match what was
added/removed/changed for 64-bit mode!
2008-05-06
----------
* edisassm now can disassemble 64-bit code partially correct. It does not yet
support RIP relative modes and does not take into account changes in the
opcode map (new and removed opcodes). Soon edb will have full 64-bit support!
2008-04-30
----------
* Made a large effort to port edisassm to 64-bit

is that is makes much larger use of templates. Instruction and Operand now
take a template param (32 and 64 are valid). which can be used like this:
Instruction<32> insn(buf, size); or you can use edb::Instruction which will be
be typedefed to the appropriate type based on your build environment. Because
of the massive ammount of templating needed to implement this, it is possible
that older compilers will have trouble with it. I will test which compilers
are expected to work.
2008-04-11
----------
* Renamed REG_NONE to REG_NULL to avoid a conflict with windows headers.
* Got edisassm compile on win32 for the first time

2008-03-24
----------
* Improved some of the function finder code, I am planning on moving this to a
more central analysis system.
2008-03-15
----------
* Fixed some incorrect bit setting in HW breakpoint code.
2008-03-14
----------
* Improved the HW breakpoint code. It will now show the enabled state based on
what the application is actually in. So if you do something like reset the
application, then the HW breakpoints will show as disabled (because they are).
* Some general code optimizations.
2008-02-29
----------
* First code for hardware breakpoints is in, edb can now set a hardware bp
and resume from it, next is setting the proper type of bp (read/write/execute)
as needed and also making the dialog show correctly even when application
has been terminated or restarted.
2008-02-27
----------
* Simplified some signal code in QHexView and Bookmarks plugin.
* Started some very preliminary work on the hardware breakpoint plugin. So far
I have the GUI planned out for it. It will likely require that the plugin
hook the debug event system in order to enable resuming after hitting the BP.
This is ok though since there is an infrastructure in place for that

2008-02-25
----------
* Improved handling of breakpoints which aren't caused by int3 bytes placed by
edb. for example: "int 3" (which encodes as 0xcd 0x03) is now handeled more
correctly.
* Preliminary code for hardware breakpoints is in place, the DebuggerCore is now
able to get/set the debug registers on intel. The only real hurdle left is
continuing after it is hit. This will need a similar system to software
breakpoints.
2008-02-15
----------
* Made some changes to help with portability.
* Made edisassm use std::ifstream instead of mmap.
2008-02-12
----------
* Simplified the expression code a bit by factoring down common code a bit. This
results in a slightly larger binary, but smaller source (due to small function
inlining). I think this is fine since the code is more managable.
* Fixed expressions handling of the XOR operator "^". It was not properly
implemented.
* Moved the known function table to a plugin. It isn't super efficient quite yet
but works well.
2008-02-10
----------
* Made the columns in the disassembly view movable when mouse is 2 or less
pixels away from from the line, not just exact match. This should make it an
easier target.
2008-02-08
----------
* Made DebuggerCore::readPages account for breakpoints in its results.
* Fixed a bug where reads/writes could return success when they couldn't read
this resulted. Fortunately this really didn't effect the result of any
operations.
2008-02-06
----------
* applied patch from elitak@gmail.com to plugins.pri to help avoid build errors
on certain configuration.
2008-01-28
----------
* updates QT dependancy to be for version 4.2 or greater. There are a few
features of QT that I have held off from using or have worked around in the
past. The next version (0.9.0) will no longer compile on versions lower than
4.2
2008-01-24
----------
* Fixed more bugs in edisassm, it was some SSE opcodes where Intel docs claimed
both operands have be Mod/RM, in which case I have no idea what the proper
thing to do is. So, it is now in sync with what sandpile.org says, which
matches other disassemblers output. I have also added a regression test for
this.
* You can now see symbols in the disassembler view if you move the left most
line right. By default it will look as usual. But in a very similar way to
ollydbg, you can now see known symbols next to addresses.
* Improved function finder plugin. It will now give "bonus points" to functions
which have known symbols.
2008-01-19
----------
* Fixed a harmless crash when EDB failed to load the debugger core plugin. This
was introduced in the last release

2008-01-17
----------
* For builds on QT >= 4.3, you can now give a tab a label but right clicking
on it.
* Made the QHexView and QDisassembly widgets use the system palette colors.
This will make it so EDB will match the prefered colour scheme of the user.
enjoy
http://www.codef00.com/projects.php#Debugger
proxy