¥10000:报名赠价值4500元硬件设备
¥6000:不含硬件设备
01
培训详情
培训形式
通过讲解、演示和讲师引领的动手实验授课
直播时间
-每周六晚8:30 – 9:30,共15节
-名额有限,小班教学)
培训对象
软件工程师、信息安全领域的工程师和研究者
硬件设备
-基于ARM M核的GDK3开发套件
-基于ARM A核的幽兰代码本
-挥码枪硬件调试器
02
培训内容
本培训由《软件调试》作者张银奎主讲,深处着眼,浅出讲起,上调试器,看活代码,通过大量动手实验引领大家一起进入到ARM的世界中。
内容设计精心,分为三篇共15节课。从M核的中央处理器、存储与外设、RTOS,到A核的V8传奇、可信固件、U-Boot,再到融会贯通的函数调用和栈、页表和虚拟内存、异常和中断处理,每一讲都深入浅出地解析ARM系统的关键原理和调试技术。通过本课程,你将掌握熟练使用GDB、NDB等调试器,了解ARM平台的调试设施,熟悉常用固件和系统软件,从而在技术上迈上新的台阶。
通过本培训,学员可以在如下多个方面进阶获益:
-深刻理解ARM架构的技术精髓,包括三大系列,四大特权模式,安全/非安全两大阵营,以及ATF,TrustZone,CoreSight等关键技术;
-全面认识ARM平台的调试设施,包括自称载的本机调试和基于硬件调试器的外部调试;
-熟练使用GDB、NDB(挥码枪)两大调试器和很多其它软件工具(strace, dtc, readelf);
-熟悉ARM生态中的常用固件和系统软件,包括ATF、U-BOOT、WoA和Linux等。
03
讲师介绍
培训讲师 |PROFILE
格蠹科技创始人,微软全球最有价值技术专家(MVP),同济大学电子与信息工程学院特邀讲师,前英特尔亚太研发有限公司软件架构师。
《软件调试》、《格蠹汇编》的作者,新版《十万个为什么》电子分册撰稿人之一,《程序员》杂志调试之剑栏目作者 。
1996年毕业于上海交通大学信息与控制工程系,在软件产业工作20年,在多家跨国公司历任开发工程师、软件架构师、开发经理、项目经理等职务,对 IA-32 架构、操作系统内核、驱动程序、虚拟化技术、云计算、软件调优、尤其是软件调试有较深入研究。
从2005年开始公开讲授“Windows内核及高级调试”课程,曾在微软的Webcast和各种技术会议上做过《Windows Vista内核演进》、《调试之剑》(全球软件战役研究峰会)、《感受和思考调试器的威力》(CSDN SD2.0大会)、《Windows启动过程》、《如何诊断和调试蓝屏错误》、《Windows体系结构——从操作系统的角度》(以上三个讲座都是微软“深入研究Windows内部原理系列”的一部分)等。
翻译(合译)作品有《现代x86汇编语言编程》、《21世纪机器人》、《观止——微软创建NT和未来的夺命狂奔》、《数据挖掘原理》、《机器学习》、《人工智能:复杂问题求解的结构和策略》等。
04
培训目录
序
ARM的三大系列,M系列代表之GDK3,A系列代表之RK3588,内部调试器之GDB和NDB(Nano code Debugger),外部调试器之挥码枪,ARM文档大观之ARM和TRM,上调试器和以物为师
上篇:M核精华
ARM简史,ARM指令集,THUMB指令,通用寄存器,Banked寄存器,特殊寄存器,常用指令,谓词执行,访问内存的指令,ARM反汇编,观看函数,在NDB中理解ARM的应用层指令和寄存器
片上内存,片上闪存,地址空间,哈佛架构,中断向量表,复位后的第一条指令,M核固件概述,使用GNU工具链构建固件,使用挥码枪烧录固件
M核的软件栈,HAL,驱动,RTOS背景,CMSIS,RTX,线程创建和管理,多线程同步,在调试器下观察线程
ARM架构手册定义的调试架构(Debug Architecture),自承载调试(Self-hosted Debug),外部调试,CoreSight,调试事件,面向调试器编程
“虽然ARM主推的SWD通信方式只有三根很普通的线:时钟、数据、地,但是它工作的非常稳定。能用低廉的硬件把硬件调试实现的如此稳定,其中的一个主要原因是协议定义的优秀,包括400多页的调试接口协议(ADI),访问内部资源的CoreSight技术,以及散布在整个ARM架构中的调试支持。”
“三线”代表ARM硬件调试器常用的三根线。撸豹模仿“撸猫”之语。ARM能用三根线把芯片硬件调试实现的如此精湛,举重若轻,把凶猛的CPU控制的服服贴贴,“撸豹”如同“撸猫”一样,真是让人赞叹,神乎其技!。
——张银奎 《三线撸豹,神乎其技!》
中篇:A核精华
ARMv8新境界,AA64,A64指令集,四大特权级别,安全与非安全(NS),TrustZone,通用寄存器,系统寄存器,访问系统寄存器,使用NDB读写系统寄存器
上电过程,M核护驾,ATF(ARM Trusted Firmware)代码,分阶段初始化,从BL0到BL3,Power State Coordination Interface (PSCI),调用ATF的服务,TEE OS,与TEE OS交互,使用NDB观察TEE核PSCI行为
ARM生态中成长起来的U-BOOT,代码结构,两大阶段,U-BOOT搬家,使用U-BOOT的命令行,使用挥码枪调试U-BOOT,神奇的x18寄存器,修改U-BOOT代码,定制启动流程
五花八门的ARM硬件,林纳斯发怒,x86和PC的先进经验,设备树描述,DTS,DTB,编译方法,传递内核命令行,Linux中解析设备树的代码,根据设备树加载驱动的过程,使用DTC工具逆向设备树
下篇:融会贯通
分支指令,调用子函数,栈,LR寄存器,栈指针寄存器,压栈指令,栈帧,栈上的数据组织,栈回溯,栈回溯的原理,栈溢出,返回到libc,栈保护,在NDB下认识栈上的数据
地址翻译,页表,页表格式,MMU,ARM的TTBR寄存器,地址翻译过程,页属性,访问权限,TLB,进程切换,缺页异常,观察页表,手工翻译内存地址
CPU异常,同步异常,异步异常,ESR寄存器,异常进入,异常退出,中断处理,GIC,GIC的结构,GIC的配置,GIC的初始化,Linux内核中的中断处理代码
self-hosted debug,端点指令和软件端点,硬件断点寄存器,监视点寄存器和监视点,向量捕捉(Vector Catch),单步跟踪,大范围内存监视,使用NDB的硬件断点和监视点功能
WoA的背景和未来,二进制翻译和兼容x86程序,NT架构,KD引擎,调试符号服务器,使用挥码枪调试NT内核,NT内核的关键数据结构
so和用户空间注入,基于LD_PRELOAD的注入,strace和系统调用,内核根件之Reptile,LKM,构建和加载,隐藏文件,隐藏进程,反调试原理和化解
05
立即购课
¥10000 《ARM系统深度调试与逆向》
立即报名,开启你的ARM调试超能力
送
幽兰代码本
GDK3开发套件
挥码枪硬件调试器
¥6000(不含硬件设备)
不要犹豫!跟随张银奎大佬的脚步,你将成为ARM生态链上的调试高手,应对挑战如履平地!
点击阅读原文查看更多