• 标 题:科锐第三阶段项目之一,调试器的设计(1、15、31、38、40、47、50楼更新)(源码.文档.使用说明,全都在一楼更新了)
  • 作 者:EvilKnight
  • 时 间:2010-04-27 23:58:37
  • 链 接:http://bbs.pediy.com/showthread.php?t=111875

注,附件已经更新,调试器修复了一些小bug!
第一章节至第六章节都在附件中的文档中!

本项目是在科锐学习第三阶段项目之一,因鄙人没有天马行空的创意,亦没有巧夺天工的技术,加之时间、技术等问题,本调试器各方面设计存在很多不足,或多或少还存在一些bug,所以希望大家多多指导。
如果大家对本程序有什么意义或者建议的话,欢迎大家和我联系,本人不胜感激。

调试器的一些开发文档将在后期中不停放出。

同时在这里感谢钱林松老师、方志强老师、赵海旭老师和岳磊老师,多谢他们在这近一年的时间里对我们班学员的教育和帮助。
在此对他们表示由衷的感谢。

同时也要衷心感谢一起战斗的兄弟们:孙年忠、傅强、薛亮亮、许晓明、易新、任晓晖、柳德春、吴彬、彭燕青、吴鸣鹏等各位科锐的同学,多谢他们为我的设计提供思路,还有帮我测试程序,哈哈。

附件包含调试器的可执行程序:DebugerVC.exe
Debugger使用帮助.doc    是调试器的使用帮助
测试程序 目录下面是一些测试用例,里面附带一个readme.txt说明


                                          科锐五期班学员    黄奇
                                 e-mail:  microq@vip.qq.com



                                                                            前言
     依然记得刚来科锐学习的时候,钱林松老师说:” 程序不是写出来的,而是调出来的!”。
     回忆学生时代写程序的时候,遇到bug往往很无奈,常常是把程序从头到尾看一遍,或者是在一些关键的地方,觉得会出错的地方,printf一下,来判断是不是这里出错了。曾经还觉得这个方法不错,沾沾自喜呢。
     后来工作后,或多或少要调一些程序,但是总觉得不得要领。
     所以我觉得无论是软件逆向工程的研究者还是开发人员,都有必要自己实现一个调试器,当你的调试器完成的时候,或许你对软件调试会有一种顿悟的感觉。
     而且可以根据自己的需要,写一个适合自己的调试器,对于逆向或者调试程序来说,都会得心应手,而且还可以过针对某些调试器的反调试哦!
     因鄙人没有天马行空的创意,亦没有巧夺天工的技术!所以调试器设计得也有很多不足,但也略有心得,故拿出来,与大家分享之,希望能帮助到有需要的人。
     由于本人能力有限,文中必然有错漏之处,恳请读者不吝赐教。

程序运行效果:



指令记录效果:

左边是输入错误key的指令,右边是正确的,大家知道有什么用了吧!


程序源代码...
程序中没有使用STL,数据结构都是自己实现的,因为当初觉得调试器的难点就在于数据结构方面,也刚好可以顺便复习一下数据结构,如果对这方面没兴趣的话那部分内容可以跳过,程序中都有注释.

如果有什么问题,或者你对这个有啥意见或者建义的话,都可以与我联系。
如果你发现源码在你机器上不能编译,请安装windows xp sp2 SDK或者更高版本的SDK!

平台: Windows XP SP2 + windows xp sp2 SDK + VC6 sp6

上传的附件 Debugger.rar
使用帮助.pdf
文档.pdf
DebugerVC源码.rar