我老早就想研究一下针对Microsoft Internet Information Server的各种Exploit,也着手收集了不少Exploit的黑客码,但是却静不下心来一步一步去Disassembly这些黑客码,一直到我的计算机们被CodeRed攻击的那天。大部分计算机都没有问题,但是有那么几个计算机刚被Codered占领,正在向随机IP地址发出一个又一个的HTTP请求;还有一个计算机大概到了Codered晚期,我居然在上面找到一个叫作root.exe的木马(Trojan)程序。反正折腾了好久好久,终於把Codered扫出了大门。痛定思痛,我终於决定气沉丹田,聚精会神一次去Disassembly这些病毒/病虫。
Windbg有非常丰富的命令,有一些就象“回”字的第N种写法一样,你可能一辈子都不会用到。而且,象Microsoft的其它软件一样,它的许多命令也可以直接用鼠标从Graphical User Interface(GUI)调用。所以呢,我就不专门介绍它们了,我将在后面Exploit时根据需要介绍所用的命令。
我们把这个exception.cpp在Microsoft Visual Studio编译好,这里我先要提醒大家一句:由于我们是用VC++的编译器编译这个程序,VC++在实现Structured Exception Handling时作了一些VC++特有的处理,所以你们看到的SEH已经不是原汁原味了;下面我只着重介绍原汁原味的那一部分,如果你们想知道SEH在VC++中的全貌,我推荐 Microsoft Systems Journal在1997年一月的一篇文章<>。