36、dll劫持

2025年09月09日免杀专题

摘要1. 课程目标 深入学习DLL劫持技术,用于持久化和代码执行。 2. DLL劫持原理 3. 实现代码 3.1 代理DLL 3.2 查找可劫持的DLL 3.3 自动转发 4. 常见劫持目标 5. 课后作业 5.1、作业1:查找目标(必做) 1. 使用Process Monitor找出可劫持的DLL 2. 记录目标程序和DLL名称 5.2、作业2:代理DLL(进阶) 1. 创建一个代理DLL 2. 测试劫持效果 6. 下一课预告 下一课我们将学习隐藏模块技术。

35、APC注入

2025年09月08日免杀专题

摘要1. 课程目标 学习APC (Asynchronous Procedure Call) 注入技术。 2. APC原理 3. 实现代码 3.1 基础APC注入 3.2 Early Bird APC注入 4. 课后作业 4.1、作业1:基础APC(必做) 1. 实现APC注入到explorer.exe 2. 验证ShellCode执行 4.2、作业2:Early Bird(进阶) 1. 实现Early Bird APC注入 2. 比较与普通APC的区别 5. 下一课预告 下一课我们将学习DLL劫持技术。

33、ShellCode页面反转

2025年09月06日免杀专题

摘要1. 课程目标 学习ShellCode页面反转技术,通过切换内存权限来绕过内存扫描。 2. 技术原理 3. 实现代码 3.1 基础页面反转 3.2 定时反转 4. 高级技术 4.1 需要时解密 5. 课后作业 5.1、作业1:基础反转(必做) 1. 实现ShellCode页面的加密/解密切换 2. 验证内存扫描时ShellCode是加密状态 5.2、作业2:自动反转(进阶) 1. 实现空闲时自动加密 2. 访问时自动解密 6. 下一课预告 下一课我们将学习ETW绕过技术。

32、函数序列欺骗

2025年09月05日免杀专题

摘要1. 课程目标 深入学习函数调用序列欺骗技术,包括调用栈伪造和行为欺骗。 2. 调用栈伪造 2.1 x64调用栈结构 2.2 伪造实现 3. 行为序列欺骗 3.1 正常行为模拟 3.2 时间分散 4. 课后作业 4.1、作业1:行为分散(必做) 1. 将注入操作分散到多个时间点 2. 在操作间插入正常行为 4.2、作业2:调用栈分析(进阶) 1. 分析安全软件如何检测调用栈 2. 设计绕过方案 5. 下一课预告 下一课我们将学习ShellCode页面反转技术。

31、函数调用序列欺骗

2025年09月04日免杀专题

摘要1. 课程目标 学习通过伪造函数调用栈来欺骗安全软件的行为检测。 2. 技术原理 安全软件通过监控调用栈来判断API调用是否可疑: 3. 实现方法 3.1 伪造返回地址 3.2 间接调用 4. 课后作业 4.1、作业1:分析调用栈(必做) 1. 使用调试器观察正常和异常的调用栈 2. 理解安全软件的检测逻辑 4.2、作业2:间接调用(进阶) 1. 使用回调函数执行敏感操作 2. 观察调用栈变化 5. 下一课预告 下一课我们将学习更多函数序列欺骗技术。

30、代码混淆

2025年09月03日免杀专题

摘要1. 课程目标 学习代码混淆技术,增加逆向分析难度。 2. 混淆技术分类 3. 控制流混淆 3.1 控制流平坦化 3.2 虚假控制流 4. 字符串混淆 4.1 编译时加密 4.2 运行时构造 5. 数据混淆 6. 课后作业 6.1、作业1:字符串混淆(必做) 1. 实现字符串加密宏 2. 应用到敏感API名称 6.2、作业2:控制流平坦化(进阶) 1. 手动实现简单的控制流平坦化 2. 用IDA分析效果 7. 下一课预告 下一课我们将学习函数调用序列欺骗技术。

29、动态Patch函数

2025年09月02日免杀专题

摘要1. 课程目标 学习运行时动态修改代码的技术,用于绕过静态检测。 2. 技术原理 3. 实现代码 3.1 基础动态Patch 3.2 原地Patch 3.3 延迟解密 4. 课后作业 4.1、作业1:基础Patch(必做) 1. 实现函数动态解密执行 2. 验证解密前后代码差异 4.2、作业2:原地Patch(进阶) 1. 实现原地修改.text段代码 2. 处理DEP保护 5. 下一课预告 下一课我们将学习代码混淆技术。

28、花指令的剔除

2025年09月01日免杀专题

摘要1. 课程目标 学习如何识别和剔除花指令,这是逆向分析的重要技能。 2. 识别花指令 2.1 常见特征 2.2 识别方法 3. 手动剔除 3.1 使用IDA Pro 3.2 使用x64dbg 4. 自动剔除脚本 4.1 IDA Python脚本 4.2 通用识别模式 5. 对抗花指令剔除 5.1 使用有意义的花指令 5.2 交织真实代码 6. 课后作业 6.1、作业1:手动识别(必做) 1. 使用IDA分析一个加花的程序 2. 手动识别出花指令位置 6.2、作业2:脚本剔除(进阶) 1. 编写IDA Python脚本自动识别花指令 2. 测试脚本效果 7. 下一课预告 下一课我们将学习动态Patch函数技术。

27、花指令

2025年08月30日免杀专题

摘要1. 课程目标 学习花指令技术,通过插入垃圾代码干扰静态分析和特征匹配。 2. 名词解释 3. 花指令类型 3.1 NOP填充 3.2 等价指令替换 3.3 死代码插入 3.4 不透明谓词 4. 代码实现 4.1 C语言花指令宏 4.2 x64内联汇编 由于MSVC x64不支持内联汇编,需要单独的.asm文件: 4.3 自动花指令插入 5. 高级技术 5.1 跳转花指令 5.2 条件花指令 6. 课后作业 6.1、作业1:手动花指令(必做) 1. 在ShellCode Loader中插入花指令 2. 观察对反汇编的影响 6.2、作业2:自动化(进阶) 1. 编写花指令自动插入工具 2. 随机化花指令内容 7. 下一课预告 下一课我们将学习花指令的剔除技术。

26、非对称加密加密ShellCode

2025年08月29日免杀专题

摘要1. 课程目标 学习使用RSA等非对称加密算法加密ShellCode。 2. 非对称加密原理 3. RSA加密实现 3.1 使用CryptoAPI 4. 混合加密方案 由于RSA不适合加密大数据,通常使用混合方案: 5. 课后作业 5.1、作业1:RSA解密Loader(必做) 1. 使用OpenSSL生成RSA密钥对 2. 实现RSA解密Loader 5.2、作业2:混合加密(进阶) 1. 实现RSA+AES混合加密方案 2. 测试完整流程 6. 下一课预告 下一课我们将学习花指令技术。