《全栈安全》- 逆向入门篇

初级 · 14.3

5人学过

全栈安全 汇编逆向
¥298.00购买
  • 课程简介
  • 目录
  • 作者信息
  • 教程资料

前置基础 C语言 CPP

学完可以到达一个什么程度及课程介绍:

了解汇编语言的基本语法和编程结构,包括数据定义、指令格式、控制结构(如条件跳转和循环)、寄存器使用和内存管理等。掌握汇编语言与计算机体系结构之间的关系,能够直接操作硬件资源。


- **系统编程**:能够编写操作系统内核、驱动程序或底层系统工具。

- **性能优化**:能够对现有程序进行性能分析,并通过汇编代码优化实现更高效的运行。

- **逆向工程与安全**:具备一定的逆向工程能力,能够分析和理解软件的底层实现,常用于安全研究和漏洞分析。

- **嵌入式系统开发**:能够在资源受限的环境中编写高效的嵌入式程序。

通过学习汇编语言,你将获得对计算机系统的深入理解,能够在多个技术领域中应用这些知识。


基础篇

  • 01.0 环境-Visual Studio配置搭建
  • 01.1 环境-汇编执行框架
  • 01.2 原理-机器语言与汇编语言
  • 01.3 原理-高级语言与汇编语言
  • 01.4 进制-进制定义及规则
  • 01.5 进制-进制映射关系
  • 01.6 进制-进制运算原理
  • 01.7 进制-进制转换算法
  • 01.8 进制-进制拓展
  • 01.9 数据-存储宽度
  • 02.0 数据-内存边界
  • 02.1 数据-数据截断原理
  • 02.2 数据-正数与负数区分
  • 02.3 数据-整数底层规则
  • 02.4 数据-反汇编分析
  • 02.5 存储-寄存器
  • 02.6 存储-通用寄存器对应关系
  • 02.7 存储-寄存器包含关系测试
  • 02.8 存储-段寄存器特性
  • 02.9 存储-指令指针寄存器
  • 03.0 标志-标志寄存器结构以及标志位
  • 03.1 标志-Carry Flag
  • 03.2 标志-Parity Flag
  • 03.3 标志-Auxiliary Carry Flag
  • 03.4 标志-Zero Flag
  • 03.5 标志-Sign Flag
  • 03.6 标志-Direction Flag
  • 03.7 标志-Overflow Flag
  • 03.8 标志-EFLAGS寄存器
  • 03.9 内存-内存特性
  • 04.0 内存-内存管理
  • 04.1 内存-内存端序
  • 04.2 内存-内存读写
  • 04.3 内存-内存寻址
  • 04.4 内存-反汇编寻址
  • 04.5 框架-C语言控制台程序
  • 04.6 框架-汇编程序框架
  • 04.7 框架-程序指令集
  • 04.8 框架-工作模式
  • 04.9 框架-动态调用与函数声明
  • 05.0 框架-段的定义
  • 05.1 框架-数据段的三种形式
  • 05.2 框架-代码段的特性
  • 05.3 框架-程序入口点及周期
  • 05.4 指令-加法运算ADD&ADC&INC
  • 05.5 指令-减法指令SUB&SBB&DEC
  • 05.6 指令-补码NEG
  • 05.7 指令-BCD&DAA&DAS
  • 05.8 指令-无符号乘法MUL
  • 05.9 指令-有符号乘法IMUL
  • 06.0 指令-除法指令DIV&IDIV
  • 06.1 指令-除零错误&除法溢出&数据拓展
  • 06.2 指令-位运算逻辑与AND
  • 06.3 指令-位运算逻辑或OR
  • 06.4 指令-位运算逻辑异或XOR
  • 06.5 指令-位运算取反NOT
  • 06.6 指令-操作数类型
  • 06.7 路线-逆向入门课程介绍
  • 06.8 拓展-Visual Studio 调试介绍
  • 06.9 堆栈-线程栈结构
  • 07.0 堆栈-指令PUSH
  • 07.1 堆栈-指令POP
  • 07.2 堆栈-指令PUSHAD & POPAD
  • 07.3 堆栈-指令PUSHFD & POPFD
  • 07.4 堆栈-指令CALL & RET
  • 07.5 堆栈-指令MOV
  • 07.6 堆栈-指令REP & STOS
  • 07.7 堆栈-函数调用过程堆栈图结构
  • 07.8 堆栈-指令调用规则解析
  • 07.9 堆栈-堆栈结构特征与回溯嵌套调用

逆向篇

  • 08.0 逆向-代码堆栈回溯栈帧
  • 08.1 逆向-模块符号信息解析
  • 08.2 逆向-DBG工具下载与配置
  • 08.3 逆向-DBG逆向调试技巧
  • 08.4 逆向-IDA交叉引用回溯
  • 08.5 函数-线程栈区参数传递
  • 08.6 函数-返回值寄存器使用规则
  • 08.7 函数-反汇编还原正向代码
  • 08.8 函数-调用约定规则解析
  • 08.9 逆向-函数结构堆栈参数返回分析技巧
  • 09.0 逆向-DBG逆向调试技巧
  • 09.1 逆向-IDA分析还原思路
  • 09.2 逆向-堆栈逃逸改变程序执行流程
  • 09.3 逆向-获取线程栈区信息
  • 09.4 数据-整数类型数据传输MOV
  • 09.5 数据-有符号整数存储规则及存储端序
  • 09.6 数据-整数数据溢出
  • 09.7 数据-指令数据类型转换拓展MOVZX & MOVSX
  • 09.8 逆向-全局变量与局部变量特征逆向
  • 09.9 逆向-全局内容PE节区转文件数据并修改
  • 10.0 小数-实数编码规则以及寄存器使用
  • 10.1 小数-指令FPU & SSE & AVX 汇编实例
  • 10.2 小数-IEEE小数编码存储规则
  • 10.3 小数-汇编指令学习规则与方法
  • 10.4 字符-编码映射规则以及区域设置
  • 10.5 字符-串流数据截断处理与映射
  • 10.6 指令-指令ASM_STRLEN
  • 10.7 指令-指令ASM_STRCPY MOVSB
  • 10.8 指令-指令DF - STOS - MOVS - LODS - STOS - CMPS
  • 10.9 拓展-堆栈结构 - 逆向思路
  • 11.0 拓展-数字存储 - 编码规则
  • 11.1 拓展-字符安全 - 存储校验
  • 11.2 指令-ADD - SUB
  • 11.3 指令-MUL - CDQ - DIV
  • 11.4 指令-INC - DEC - NEG - LOCK
  • 11.5 指令-AND
  • 11.6 指令-OR
  • 11.7 指令-NOT
  • 11.8 指令-XOR
  • 11.9 指令-CMP
  • 12.0 指令-TEST
  • 12.1 指令-JCC
  • 12.2 逆向-单行IF语句反汇编逆向分析
  • 12.3 逆向-多行IF语句分支处理
  • 12.4 逆向-多条件IF语句执行流程
  • 12.5 逆向-三目运算符特征识别
  • 12.6 逆向-多表达式逻辑关系过滤
  • 12.7 逆向-SWITCH语句对标多条件IF区别
  • 12.8 逆向-SWITCH结构跳转表解析
  • 12.9 逆向-SWITCH跳转表与中转索引表关联
  • 13.0 逆向-SWITCH折半查找策略
  • 13.1 逆向-SWITCH结构变形体
  • 13.2 指令-LOOP
  • 13.3 指令-REP
  • 13.4 逆向-FOR循环执行顺序探测
  • 13.5 逆向-WHILE循环
  • 13.6 逆向-DOWHILE循环GOTO语句
  • 13.7 逆向-嵌套结构回溯
  • 13.8 逆向-CONTINUE BREAK语句
  • 13.9 逆向-缓冲区溢出案例
  • 14.0 逆向-数组内存布局
  • 14.1 逆向-数组寻址公式与越界溢出覆盖
  • 14.2 逆向-多维数组组合定位
  • 14.3 逆向-复合寻址与嵌套关联
  • 14.4 逆向-数组缓冲区溢出触发机制
  • 14.5 指令-SHL - SHR
  • 14.6 指令-SAL - SAR
  • 14.7 数据-数据移动存储与二进制数据转换
  • 14.8 数据-数据加解密与完整性

进阶篇

  • 14.9 逆向-数组地址传递与数据影响
  • 15.0 逆向-数组返回值内存转换
  • 15.1 逆向-指针数组与二维数组转换及数据隐藏
  • 15.2 逆向-多维数组寻址公式
  • 15.3 逆向-指针的概念
  • 15.4 逆向-指针变量赋值与解引用反汇编
  • 15.5 逆向-指针运算规则与技巧
  • 15.6 逆向-指针与引用的区别以及特性
  • 15.7 逆向-指针与引用参数传递与返回堆栈
  • 15.8 逆向-多级指针赋值与解引用以及内存关联
  • 15.9 逆向-指针运算表达式与数据搜索
  • 16.0 逆向-指向数组的指针以及寻址运算
  • 16.1 逆向-指针优缺点以及安全性
  • 16.2 逆向-函数指针使用以常规CALL区别
  • 16.3 逆向-E8-FF-CALL-指令计算公式
  • 16.4 逆向-段寄存器-段选择子-段描述符-段属性限制
  • 16.5 逆向-结构体开发知识点汇总
  • 16.6 逆向-结构体内存布局与对齐规律
  • 16.7 逆向-对象模型与存储规则
  • 16.8 逆向-成员偏移与this指针
  • 16.9 逆向-thiscall执行规则和寄存器特征
  • 17.0 逆向-嵌套调用约定参数传递规则
  • 17.1 逆向-静态成员变量内存特性
  • 17.2 逆向-类对象参数传递编译器优化策略
  • 17.3 逆向-类对象数据返回内存管理转换
  • 17.4 逆向-构造函数与析构函数触发调用
  • 17.5 逆向-堆内存对象不同情况管理维护
  • 17.6 逆向-全局对象构造管理
  • 17.7 逆向-类外强制访问私有与保护成员变量
  • 17.8 逆向-构造函数重载与匹配定位
  • 17.9 逆向-拷贝构造函数与深拷贝
  • 18.0 逆向-构造函数禁用与默认参数传递
  • 18.1 逆向-静态成员变量与函数特性
  • 18.2 逆向-常成员函数内存布局及编译器限制
  • 18.3 逆向-类对象继承下的对象模型
  • 18.4 逆向-单继承下的构造析构的执行流程
  • 18.5 逆向-嵌套单继承下的对象特征
  • 18.6 逆向-多继承下的对象模型与初始化顺序
  • 18.7 逆向-菱形继承下数据包含与路径解析
  • 18.8 逆向-虚函数指针与地址表
  • 18.9 逆向-多态下的对象模型与虚函数地址寻址管理
  • 19.0 逆向-多继承下的结构布局以及多重表定位
  • 19.1 逆向-动态绑定调用与对象数据隔离
  • 19.2 逆向-单继承对象模型下的虚表机制以及布局
  • 19.3 逆向-多继承类的关联以及多重表分配

编译器篇

  • 19.7 MASM-汇编中的保留字&标识符&伪指令
  • 19.7 MASM-纯汇编环境开发及混合编程
  • 19.8 MASM-指令组成部分标号与指令助记符
  • 19.9 MASM-指令操作数格式以及样式
  • 20.0 MASM-数据定义与连续内存存储管理
  • 20.1 MASM-等号伪指令与宏定义替换
  • 20.2 MASM-EQU伪指令使用规则
  • 20.3 MASM-当前地址计数器与数据长度计算
  • 20.4 MASM-整数类型定义与存储
  • 20.5 MASM-实数数据存储与使用
  • 20.6 MASM-字符与字符串存储与内容输出
  • 20.7 MASM-OFFSET伪指令使用
  • 20.8 MASM-指针操作与数据寻址公式
  • 20.9 MASM-ALIGN伪指令
  • 21.0 MASM-TYPE & LENGTHOF & SIZEOF
  • 21.1 MASM-DATA & LABEL
  • 21.2 MASM-TYPEDEF
  • 21.3 MASM-ENTER & LEAVE
  • 21.4 MASM-INVOKE & PARAM LIST
  • 21.5 MASM-PROTO
  • 21.6 MASM-OFFSET & ADDR
  • 21.7 MASM-USES
  • 21.8 MASM-LOCAL
  • 21.9 MASM-条件结构与跳转标号
  • 22.0 MASM-EFLAG & JCC
  • 22.1 MASM-跳转指令全解
  • 22.2 MASM-汇编跳转
  • 22.3 MASM-.IF .ELSE .ELSEIF .ENDIF
  • 22.4 MASM-条件结构选择表达式
  • 22.5 MASM-循环结构纯汇编流程梳理
  • 22.6 MASM-.WHILE .ENDW .BREAK
  • 22.7 MASM-.REPEAT .UNITL
  • 22.8 MASM-STRUCT
  • 22.9 MASM-结构体寻址定位
  • 23.0 MASM-结构体嵌套与伪指令复合使用
  • 23.1 MASM-UNION
  • 23.2 MASM-MACRO
  • 23.3 MASM-WIN32 API CODE

X64篇

  • 23.4 X64-汇编知识框架路线
  • 23.5 X64-指令集拓展与内存宽度变化及寄存器差异
  • 23.6 X64-WOW64子系统与兼容模式
  • 23.7 X64-寄存器新增与拓展机制
  • 23.8 X64-虚拟内存地址划分与规范
  • 23.9 X64-不同模式下调用约定差异
  • 24.0 X64-堆栈结构变化以及参数传递
  • 24.1 X64-缓冲区混合使用与堆栈空间预留
  • 24.2 X64-函数调用地址区间及长跳
  • 24.3 X64-CPP & ASM 混合编程
  • 24.4 X64-全局变量地址计算与指令解析
  • 24.5 X64-内存地址与指针宽度
  • 24.6 X64-INTEL白皮书手册指令攻略
  • 24.7 X64-CPUID & intrin
  • 24.8 X64-CPU权限等级划分以及RING0 RING3区别
  • 24.9 X64-标志寄存器
  • 25.0 X64-Segment Register (Attribute)
  • 25.1 X64-Segment Selecotr (RPL TI INDEX)
  • 25.2 X64-Segment Descrtptor(Information)
  • 25.3 X64-Control Register(CR0 CR2 CR3 CR4)
  • 25.4 x64-CR0.PG CR0.PE CR2.PAGE-FAULT LINEAR ADDRESS
  • 25.5 X64-EPROCESS DRIECTORY TABLE BASE
  • 25.6 X64-linear & physical address
  • 25.7 X64-Debug Register
  • 25.8 X64-VIRTUAL LOGICAL EFFECTIVE LINEAR PHYSICAL ADDRESS
  • 25.9 X64-MAX ADDR SIZE
  • 26.0 X64-断点的种类的区别以及内存影响
  • 26.1 X64-动态调试-single step
  • 26.2 X64-动态调试-break point
  • 26.3 X64-基础内容完结与学习路线

调试篇

  • 26.4 调试-调试器项目设计与功能实现
  • 26.5 调试-调试器打开以及附加脱离函数
  • 26.6 调试-调试事件处理与类型解析
  • 26.7 调试-数据采集与程序框架设计
  • 26.8 调试-调试器命令内容拆解提取
  • 26.9 调试-用户交互设计框架完善
  • 27.0 调试-任务派发处理机制封装
  • 27.1 调试-创建调试进程并完善校验
  • 27.2 调试-拦截处理调试事件消息
  • 27.3 调试-处理调试事件以及数据获取
  • 27.4 调试-创建进程调试事件解析
  • 27.5 调试-日志信息记录管理
  • 27.6 调试-收集退出数据_1
  • 27.7 调试-收集退出数据_2
  • 27.8 调试-程序异常内存文件转储
  • 27.9 调试-进程的退出事件封装处理
  • 28.0 调试-线程存储数据结构体封装
  • 28.1 调试-线程优先级上下文获取以及线程基本信息查询
  • 28.2 调试-线程环境块与堆栈信息及保护页面
  • 28.3 调试-堆栈使用情况数据化
  • 28.4 调试-线程执行地址回溯与模块信息定位以及文件版本比对
  • 28.5 调试-可执行模块指纹标记定位获取与判断
  • 28.6 调试-节区结构过滤与内存属性
  • 28.7 调试-线程创建拓展信息测试
  • 28.8 调试-线程内核用户态时间收集
  • 28.9 调试-线程退出信息封装
  • 29.0 调试-模块结构体特征数据
  • 29.1 调试-模块卷标文件映射回溯
  • 29.2 调试-文件结构二进制数据解析
  • 29.3 调试-模块导入导出表定义遍历_1
  • 29.4 调试-模块导入导出表定义遍历_2
  • 29.5 调试-动态链接库模块属性探测
  • 29.6 调试-模块加载拓展信息
  • 29.7 调试-模块卸载
  • 29.8 调试-异常内核执行派发路线
  • 29.9 调试-异常事件结构体解析
  • 30.0 调试-结构化异常(SEH)
  • 30.1 调试-向量化异常(VEH)
  • 30.2 调试-异常种类与异常传播修复
  • 30.3 调试-异常回调及断点结构管理封装
  • 30.4 调试-断点结构初始化及设置断点流程对接
  • 30.5 调试-软件断点设置以及节点关联管理器封装
  • 30.6 调试-断点移除及数据剥离管理
  • 30.7 调试-用户交互处理完善
  • 30.8 调试-断点事件回调框架搭建
  • 30.9 调试-断点捕获以及调试信息获取
  • 31.0 调试-调试体系交互处理
  • 31.1 调试-单步执行处理
  • 31.2 汇总-逆向工程入门_开发篇学习拓展
  • 31.3 汇总-逆向工程入门_逆向篇学习拓展
  • 31.4 汇总-逆向工程入门_调试篇学习拓展
  • 31.5 汇编-逆向工程提升_学习路线与方向
0xCC

教程资料购买后才能查看或下载。