.net是一种建立在虚拟机上执行的语言,它直接生成 MSIL 的中间语言,再由.net编译器 JIT 解释映象为本机代码并交付CPU执行。中间语言很容易被反编译,所以研究下如何有效的保护dll文件。

我大致的方法为 :强签名+混淆+加密。

强签名

强命名程序集,可以确保你的程序集唯一,而不被篡改、冒用等;即使相同名字的程序集如果签名也会不同。

强签名很简单,本站另一文章已经详细进行了讲解,请参考:http://www.cn-web.com/shtml/article/net/fxsj/2009/06/16/913.shtml

注:未签名的主程序可以引用已签名或未签名的程序集;而已签名的主程序不能引用未签名的程序集。(上述文章有相应解决办法)

混淆

混淆就是对编译生成的MSIL中间代码进行模糊处理,最简单的混淆是名称混淆,即将 命名空间名、类名、方法名、字段名等统统换成特殊符号或其它符号,目的就是让人看到晕为止,但是并不改变程序执行逻辑。

我这里使用的Dotfuscator进行混淆。

Dotfuscator混淆方法:

1.创建新工程;

2.选择要混淆的dll、exe文件;

3.在属性里选择Library属性(很重要,因为我这里要混淆的是dll文件,如果不选中,混淆后将不能被正确调用!),如下图所示:

4.选择bulid标签,点击bulid按钮进行混淆。

我们也可以选择其它标签进行加密字符串、增加水印等操作,我这里加密工作用另外的方法,所以没有选择操作。

OK,混淆完成后,我们可以用Reflector.exe来反编译下混淆后的dll文件,可以对比源码看下效果。

加密

接下来我们继续对混淆过的dll文件进行加密处理,进一步保护dll文件。

我使用的加密工具是MaxtoCode。

打开软件后,切换到中文,可以看到非常简单,添加上dll文件后,直接点击执行加密就可以。其他选项比如:加密字符串、强名称等都很简单,大家一试就知道,而且MaxtoCode的帮助做的非常友好,一看就会使用。

加密后的dll文件比先前大了一倍,用Reflector.exe反编译后,发现dll文件加密的更彻底,因为主体函数内容都隐藏了。

通过以上三步,使您的dll文件可免于一般人的破解,当然,不可能绝对防止被破解。

如何保护.net中的dll文件(防破解、反编译)相关推荐

  1. 如何在全局程序集缓存 (GAC) 中安装 DLL 文件

    要使用 Visual Studio .NET 创建小型类库项目.生成强名称,以及在 GAC 中安装项目的 .dll 文件,请执行下列步骤: 在 Visual Studio .NET 中,创建一个新 V ...

  2. dll放在unity哪个文件夹下_unity中调用dll文件总结

    unity中调用dll文件总结 根据收集的资料,对unity中调用dll文件进行总结,目前常用的两种,在给出vs中封装dll文件的步骤. 一.调用c#中的dll文件 1.1封装dll文件 首先新建一个 ...

  3. 没有MsVCp140如何安装MysQl,win10中msvcp140.dll文件如何安装_win10电脑缺少msvcp140.dll文件的安装教程...

    有不少win10系统用户在电脑中运行软件或者程序的时候,反映说会遇到msvcp140.dll文件缺少或丢失的情况,解决方法很简单,只需要安装msvcp140.dll文件即可,那么win10中msvcp ...

  4. C#中使用DLL文件

    首先,我们需要在C++程序中导出DLL文件.我使用的是Visual Studio开发,把项目"属性"中的"配置类型"改为"动态库dll",然 ...

  5. 计算机中丢失cg,【计算机中丢失dll文件】计算机丢失dll文件_计算机中丢失cg dll-win7之家...

    2017-05-16 00:00:00 浏览量:489 wpcap.dll是一个高层的强大捕获程序库,与Unix下的libpcap兼容.它独立于下层的网络硬件和操作系统文件下载,解决找不到wpcap. ...

  6. 电脑程序在计算机丢失怎么办,电脑中dll文件丢失怎么恢复?计算机中丢失dll文件修复方法...

    DLL文件是Windows系统中的动态链接文件,我们在运行程序时都必须链接到dll文件,如果缺少了则无法正常运行,相信大家都会遇到dll文件缺失的情况,那么电脑中dll文件丢失怎么恢复?下面电脑知识大 ...

  7. 多种方法解决计算机程序中出现.DLL文件丢失的问题

    title: DLL-lose date: 2019-11-21 15:55:47 description: 解决计算机程序中出现.DLL文件丢失的问题   在安装某些软件,我们正准备开开心心地打开, ...

  8. Windows环境中运行.dll文件

    Windows环境中运行.dll文件 安装dotnet-sdk 1.官网下载自己所需要的sdk版本https://dotnet.microsoft.com/zh-cn/download/dotnet ...

  9. 如何保护swf文件不被反编译软件破解?

    How to protect SWFs from decompilers? 如何保护swf文件不被反编译软件破解? [ April 24, 2004 ] by Eric Lin 原作:EricLin ...

最新文章

  1. HDU 5972 Regular Number(ShiftAnd+读入优化)
  2. HBase java 开发
  3. 抖音出现大量“三岁用户”,马化腾李彦宏都被还童
  4. ButterKnife与RxBinding中文件重复问题解决
  5. Codeforces Round #760 (Div. 3)
  6. 【蓝桥杯官网试题 - 算法提高 】求最大值 (dp,0-1背包)
  7. java读文件几种方式_java中读取文件的方式有哪几种
  8. 为啥国内程序员写的代码也用英文注释?
  9. 面试题--------4、数据类型
  10. FISCO BCOS 控制台 部署合约 调用 查看已部署合约的地址
  11. WinForm中窗体间的数据传递(二)
  12. Nginx反向代理的目录访问问题
  13. 工业自动化控制软件SCADA数据模型的使用方法实例
  14. 区块链报错3 | truffle unbox 报错 | downloading失败 | unbox failed
  15. select2 取值 遍历 设置默认值
  16. python 实现126邮箱登录
  17. 进阶篇:5.1)公差分析的总流程
  18. 多语言适配之阿拉伯语
  19. 如何使用GES进行社交关系考据?---GES查询能力介绍
  20. windows虚拟主机控制面板哪个比较好用?

热门文章

  1. 2-SAT 问题(洛谷-P4782)
  2. 病毒侵袭(HDU-2896)
  3. 信息学奥赛一本通C++语言——1053:最大数输出
  4. 2 SD配置-企业结构-定义-定义分销渠道
  5. linux默认安装python_Linux下安装python
  6. rabbitmq使用_RabbitMQ-1使用
  7. PyQT:This application failed to start because no Qt platform plugin could be initialized.
  8. C++:unordered_map
  9. linux那些事之LRU(3)
  10. opencv_modules.hpp 头文件