拍案惊奇——GDB调试器以战说法

  拍案惊奇——

    GDB调试器以战说法    

Strike the table in surprise

Debug Wars using GDB

965dcabe3a2530c94cdd5d5cdc25d725.png

随着软件复杂度的不断增加,软件调试的难度越来越大。以调试器为核心的调试技术是征服软件世界的一把利剑。要想成为软件高手,认真修炼调试器这门剑法是值得投入的。

本系列讲座通过8个精选案例让参与者在实战中“事上磨练”,快速进阶。这些案例都源于真实的软件产品和项目,既有深度,又有广度,覆盖Linux平台上的常用软件和典型调试场景。涵盖的技术包括交互式调试、转储文件分析、逆向工程、反调试(加壳)与化解等。

本系列课程由《软件调试》和《格蠹汇编》的作者张银奎(格蠹老雷)亲自讲授,上调试器抓真BUG,以战说法,剖微穷深。

74a850a883c83370c3329c35f0b51d2a.png

  形式   

8次线上课程,

每次60分钟

  时间   

2023年10月21日起,

每周六晚上8:00 - 9:00

    Strike the table in surprise    

   Debug Wars using GDB   

   战役1:谁截断了我的指针?  

要点

64位指针到底长什么样?汇编级别单步跟踪、看返回值、神奇的类型转换指令、符号扩展、地址空间。

工具和主要技能:

GDB、ni、si、disp、disassemble。

知识点

段错误、调用规约。

c9336e16103a71fdea2f7a1f3f50a67b.png

   战役2:何人传来空指针? 

要点

Linux下重要后台服务(Daemon)随机崩溃、深挖到底、竟然与C语言的规范有关、让你深刻认识C与C++的一个大不同之处、感受著名的头文件陷阱。

工具和主要技能

GDB、GCC、map、dmesg、调试Linux应用程序、反汇编、插入代码JIT调试。

知识点

虚拟内存、分页机制、页表、缺页异常、段错误、空指针、AT&T汇编和Intel汇编、调用规约。

b3831123919fc4b8fdf9d28fa8fc67d1.png

   战役3:文件混乱是真的吗?  

要点

应用程序与驱动程序通信时、驱动程序总是收到错误的数据、打印出来观察、竟然是日志信息送给了驱动。

工具和主要技能:

GDB、printk、dmesg。

知识点

虚拟文件系统、Linux驱动程序、文件对象和描述符、与应用程序通信、标准文件。

fca55b545451381ff5bd0f10fe9c3dcd.png

   战役4:线程拥堵之谜   

要点

多线程并行、线程同步、lock和unlock、线程死锁、使用GDB观察多线程、LLL系列函数。

工具和主要技能

GDB、thread apply all。

知识点

线程、同步对象。

4738011f5bb64b3ad1d62ec8b8b7e620.png

   战役5:栈上的缓冲区溢出   

要点

局部变量越界、栈大小、栈帧、栈帧布局、gcc的栈保护机制、栈的优点、在栈上动态分配。

工具和主要技能:

GDB、gcc。

知识点

栈缓冲区溢出、stack protector。

d0c7ef594c8ef0f175ce91d1907c601d.png

   战役6:谁踩了我的数据? 

要点

使用GDB等多种工具深度解析Linux下的用户态堆和动态内存分配的典型问题、包括多次释放、溢出等、现场演练使用GDB跟踪ptmalloc堆的技巧以及使用valgrind工具的方法。

工具和主要技能

GDB、valgrind、交互式调试、调试内存有关的问题。

知识点

内存的多层管理、堆的结构、arena、堆块、分配和释放过程、valgrind工作原理。

c14e9bfa1a17ffd76812781af6618a31.png

   战役7:反调试与化解   

要点

调试器工作原理、反调试的背景、反调试的一般方法、检查调试器、隐藏调试器、记时法反跟踪、倒车调用。

工具和主要技能:

GDB、objdump、调试器检测、Anti-Debug和应对。

知识点

ptrace、信号、自定义信号处理、单步标志、硬件断点寄存器、异常处理器、内存HASH检测。

015526585d500cd079d9148b150c8a99.png

拍案惊奇——GDB调试器以战说法_第1张图片

   战役8:CORE文件产生和分析   

要点

内存转储、CORE之名、产生core文件的方法、使用gdb分析core文件、file命令、常遇到的障碍、跨机器分析、定制库搜索路径。

工具和主要技能

GDB、readelf、generate-core-file。

知识点

ELF格式和CORE格式、libc。

32a75fd76675c2dbb43b891b5c1afbf6.png

  讲师介绍   

拍案惊奇——GDB调试器以战说法_第2张图片

张银奎

Raymond Zhang

绰号:“格蠹老雷”

1996年毕业于上海交通大学信息与控制工程系,在软件产业工作20余年,一多半时间任职于INTEL公司的上海研发中心,先后在PASD、DEG、CPG、PCCG、VPG等部门工作。业余时间喜欢写作和参与各类技术会议,发文数百万字,探讨各类软件问题,其中《在调试器里看阿里的软件兵团》等文章广为流传。2015年起获微软全球最有价值技术专家(MVP)奖励。著有《软件调试》和《格蠹汇编》二书,曾经主笔《程序员》杂志调试之剑专栏 。

在多家跨国公司历任开发工程师、软件架构师、开发经理、项目经理等职务,对 IA-32 架构、操作系统内核、驱动程序、虚拟化技术、云计算、软件调优、尤其是软件调试有较深入研究。从2005年开始公开讲授“Windows内核及高级调试”课程,曾在微软的Webcast和各种技术会议上做过《Windows Vista内核演进》、《调试之剑》(全球软件战役研究峰会)、《感受和思考调试器的威力》(CSDN SD2.0大会)、《Windows启动过程》、《如何诊断和调试蓝屏错误》、《Windows体系结构——从操作系统的角度》(以上三个讲座都是微软“深入研究Windows内部原理系列”的一部分)等。翻译(合译)作品有《现代x86汇编语言编程》、《21世纪机器人》、《观止——微软创建NT和未来的夺命狂奔》、《数据挖掘原理》、《机器学习》、《人工智能:复杂问题求解的结构和策略》等。

  报名或垂询   

标准价格:680元

包括

  •  8次线上讲座

  •  2年内使用NanoCode客户端回看录像

  •  课程期间微信群讨论和答疑

优惠条款

  • 兰舍成员5折优惠

试验环境:幽兰代码本

购买方式

  • Nano Code内购买(课程号:260)

    在Nano Code的Nano视频中直接购买,购买后会通过Nano Code的绑定邮箱,发送上课方式到该邮箱内。

    *注:Nano Code中的课程价格默认为标准价格680元,如符合优惠条款,可联系课程顾问退还差价。

  • 微信 / 支付宝 付款

    完成付款后,请发送邮件到[email protected]进行登记,上课方式也会发送到该发件邮箱内。

拍案惊奇——GDB调试器以战说法_第3张图片

拍案惊奇——GDB调试器以战说法_第4张图片

联系我们

课程顾问:Lisa

咨询电话:13801874134 (微信同号)

报名邮箱:[email protected]

  公司付款信息   

账户名称:格蠹信息科技(上海)有限公司

开户行:招商银行股份有限公司上海浦江镇支行

账号:1219 3085 8010 501

【盛格塾】

正心诚意,格物致知

人文情怀审视软件,以软件技术改变人生

拍案惊奇——GDB调试器以战说法_第5张图片

格友公众号

拍案惊奇——GDB调试器以战说法_第6张图片

盛格塾小程序

扫描上方二维码或在微信中搜索“盛格塾”小程序

可以阅读更多文章和有声读物

往期推荐

穿越两大空间的调用栈

幽兰代码本——开源软件实践家

戒慎乎不睹,大模型体验记

LINUX平台高级调试和优化(庐山太乙站)

你可能感兴趣的:(拍案惊奇——GDB调试器以战说法)