Article View: pl.comp.lang.asm
Article #994Universal Kernel Debugger
From: adx
Date: Sat, 24 Feb 2007 17:32
Date: Sat, 24 Feb 2007 17:32
48 lines
3036 bytes
3036 bytes
Hello, I've been working for some time on a multi-platform, multi-OS kernel-mode debugger which would work as an equivalent for SoftICE. I hope some of you might be interested in making it a feature-rich open source software. http://irc7.pl/cgi-bin/viewcvs.cgi/ukd/ (a few months/years ago I also started a project with this name on SF) What it already can: - pop up its window on Ctrl+G (configurable via variable in source code) or (optionally) int1/int3 or breakpoint, using universal video driver siwvid.sys; this driver is actually very easy to rewrite as open source (could be 200 lines or so), I just didn't feel the need to do so (in short: int 2D hook on bootup, watch loaded modules, activate when GDI driver is being loaded, hook [call/jmp] its entry point; then, from it, modify returned block to include changed Init_DirectDraw handler or so, and finally when we reach there, save screen info along with surface pointer); - trace/step over F8/F10, Go, (Un)assemble and a few others; well written disassembler/assembler stuff (can easily support various formats like AT&T/Intel, can easily be extended e.g. x64); - breakpoints in kernel or user code; - ability to load PE export names and use them instead of addresses; expression parser (seg:offs, calculations, addr->ofs syntax for [addr+ofs] etc.) - SoftICE-alike look&feel, e.g. register window (can be edited), code (optionally with opcodes), data (various widths, edition, physical memory too), status, command editor with history, similar keystrokes (e.g. [Ctrl/Shift]+(Pg)Up/Dn), mouse; - first steps taken in implementing USB stuff; - some NT-specific stuff like display current process in bottom right corner, ADDR command (view another context) and more. Current problems and possible work areas include: - when tracing, PUSHF/POPF need to be emulated or we could have a crash after tracing through PUSHF and then resuming before POPF (uncought i1); - more portability across Windows versions (structure offsets vary, e.g. in EPROCESS, you might experience crashes because of this); more separation between core and OS-dependent stuff; - interface improvements, window resizing, floating point window; - handle USB HID; - add features you like. Regards.
Technical Details
Message-ID:
<erpt1r$jan$4@nemesis.news.tpi.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: adx <adx@irc7.pl> Newsgroups: pl.comp.lang.asm,alt.pl.asm Subject: Universal Kernel Debugger Date: Sat, 24 Feb 2007 18:32:01 +0100 Organization: tp.internet - http://www.tpi.pl/ Lines: 48 Message-ID: <erpt1r$jan$4@nemesis.news.tpi.pl> NNTP-Posting-Host: cie129.neoplus.adsl.tpnet.pl Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1172338556 19799 83.31.28.129 (24 Feb 2007 17:35:56 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Sat, 24 Feb 2007 17:35:56 +0000 (UTC) User-Agent: Thunderbird 1.5.0.9 (Windows/20061207) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit