Minidebugger is a debugger I've been designing recently. I try to explore some of the principles of function and to do some self-thought-interesting functions through this small project, which is kind of self-exercise.
Project Address:
http://code.taobao.org/p/MiniDebuger/src/
Design Thinking
Do a debugger that you really want to use . This is very necessary. As you know, there are very many excellent debuggers that accompany a program debugger. They include od,windbg,x64dbg, as well as Ida.
I'm very picky about what I want to be able to use on a regular level. I need to implement some people without my small function.
I prefer WinDbg's command line interface, so I made it like this: ' (**∩_∩)
Don't talk about people's skeletons, they are very gentle ....
Process architecture
On the left is the UI thread, and the right is the debug loop thread.
Using the open source beaengine disassembly engine, the features are as follows:
- One of the best open source disassembly engines
- Almost all assembly instructions under the x86 and AMD64 platforms are currently supported.
- Disassembly results support free definition and can implement some more complex display methods.
- Assembly operation is not supported, only disassembly is supported.
See here, the little friends are interested in beaengine?
Function
A few interesting feature points:
- Stack backtracking: Traces all processes called by the current thread through a stack frame relationship. The next step is to combine the IAT table to make this feature more complete.
- Debug output Information view. Close your dbgveiw If you just want to check out the information about your program output
List of Supported commands
The current version is insufficient
- No class is used for encapsulation (I go ~)
- In search of a better data structure scheme.
But this is only the first version, and subsequent adjustments will not only be made to the framework. It is also expected to be strengthened in the following areas:
1. A better breakpoint strategy. In particular, some improvements to software breakpoints
2. The addition of anti-Antidebugger strategy.
Development Be careful
- If you transfer a piece of code.
- In the new location, the predecessor parameter is not initialized yet. Check it.
- In the old location, you might have needed a copy of the same code. Instead of clipping.
- Patch
There is a problem in one place, and a patch may also be needed in a place similar to its working mechanism.
Project Address:
http://code.taobao.org/p/MiniDebuger/src/
August 9, 2015 10:39
Copyright NOTICE: This article is a blogger original article, in the case of the author and the source of the circumstances can be freely reproduced.
Open Source Small Debugger-minidebugger