windows高级调试 第五章 内存破坏之一-栈 实例三:栈溢出 动手实践的过程

本文介绍了使用Windbg进行Windows高级调试,特别是针对栈溢出问题的动手实践。通过设置断点在HelperFunction函数,观察执行过程,使用`dd esp`指令分析ESP寄存器变化。调试过程中,需注意禁用编译器的缓冲区溢出检查,并理解0x3c源自字符串最大长度的计算。实践加深了对理论的理解。
摘要由CSDN通过智能技术生成

         最近一段时间,在工作中一直在进行windows下面的软件调试。使用的调试工具是windbg。但是对这个工具不熟悉,很多命令都不会,只好靠多看书来补充了。看了以前买的一本书《Advanced Windows Debugging》,中文名是《Windows高级调试》。第五章是《内存破坏之一-栈》,其中有一个例子是演示堆栈破坏的,但是作者只是简单说了说步骤,没有把详细的操作命令写出来,我自己实践了一下(嘿嘿,俺还是菜鸟级别的,不实践不行啊),源代码如下:

/*++
Copyright (c) Advanced Windows Debugging (ISBN 0321374460) from Addison-Wesley Professional.  All rights reserved.

    THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
    KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
    PURPOSE.

--*/

#include <windows.h>
#include <stdio.h>

#define MAX_CONN_LEN    30

VOID HelperFunction(WCHAR* pszConnectionString);

void __cdecl wmain (int argc, WCHAR* args[])
{
    if (argc==2)
    {
        HelperFunction(args[1]);
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值