- 博客(12)
- 资源 (6)
- 收藏
- 关注
原创 .NET 程序保护实战系列 09 · 反调试与反转储:让调试器无处下手
反调试和反转储是动态防御的核心。对抗有经验的逆向工程师需要层层设防——从调试器检测到内存清除再到元数据混淆。这些技术与之前文章中的静态保护形成完整的立体防护。
2026-07-16 18:26:07
169
原创 .NET 程序保护实战系列 08 · 防篡改校验:任何修改都会触发自毁
本文介绍了防篡改校验的实现方案,通过FNV-1a哈希算法为每个方法生成唯一指纹,结合两阶段写入策略确保哈希一致性。哈希表经过XOR加密并添加魔术头标记后嵌入程序集资源。运行时初始化时进行完整性验证,任何篡改都会触发不可恢复的FailFast自毁机制,成为保护代码完整性的最后防线。
2026-07-15 11:21:00
199
原创 .NET 程序保护实战系列 07 · JIT Hook 保护:在编译时刻解密
JIT Hook 是一种巧妙的保护手段——在"最后一道门"(JIT 编译)拦截并替换 IL,绕过了所有静态分析工具。但它仅适用于 .NET Framework 平台。对于跨平台需求,建议使用方法体加密(第 06 篇)或代码虚拟化(第 05 篇)。
2026-07-13 10:19:53
164
原创 .NET 程序保护实战系列 06 · 方法体加密:密钥在手才能执行的代码
本文介绍了.NET程序方法体加密的核心原理与技术实现。通过提取原始IL代码并加密存储,运行时动态重建执行,实现了代码保护与性能平衡。关键技术包括:ILED序列化格式设计、DynamicMethod动态重建、异常处理器处理、字符串及Token解析等特殊场景应对。该方案首次调用需0.5-2ms解密,后续调用性能接近原生,能有效防止静态分析,同时支持选择性加密范围控制。结合代码虚拟化可构建多层次保护体系,为.NET程序提供高级安全防护。
2026-07-10 16:55:46
167
原创 .NET 程序保护实战系列 06 · 方法体加密:密钥在手才能执行的代码
本文介绍了.NET程序集保护中的方法体加密技术,核心思路是将IL代码提取、加密后替换为stub方法,运行时通过密钥解密并动态重建。关键技术包括:ILED二进制序列化格式、DynamicMethod动态重建、异常处理器处理、字符串和token解析优化等。该方法首次调用有毫秒级延迟(解密和JIT编译),后续调用性能与原生代码相当,能有效防止静态分析,同时支持选择性加密方法范围。结合代码虚拟化可提供多层次保护,是.NET代码保护的有效方案。
2026-07-09 08:43:11
322
原创 .NET 程序保护实战系列 05 · 代码虚拟化:把 IL 变成只有你能懂的字节码
本文介绍了代码虚拟化技术,通过将IL转换为自定义VM字节码实现代码保护。对比了虚拟化与加密的差异:虚拟化解释执行更安全但性能低50-100倍,适合核心算法;加密则首次调用慢但后续正常。详细阐述了虚拟化架构,包括IL转换、Token名称反射解耦元数据、方法选择规则(跳过异常处理/泛型等方法)、字节码序列化格式与LCG加密、使用魔术头定位资源数据。运行时通过栈式解释器执行,虽性能下降但安全性高。建议仅虚拟化关键算法(如加密/许可证验证),避免UI事件处理器。虚拟化可完全隐藏原始IL,提供最高级别保护。
2026-07-08 11:27:03
211
原创 .NET 程序保护实战系列 04 · 控制流混淆:打乱逻辑让分析者绕路
控制流混淆技术解析 本文详细介绍了控制流混淆技术,通过打乱程序逻辑流程增加反编译难度。主要内容包括: 基本原理:将线性指令流拆分为片段,随机重排并插入跳转,形成非连续执行路径 实现流程: 使用BlockParser将IL代码解析为块树结构 通过JumpMangler拆分基本块、插入跳转指令和垃圾代码 应用不透明谓词(恒真/假条件)误导分析工具 关键技术: 保持异常处理边界完整性 处理特殊指令序列不可拆分的情况 自动适配Debug构建模式 增强效果:采用随机密钥的XOR恒等式等技术,使每个混淆结果唯一 该技术
2026-07-07 08:43:09
237
原创 .NET 程序保护实战系列 03 · 符号混淆:名称就是第一道防线
本文介绍了符号混淆技术作为代码保护的第一道防线,重点阐述了名称混淆的实现原理和关键技术。主要内容包括:语义名称消除的价值、继承链方法名一致性维护的VTable机制、基于ConditionalWeakTable的元数据注解系统、六种命名模式的特性对比、跨模块协同的重命名流程、引用跟踪体系结构,以及可见性过滤规则。文章指出,高效的符号混淆需要精准处理继承、接口、跨模块引用等复杂场景,而非简单替换名称。这些技术为后续控制流混淆奠定了基础,共同构成了代码保护的核心防御层。
2026-07-07 08:39:28
180
原创 .NET 程序保护实战系列 02 · 字符串加密:让反编译器的搜索功能失效
字符串加密是最基础但最有效的第一道防线。它让攻击者无法通过 Ctrl+F 定位关键代码,配合不可见 Unicode 命名,进一步隐藏保护代码的存在。Mutation 占位符机制是整个保护引擎的核心设计模式——运行时模板带占位符,保护时动态替换——后续的方法体加密、虚拟化、防篡改都依赖同样的模式。
2026-07-06 12:38:47
257
原创 .NET 程序保护实战系列 01 · 流水线架构与保护引擎总览
摘要 本系列文章系统讲解.NET程序集的防护技术,基于TWSoft.AssemblyProtector保护引擎。文章首先介绍了保护.NET程序的必要性,指出IL和元数据的易反编译特性会带来商业风险。 核心内容包括: 保护引擎采用三阶段流水线架构(注入、执行IL修改、配置写入器) 通过ProtectOptions统一控制12种保护措施的执行 关键技术包含字符串加密、符号混淆、控制流混淆、代码虚拟化等方法 实现无DLL依赖的运行时交付和共享上下文设计 该系列适合.NET开发者、安全研究员和商业软件开发者学习程序
2026-07-06 12:33:44
158
原创 浅谈CMS标签设计思路
在ESCMS 2.0的设计中,最头痛的还是标签设计部分..这部分我重写了N次,在这里说说标签设计过程与用户体验.因为是第一个版本,我并没有打算生成静态,原因如下:ESCMS是面向中小企业网站的小型CMS,生成静态对效率影响不大,反而会增加工作量.用户直接直观的做页面,并插入函数就可以调试,在这种小型网站非常实用,这也是1.0的设计思路 所以,第一次设计时,我按照1.0的思路
2009-10-20 15:58:00
2694
2
原创 C#改进的分页显示
public static string pagelist(int intpage, int pagecount) { String urlpath; String TemplatePage; int page2; urlpath = urls(); TemplatePage = "/n";
2009-01-08 11:53:00
756
ApexSql Log 2014.04.1133破解版
2015-10-14
ApexSQL LOG 2016.3破解补丁
2017-04-28
[C#]Winform程序皮肤管理器+72款窗体皮肤(程序+源代码+详细代码注释
2008-12-29
获取MSN,QQ,邮箱联系人和通讯录的C#源码类库
2009-09-04
连锁超市会员积分销售系统源码(vs2005,商)
2009-06-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅