汇编语言与逆向技术基础 零、绪论
汇编语言与逆向技术基础 零、绪论
成绩评定
- 平时成绩 10% 考勤、课上回答问题(雨课堂)
- 实验成绩 20% 课后习题、实验报告(学堂在线)
- 期末考试 70% 闭卷
课程内容
- 汇编语言
- Intel 处理器:x86 汇编;华为鲲鹏处理器:ARM汇编
- 逆向分析技术
- 静态逆向分析
- 动态逆向分析
- Windows内核
- 可执行文件结构
- 系统内核
- 软件保护
汇编语言的用处
- 软件加固 Software Hardening
- 水印、指纹、混淆、版权保护
- 软件自动修复 Automated Repair
- 软件补丁 Patch,不用重新编译 Windows 系统
- 软件插装 Instrumentation
- 虚拟化技术
- 软件优化 Optimization
- 软件调试 Debugging
什么是汇编语言
汇编语言也称为符号语言
用助记符代替机器指令的操作码,如机器指令55,对应push ebp
用地址符号或标号代替指令或操作数的地址
例如:将一个数据从内存读到CPU的寄存器中
汇编语言类型
CPU
- 寄存器
- 传送指令
- 算数指令
- 位运算指令
- 串操作指令
- 跳转指令
内存
- 寻址方式
逆向分析技术
动态逆向分析
- OllyDbg:用户态的动态调试
- WinDbg:内核态的动态调试
静态逆向分析
- IDA Pro
用户态动态逆向分析
- 内存映射
- 查看线程、栈、代码
- 断电
- 加载DLL、跟做
- 异常处理、修补
- 分析shellcode
- 插件、脚本调试
内核态动态逆向分析
- WinDbg
- 驱动与内核代码
- 双系统
- 微软符号表
- 内核调试
- Rootkit
静态逆向分析
- 识别汇编中的C语言代码结构
- 识别 if 分支结构
- 识别循环
- 识别函数调用
- 识别 switch 结构美化
- 识别数组、结构体、链表
Windows 内核
可执行文件结构
PE 文件结构:PE 文件头、区块、输入表、输出表、基址重定位、资源、TLS初始化、调试目录、延迟载入
Windows 内核基础
- 内存空间、权限空间布局
- Windows 与内核启动过程
- Windows Ring3 和 Ring0 通信
- 内核函数和内核驱动模块
- 内核对象
- SSDT
- TEB 和 PEB
Windows 异常处理
- 异常处理的基本概念
- SEH 的概念及基本只是
- SEH 异常处理程序原理及设计
- 向量化异常处理
软件保护
- 序列号
- 警告窗口
- 时间限制
- 菜单功能限制
- KeyFile 保护
- 网络验证
- 光盘检测
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment