C# DLL如何保护防止被破解

项目是用.net开发的,但是里面涉及到核心逻辑及授权验证,不想让人轻松被搞掉了。怎么办???

.net的实时编译(JIT)特性决定了用它开发的程序可以被轻松反编译,同时由于采用反射等技术,使得DLL能被未授权调用。

所以要想不被破解,一是不能被反编译看到源码,二是不能被随意调用。

什么混淆加壳加密等,都是可逆的。鉴于.net代码可以包含非托管代码,我们可以用C++解析C#代码生成DLL,这个DLL在被调用时验证调用者信息,就可以解决针对C#的破解,以及非授权调用了。

参考链接:http://blog.csdn.net/qwsf01115/article/details/52169574
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-08-17
百度.net混淆工具。
第2个回答  2019-05-24
通过硬件加密的方式,保护C#的程序,一方面使用高安全性的加壳工具保护,同时精锐5加密锁强悍的硬件性能保障硬件安全,三层通讯加密。
高安全性加壳工具Virbox Protector,保护代码安全
.NET程序能够选择不保护、混淆、碎片化和代码加密四种保护方式。代码加密(IL),针对dotNet程序,保护IL代码:一种动态运行方法解密被保护代码。把当前代码加密存储为密文,存储起来,当程序运行到被保护函数时候自动解密并且执行,执行之后再擦除代码,执行之后再擦除代码,运行到哪里才解密哪里的代码,调试者无法获得原始的中间语言的指令和内存完整性的代码,由于是纯内存操作所以运行速度快,性价高的保护手段,建议全加。
代码碎片化:
深思自主知识产权的最新技术:基于 LLVM 和 ARM 虚拟机技术,自动抽取海量代码移入 SS 内核态模块,极大的降低了使用门槛, 不再需要手动移植算法,可移植的算法从有限的几个增长到几乎无限多,支持的语言也不再限于 C, 这是加密技术的一次综合应用,效果上类似于将软件打散执行,使调试无从下手。
精锐5加密锁
精锐5硬件加密锁是深思数盾研制的第5代加密锁,精锐5硬件加密锁相对于之前的版本做了很多的升级功能,硬件上使用业内高安全性的EAL5+芯片,在通信和执行速度上都有很大幅度提高。
精锐5硬件加密锁实现了网络锁和单机锁一体化的方式,可以随意切换。同时精锐5也提供了多个版本:标准版、旗舰版、精灵版、时钟版和IE工业版,方便软件开发者根据需要选择,其中精锐5旗舰版硬件加密锁达到业内存储最大达到512k。
同时精锐5硬件锁与Virbox 云锁、Virbox 软锁为同一系列产品并且可以相互兼容作为灾备使用,软件开发者可以根据产品不同的使用场景选择使用,Virbox 云锁的产品形式为账号,软件开发者可以为软件用户创建用户账号,并且可以向用户账号内签发许可,通过账号的形式可以实现软件开发商软件实时交付用户使用,实现软件开发者的软件加密、高效管控软件用户、实现软件授权的产品。
相似回答