[eresi-dev] New ERESI component started : ke2dbg

jv at ens dot fr julien.vanegue at ens.fr
Sun Dec 23 10:25:30 UTC 2007


I have started cutting down pieces of rr0d,
the rasta ring0 debugger, a kernel debugger
made by droid-corps: rr0d.droids-corp.org

The features of rr0d are :

- Independent video and keyboard driver.
- Breakpoints and stepping of the kernel
- Disassembling / symbols printing
- Get enabled/disabled by LKM insertion/removing

Its not a lot, but its perfect for us since we already
have all the features we want in ERESI. Its just a
matter for us to interface ERESI with rr0d and
create a new powerful kernel debugger capable
of interpreting ERESI scripts : ke2dbg

Until now, I have done:

- Lots of code cleaning and factoring in rr0d
- Removed rr0d disassembler and replaced with libasm
- Removed rr0d symbol handling and replaced with libelfsh

Currently, I am :

- making sure REVM is well initialized when rr0d start
- replacing rr0d command parser by ERESI command parser

After this is done, some stuffs are still necessary to be
done before we can say our ke2dbg is operational:

- Merge rr0d registers handling within ERESI vectors
- Register rr0d breakpoint handling within ERESI vectors
- Create a new ERESI vector for modular debugger I/O

Some non-mandatory but strongly advised parts we will
also need in the future are:

- Support kernel debugging on SMP systems (pretty
challenging GDT/IDT handling !)

- Code a kernel allocator proxy (make sure ke2dbg
kernel heap is separated from the regular kernel heap,
similary to the embedded userland debugger)

ke2dbg is not yet operational but you can find it in the
ERESI CVS at location: libe2dbg/kernel/*

NOTE:  libe2dbg has been split in 3 parts
- user: user-land only code
- kernel: kernel-land only code
- common: common code for userland and kernel debugger

Next week is CCC Congress ! I will be there coding hard
on ke2dbg and seeking for some action ! If anyone wants
to meet me there, make sure you email me before
Wednesday December 26.

Julien Vanegue






More information about the eresi-dev mailing list