用WinDbg调试汇编语言程序

用WinDbg调试汇编语言程序

做汇编语言上机实验时,老师让学习使用Windbg来调试程序,在网上找不到详细的教程,自己慢慢摸索出了一种方法。
1.首先使用免费的Microsoft Debugging Tools for windows

在这里插入图片描述
2.WinDbg支持两种模式:源程序模式和汇编模式。

  • 源程序调试时,必须创建符号文件(.PDB文件)
  • 汇编时需要在ML命令中带上参数“/Zi
  • 连接时需要在LINK命令中带上参数“/debug
    但make32.pat已经自动完成了这些问题,不需要再手动操作,具体需要的软件压缩包都在我上传的资源里。

3.打开WinDbg,点击File-Open Executable,然后打开你要调试的程序代码的.exe文件。

在这里插入图片描述
4.打开后会弹出命令行窗口和command窗口。

在这里插入图片描述
5.然后再点击File-Open Sourse File,打开代码源文件即.asm文件。然后在红圈中寻找Register(实时显示各个寄存器的值,可以自定义寄存器的排列顺序),Memory Window点击打开。

在这里插入图片描述
6.最后可以点击File-Save WorkSpace保存窗口的位置。

在这里插入图片描述
7.在代码中选中一行按F9来设置断点,点击Debug-Go或F5进行调试(然后可以单步跳过F10来进一步调试)。

在这里插入图片描述

在这里插入图片描述

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
【适合小白入门】深入掌握Windows操作系统原理,提升程序开发水平,为学习驱动开发,内核安全打下基础。学完本课程可以轻松的理解Windows内核,开阔思路,对没有底层开发基础的人起到有非常好的指导作用。在此基础上可以开发出有趣且功能强大的软件。 课程目录: 第1章windows驱动基础 第一课 认识windows驱动 第二课 在虚拟机里安装windows操作系统 第三课 windows操作系统基本概念 第四课 操作系统的分层结构 第2章windowsw驱动编译环境配置、安装及调试 第五课 安装驱动开发环境 第六课 安装驱动开发环境 第七课 实战:编写驱动程序加载器 第3章驱动程序的基本结构 第八课 复习c语言的指针和数据结构 第九课 windows驱动程序的基本结构 第十课 编程实战-创建设备对象 第4章windows内存管理 第十一课 内存管理操作 第十二课 驱动开发中使用链表 第十三课 驱动开发中使用快查表 第十四课 在驱动中使用c++中内存管理操作-newdelet 第十六课 驱动开发中宏与断言的使用 第5章应用程序与驱动程序通信 第二十六课 irp与派遣函数 第二十七课 缓冲区读写操作 第十五课 在驱动中使用结构化异常处理 第二十八课 缓冲区读写操作 第二十九课 模拟文件 第三十课 直接方式与其它方式读写操作 第三十一课 io设备控制操作 第三十二课 io设备控制操作 第6章windows内核函数 第十七课 内核模式下的字符串操作1 第十八课 内核模式下的字符串操作 第十九课 内核模式下的字符串操作 第二十课 内核模式下的文件操作 第二十一课 内核模式下的文件操作 第二十二课 内核模式下注册表操作 第二十三课 内核模式下注册表操作 第二十四课 内核模式下注册表操作 第二十五课 内核模式下注册表操作 第7章驱动程序的同步处理 第三十三课 内核模式下的同步与异步操作 第三十四课 用户模式下的同步对象1_事件 第三十五课 用户模式下的同步对象2_线程信号量与互斥体 第三十六课 内核模式下的同步对象3_系统线程创建与普 第三十七课 内核模式下的同步对象4_信号量与互斥体 第三十八课 内核模式与用户模式间的同步操作 第三十九课 其它内核同步要素 第8章IRP的同步与异步 第四十课 应用程序的对文件同步与异步操作 第四十一课 irp异步完成 第四十二课 irp的取消与startio函数 第四十三课 自定义startio函数 第9章定时器54分钟3节 第四十四课 io定时器与dpc定时器 第四十五课 内核模式下的等待操作 第四十六课 时间函数与irp超时处理 第10章驱动程序调用驱动程序1小时3节 第四十七课 通过设备句柄调用驱动程序 第四十八课 设备指针调用驱动程序 第四十九课 自定义irp与ObReferenceObject 第11章分层过滤驱动 第五十课 分层驱动:枚举设备栈上的设备对象 第五十一课 编写过滤驱动程序 第五十二课 irp完成函数 第12章驱动程序开发高级技能 第五十三课 驱动程序的兼容性 第五十五课 驱动调试windbg与vmware 第五十六课 驱动调试vs vmware 第五十四课 驱动签名证书原理及制作 第五十七课 驱动调试神器virtualkd 第五十八课 汇编语言编写驱动之环境搭建 第五十九课 用汇编语言开发32与64位驱动程序
### 回答1: 《Windows环境下32位汇编语言程序设计》第4版是一本介绍在Windows操作系统下使用32位汇编语言进行程序设计的专业书籍。 本书详细介绍了使用32位汇编语言编写程序的基本知识和技巧。首先,读者将学习到如何安装和使用适用于Windows环境的汇编语言开发工具(如MASM)以及调试器(如WinDbg)。然后,书中详细介绍了汇编语言的基本语法和基本指令,包括数据类型、寄存器、内存访问等等。读者还将学习到如何编写简单的程序,如起始和退出代码、循环和条件语句、函数调用等等。 本书还介绍了如何使用汇编语言与Windows操作系统进行交互。读者将学习如何调用Windows API函数,如打开文件、创建窗口、画图等等,以及如何传递参数和处理返回值。此外,书中还介绍了如何编写多线程程序和使用动态链接库(DLL)。 《Windows环境下32位汇编语言程序设计》第4版适合有一定计算机基础的读者学习。它不仅适合想要深入了解计算机底层工作原理的人员,也适合想要进行底层开发的程序员。读者将通过学习汇编语言能够更好地理解计算机的工作原理,并能够编写高效、精确的程序。 总的来说,这本书以清晰的语言和丰富的示例介绍了在Windows环境下使用32位汇编语言进行程序设计的基本知识和技巧。它是一本很好的学习资源,可以帮助读者快速掌握汇编语言编程。 ### 回答2: 《Windows环境下32位汇编语言程序设计(第4版)》是一本介绍在Windows操作系统环境下使用32位汇编语言进行程序设计的教材。本书旨在帮助读者理解和应用汇编语言的基本概念和技巧,并通过实例演示如何在Windows平台上进行汇编程序开发。 本书首先介绍了计算机基础知识和汇编语言的基本概念,包括寄存器、内存和指令等。然后详细讲解了在Windows环境中使用汇编语言进行程序开发的方法和技巧,包括如何使用微软提供的Win32 API函数,如何处理窗口消息和事件,以及如何编写GUI界面等。 此外,本书还深入探讨了汇编语言在Windows操作系统中的各种应用,如文件操作、进程管理、线程编程等。读者可以学习如何使用汇编语言编写高效的程序,提高程序的性能和功能。 本书的特点有以下几个方面。首先,本书内容全面,结构合理,能够循序渐进地帮助读者掌握汇编语言的基本知识和技巧。其次,书中提供了大量实例和案例,通过实际演示和分析,帮助读者更好地理解和应用所学知识。再次,本书的内容具有实用性,读者可以直接将所学知识应用于实际项目中,提高开发效率和质量。 总之,《Windows环境下32位汇编语言程序设计(第4版)》是一本适合想要深入学习和应用汇编语言在Windows平台中的读者的优秀教材。它不仅具有较高的实用价值,还能够帮助读者提升编程能力和解决实际问题的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰非一日之寒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值