2、C++函数指针实现shellcode loader

2023年08月26日shellcode loader

摘要1、课程目标 1. 理解函数指针在ShellCode执行中的应用 2. 掌握多种函数指针类型定义方式 3. 了解不同调用约定对执行的影响 4. 实现健壮的函数指针Loader 2、名词解释 3、使用工具 4、技术原理 1. 函数指针基础 2. 使用typedef简化 3. 调用约定对比 4、代码实现 1. 基础函数指针Loader 2. 泛型函数指针Loader类 3、课后作业 3.1、作业1:添加加密支持 扩展Loader,支持在加载前对ShellCode进行XOR解密。 3.2、作业2:实现Lazy Loading 实现延迟加载机制,在首次调用时才分配内存和复制ShellCode。 3.3、作业3:添加校验功能 在执行前对ShellCode进行完整性校验(如CRC32或MD5)。

1、C++内联汇编实现shellcode loader

2023年08月25日shellcode loader

摘要1、课程目标 1. 理解内联汇编在ShellCode加载中的应用 2. 掌握使用内联汇编执行ShellCode的方法 3. 了解内联汇编的优势和限制 4. 实现多种内联汇编加载技术 2、名词解释 3、使用工具 4、技术原理 1. 内联汇编基础 2. naked函数特点 3. 执行流程 4、代码实现 1. 基础内联汇编Loader 2. 高级内联汇编技术 3、课后作业 3.1、作业1:完善StandaloneLoader 完成StandaloneLoader函数,实现不依赖任何外部函数的完整加载器。 3.2、作业2:添加解密功能 在内联汇编中实现XOR解密,执行前解密ShellCode。 3.3、作业3:实现参数传递 实现一个能够向ShellCode传递多个参数的内联汇编Loader。

7、阶段合集

2023年08月24日shellcode开发技术

摘要1、课程目标 1. 整合ShellCode开发的全部知识点 2. 实现完整的ShellCode开发工具链 3. 构建模块化的ShellCode框架 4. 掌握ShellCode开发的工程化实践 2、知识回顾 2.1、ShellCode开发流程 2.2、核心技术点 3、代码实现 1. 完整的模块化ShellCode框架 2. 框架实现 3. ShellCode生成器 4. 完整测试程序 5、课后作业 5.1、作业1:扩展框架 为ShellCode框架添加以下功能: - 进程注入Payload - 权限提升Payload - 持久化Payload 5.2、作业2:自动化工具 编写一个自动化工具,能够: 1. 从C源码生成ShellCode 2. 自动进行空字节消除 3. 应用编码混淆 4. 生成多种格式输出…

6、shellcode精简字节数

2023年08月22日shellcode开发技术

摘要1、课程目标 1. 掌握ShellCode体积优化的各种技术 2. 理解指令编码与空字节消除 3. 学习代码压缩和复用技巧 4. 实现最小化的功能ShellCode 2、名词解释 3、使用工具 4、技术原理 1. 指令长度对比 2. 优化策略层次 3. 常用优化技巧 4、代码实现 1. 优化前后对比 2. 极限优化的MessageBox ShellCode 3. 分阶段ShellCode (Stager) 4. 空字节消除工具 5. 体积统计工具 6、课后作业 6.1、作业1:手动优化练习 优化以下ShellCode片段,消除所有空字节并尽量减少体积: 6.2、作业2:实现Egg Hunter 编写一个小于50字节的Egg Hunter ShellCode。 6.3、作业3:体积挑战…

5、x64shellcode框架

2023年08月18日shellcode开发技术

摘要1、课程目标 1. 理解x64架构与x86的关键差异 2. 掌握x64 ShellCode的开发技术 3. 实现完整的x64 ShellCode框架 4. 掌握x64调用约定和寄存器使用 2、名词解释 3、使用工具 4、技术原理 1. x86与x64关键差异 2. x64调用约定 3. PEB结构偏移对比 4. LDRDATATABLE_ENTRY偏移 5、代码实现 1. x64 ShellCode框架(MASM) 2. NASM格式的x64 ShellCode 3. C语言版本(使用独立asm文件) 4. 独立的x64汇编文件(供C调用) 5、课后作业 5.1、作业1:添加更多功能 扩展x64 ShellCode,添加以下功能: - 下载并执行文件 - 反向Shell连接 5.2、作业2:消除空字节…

8、阶段合集

2023年08月17日加密壳

摘要1、课程目标 1. 完成完整的加壳/脱壳系统 2. 实现壳代码的完整功能 3. 添加高级特性和优化 4. 测试和验证加壳效果 2、名词解释 3、使用工具 - Visual Studio 2022 - x64dbg - Scylla(IAT重建) - PE-bear 4、技术原理 4.1、完整加壳系统架构 5、代码实现 5.1、完整的壳代码 5.2、简单脱壳器 5.3、测试和验证 6、课后作业 1. 完善加壳系统 - 添加压缩功能 - 支持DLL加壳 - 添加更多加密算法 2. 增强反分析能力 - 添加多种反调试 - 添加反虚拟机 - 添加代码混淆 3. 开发脱壳工具 - 自动查找OEP - 重建IAT - 修复各种PE问题

4、shellcode提取与加载

2023年08月10日shellcode开发技术

摘要1、课程目标 1. 掌握从PE文件中提取ShellCode的方法 2. 理解ShellCode加载器的工作原理 3. 实现多种ShellCode执行方式 4. 掌握ShellCode调试技巧 2、名词解释 3、使用工具 4、技术原理 1. ShellCode提取流程 2. 内存分配与权限 3. 执行方式对比 4、代码实现 1. ShellCode提取工具 2. 多种ShellCode加载方式 3. Python提取脚本 4. ShellCode调试辅助 5、课后作业 5.1、作业1:实现自动提取 编写程序,自动从编译后的PE文件中提取.shell区段。 5.2、作业2:多格式导出 扩展提取工具,支持导出为C、Python、C#、PowerShell等格式。 5.3、作业3:加载器混淆…

3、x86shellcode框架

2023年08月02日shellcode开发技术

摘要1、课程目标 1. 掌握x86 ShellCode的标准框架结构 2. 实现动态获取API函数地址的功能 3. 理解导出表解析在ShellCode中的应用 4. 编写完整可用的x86 ShellCode模板 2、名词解释 3、使用工具 4、技术原理 1. x86 ShellCode标准结构 2. GetPC技术 3. API哈希算法(ROR13) 4、代码实现 1. 完整x86 ShellCode框架(C内联汇编) 2. 纯汇编版本(NASM格式) 3. Python哈希生成脚本 4、课后作业 4.1、作业1:添加更多API支持 扩展ShellCode框架,添加对以下API的支持: - CreateRemoteThread - VirtualAllocEx - WriteProcessMemory…

2、动态获取kernel32dll地址

2023年07月28日shellcode开发技术

摘要1、课程目标 1. 理解PEB(进程环境块)的结构 2. 掌握通过PEB遍历获取模块基址的方法 3. 实现x86和x64版本的Kernel32获取代码 4. 掌握无API依赖的模块枚举技术 2、名词解释 3、使用工具 4、技术原理 1. TEB和PEB的关系 2. PEB结构(关键字段) 3. PEBLDRDATA结构 4. LDRDATATABLE_ENTRY结构 5. 模块列表遍历流程 6、代码实现 1. x86版本 - C语言实现 2. x64版本 - 纯汇编ShellCode 3. ShellCode提取用版本 4. 完整的哈希匹配版本 5、课后作业 5.1、作业1:实现通用模块查找 扩展代码,实现通过模块名哈希查找任意DLL的功能。 5.2、作业2:实现x64内联汇编版本…

1、shellcode的概念

2023年06月30日shellcode开发技术

摘要1、课程目标 1. 理解ShellCode的定义、起源和用途 2. 掌握ShellCode的特点和限制 3. 了解ShellCode开发的基本流程 4. 掌握位置无关代码(PIC)的概念 2、名词解释 3、使用工具 4、技术原理 1. ShellCode的历史 ShellCode最早用于Unix系统溢出攻击,目的是获取一个shell(命令行),因此得名。现代ShellCode已经扩展到各种功能: - 反向连接(Reverse Shell) - 下载执行(Download & Execute) - 注入执行(Inject & Execute) - 权限提升(Privilege Escalation) 2. ShellCode的特点 3. 开发挑战 4. 开发流程 5、代码实现 1.…