摘要1、课程目标 1. 理解为什么壳需要动态获取API 2. 掌握通过PEB获取模块列表的方法 3. 学会在x86和x64下获取Kernel32基址 4. 理解模块列表的遍历方法 2、名词解释 3、使用工具 - Visual Studio 2022 - x64dbg - WinDbg - Process Hacker 4、技术原理 4.1、PEB结构 4.2、LDRDATATABLEENTRY结构 5、代码实现 5.1、x86获取Kernel32基址 5.2、x64获取Kernel32基址 5.3、使用哈希比较模块名 5.4、壳中的实际使用 6、课后作业 1. 实现x86和x64版本 - 编写获取Kernel32基址的代码 - 使用x64dbg验证正确性 - 测试不同Windows版本 2. 实现哈希查找模块 -…
摘要1、课程目标 1. 理解加密壳的概念和作用 2. 掌握加壳的基本原理和流程 3. 了解常见的加壳技术 4. 理解壳与免杀的关系 2、名词解释 3、使用工具 - Visual Studio 2022 - x64dbg - PE-bear - CFF Explorer - DIE (Detect It Easy) 4、技术原理 4.1、加壳的作用 4.2、加壳流程 4.3、壳的分类 5、代码实现 5.1、壳的基本结构 5.2、简单XOR加密/解密 5.3、获取当前模块基址 5.4、壳的编译和提取 5.5、加壳工具框架 6、课后作业 1. 分析UPX壳 - 使用x64dbg分析UPX壳的执行流程 - 找出OEP - 理解解压算法 2. 设计简单壳结构 - 设计壳的配置结构 - 设计加密方案 - 规划解密流程 3.…
摘要1、课程目标 1. 综合运用PE结构知识 2. 实现完整的PE解析器 3. 实现PE加载器和修改器 4. 掌握PE在安全开发中的应用 2、名词解释 3、使用工具 - Visual Studio 2022 - CFF Explorer - x64dbg - IDA Pro - PE-bear 4、技术原理 4.1、PE结构综合图 5、代码实现 5.1、完整PE解析器 5.2、完整PE加载器 5.3、PE修改器 5.4、PE分析工具主程序 6、课后作业 1. 编写完整PE分析工具 - 支持所有数据目录解析 - 支持导出到JSON/XML - 支持PE对比功能 2. 实现反射式DLL加载器 - 无文件落地加载DLL - 自动处理导入和重定位 - 支持卸载功能 3. 研究PE保护技术 - 分析常见加壳方式 -…
摘要1、课程目标 1. 理解PE重定位的原理和必要性 2. 掌握重定位表的结构和解析方法 3. 学会手动进行重定位修复 4. 理解重定位在Shellcode和注入中的应用 2、名词解释 3、使用工具 - CFF Explorer - PE-bear - x64dbg - IDA Pro 4、技术原理 4.1、为什么需要重定位 4.2、重定位表结构 4.3、重定位表布局 5、代码实现 5.1、解析重定位表 5.2、执行重定位 5.3、手动PE加载器中的重定位 5.4、重定位在Shellcode中的应用 6、课后作业 1. 编写重定位表解析器 - 显示所有重定位块 - 显示每个重定位项详情 - 统计各类型数量 2. 实现PE手动加载器 - 加载PE到内存 - 执行重定位 - 解析导入表 - 调用入口点 3.…
摘要1、课程目标 1. 理解PE资源的组织结构 2. 掌握资源表的三级目录结构 3. 学会提取和修改PE资源 4. 了解资源在木马开发中的应用 2、名词解释 3、使用工具 - Resource Hacker - CFF Explorer - PE-bear - ResEdit 4、技术原理 4.1、资源表三级结构 4.2、资源目录结构 4.3、标准资源类型 5、代码实现 5.1、解析资源表 5.2、提取资源 5.3、资源在木马开发中的应用 6、课后作业 1. 编写资源提取工具 - 列出所有资源 - 提取指定类型的资源 - 支持提取图标和位图 2. 实现资源嵌入器 - 向PE文件添加资源 - 替换现有资源 - 修改版本信息 3. 分析资源隐写应用 - 在资源中隐藏数据 - 从资源加载ShellCode -…
摘要1、课程目标 1. 理解PE导出机制的工作原理 2. 掌握导出表结构及其解析方法 3. 理解导出转发机制 4. 学会通过导出表查找函数 2、名词解释 3、使用工具 - CFF Explorer - PE-bear - Dependency Walker - dumpbin /exports 4、技术原理 4.1、导出表结构 4.2、导出目录结构 4.3、按名称查找函数流程 5、代码实现 5.1、解析导出表 5.2、按名称/序号查找导出函数 5.3、导出表遍历器 6、课后作业 1. 编写完整的导出表解析器 - 显示所有导出函数 - 区分名称导出和序号导出 - 检测和解析转发函数 2. 实现自定义GetProcAddress - 从内存映像查找函数 - 支持名称和序号查找 - 处理转发情况 3.…
摘要1、课程目标 1. 理解PE导入机制的工作原理 2. 掌握导入表结构及其解析方法 3. 理解IAT的作用和工作方式 4. 学会修改和添加导入表项 2、名词解释 3、使用工具 - CFF Explorer - PE-bear - Dependency Walker - x64dbg 4、技术原理 4.1、导入表结构 4.2、导入描述符结构 5、代码实现 5.1、解析导入表 5.2、查找特定导入 5.3、运行时Hook IAT 6、课后作业 1. 编写完整的导入表解析器 - 列出所有导入的DLL - 列出每个DLL的所有函数 - 支持序号导入和名称导入 2. 实现IAT Hook框架 - 支持Hook任意导入函数 - 支持保存和调用原函数 - 实现自动卸载功能 3. 分析PE导入表安全问题 - 研究导入表注入技术…
摘要1、课程目标 1. 理解PE区段的作用和结构 2. 掌握区段头的各个字段含义 3. 理解数据目录表的作用 4. 学会定位各种数据目录 2、名词解释 3、使用工具 - CFF Explorer - PE-bear - PEview - x64dbg 4、技术原理 4.1、区段头结构 4.2、数据目录表 5、代码实现 5.1、解析区段 5.2、解析数据目录 5.3、添加新区段 5.4、修改区段属性 6、课后作业 1. 编写区段分析工具 - 列出所有区段信息 - 分析区段权限 - 检测异常区段特征 2. 实现区段操作功能 - 添加新区段 - 扩展现有区段 - 修改区段属性 3. 分析数据目录 - 定位所有数据目录 - 分析各目录所在区段 - 研究目录之间的关系
摘要1、课程目标 1. 掌握TCP套接字的创建和使用 2. 实现TCP客户端和服务器 3. 理解TCP三次握手和四次挥手 4. 完成主机上线功能的实现 2、名词解释 3、使用工具 4、技术原理 4.1、TCP连接流程 5、代码实现 5.1、示例1:TCP服务器 5.2、示例2:TCP客户端 5.3、示例3:主机上线系统 - C2服务器 5.4、示例4:主机上线系统 - Agent客户端 6、课后作业 1. 为C2系统添加心跳机制 2. 实现多线程并发处理 3. 添加数据加密功能 4. 实现文件上传下载功能 7、扩展阅读 - TCP/IP详解 - Winsock高级编程 - C2框架设计模式
摘要1、课程目标 1. 理解PE文件格式的历史和作用 2. 掌握PE文件的整体结构 3. 学会使用工具查看PE文件 4. 理解RVA和FOA的概念和转换 2、名词解释 3、使用工具 - CFF Explorer(PE编辑器) - PE-bear - PEview - x64dbg - Visual Studio(dumpbin工具) - 010 Editor(PE模板) 4、技术原理 4.1、PE文件结构概览 4.2、PE文件类型 4.3、RVA与FOA转换 5、代码实现 5.1、PE文件基础结构定义 5.2、RVA到FOA转换 5.3、PE文件信息打印 5.4、使用dumpbin工具 6、课后作业 1. 编写PE文件验证器 - 验证DOS头和PE签名 - 检查区段是否有效 - 检测常见的PE异常 2.…