最近在做源代码加密保护的任务,第一次接触这方面的东西,主要使用的是Dotfucator和Reflector.有一些心得,和大家交流一下.
      在.net之前,源代码被直接编译为机器码.而在.net环境下,源代码被编译为中间语言(IL),在实际运行的时候,才转换为二进制本地码执行.而中间语言(IL)是很容易被反编译的..NET自己就带着一个查看IL的工具ILDASM. 
      VS2005自带一个保护源代码的工具DotFuscator,是社区版的,只有基本的混淆命名的功能.专业版功能很多,可以混淆流程,加密字符串,加入水印,程序签名等,可惜太贵~..~(好像一个授权要30k),只好找破解版的来学习一下.
      社区版的DotFuscator使用很简单,从VS2005集成开发环境-->工具-->DotFuscator Community Edition,打开后不用注册可以直接使用.在输入选项卡中导入一个dll或者exe文件,在生成选项卡中输入输出目录,直接点击生成即可.想复杂也不成,因为其他的功能基本都是灰的,要专业版才行.
      专业版的可选项多一些,除了可以对名称进行重命名,还可以混淆流,打乱程序原有的结构,但保持逻辑不变.混淆后的代码用Reflector查看,会发现都是一堆goto语句,很难理解.还可以加密字符串,一些敏感信息,例如数据库连接字符串等,如果不加密,很容易被找到并非法利用.也可以在代码中加入水印,如果公司信息,版权标志等.加入水印不会影响程序原有代码的执行.DotFuscator提供一个工具用来查看程序集中的水印premark.exe,可以在DotFuscator的安装目录下找到.也可以对水印进行加密.DotFuscator还可以对程序集进行强名称签名,防止程序集被非法篡改.

在使用的过程中,有几个疑惑一直没有解决,欢迎大家交流.
      1.如果dll中包含资源文件,那么进行重命名混淆后,用反射的方式无法访问资源,必须在混淆的时候,将资源文件排除在外.
      2.在程序集中加入水印,用premark无法查看该水印.不知道是不是因为破解版的原因?

DotFuscator 小记相关推荐

  1. Dotfuscator代码混淆工具的使用

    关于Dotfuscator,VS自带了一个社区版的源代码保护工具,不过它只有基本的混淆命名的功能.专业版功能很多,可以混淆流程,密字符串,加入水印,程序签名等. 工具/原料 Dotfuscator P ...

  2. hp-ux 集群,内存 小记

    hp-ux 集群,内存 小记 -----查看hp 集群状态信息 # cmviewcl -v CLUSTER        STATUS       dbsvr          up          ...

  3. <笔记2>numpy的生成随机数用法小记

    numpy的生成随机数用法小记 numpy生成随机数 <以下图片来自黑马程序猿录播课程笔记> import numpy as np import random #random 生产随机数 ...

  4. 2021年中寻找新SAP项目机会小记

    2021年中寻找新SAP项目机会小记 最近一段时间,笔者有在酝酿下一个SAP项目机会.在与相关业界同仁洽谈项目机会的过程中,笔者发现自己还是在犯一些低级错误,感觉自己还是太不够理性和成熟. 1,事情没 ...

  5. K项目小记 - 项目已开工整整四周!

    K项目小记 - 项目已开工整整四周! 至今天,K项目已经推进到了第四周.这四周时间里,我们项目组全体成员经历了一段刻骨铭心的战斗时光.我们每天开会,谈流程,展示全球模板,找GAP.K项目是以客户总部的 ...

  6. 肺炎疫情期间购买口罩小记

    肺炎疫情期间购买口罩小记 谁都不曾想到,平时不怎么用到的口罩,在此次肺炎疫情期间,突然成为紧俏物资,重要物资. 早在疫情爆发初期,就在新闻报道里听说医护人员缺少医护物资,其中就有各种级别的口罩.此时笔 ...

  7. SAP MM 进销存报表优化小记

    SAP MM 进销存报表优化小记 笔者刚刚加入SY项目,就接到了SY集团上海总部SAP运维部门负责人的工作分配,说是有一只进销存报表,需要做一个优化,可能是需要重新设计重新开发. 笔者研究了他们现行进 ...

  8. 使用Dotfuscator保护你的Xamarin应用程序

    老实说,发布一个库.桌面应用程序或移动应用程序可能有点吓人.一旦你的软件可以免费提供给世界,你就失去了如何使用它的某种程度的控制权.特别是,开发人员经常担心逆向工程的威胁. 在许多平台和语言中,代码混 ...

  9. Flex+J2EE 之小记

    Flex+J2EE 之小记 Jack. Wang 2008-9-10(本待完善...)  wbjeasygo@163.com  由于本人也是初学者(刚看了两天视频),所以请高手指点,这里赞下 blog ...

最新文章

  1. 地铁闸门会夹伤人吗_西安地铁率先推出分类垃圾箱 四种类型你会放吗?
  2. 分享Kali Linux 2016.2第43周镜像
  3. URI URL 简介区别
  4. 主线程和子线程的同步控制
  5. 1在mysql进行定义操作系统_Mysql基础知识一
  6. oracle 存储过程挂起,library cache pin与PROCEDURE的重建
  7. 内存中发堆和栈,栈是运行时的单位,而堆是存储的单位
  8. python求最大值最小值_Python求可变参数的最大值最小值以及参数个数
  9. Kinect1和Kinect2的区别
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的毕业论文设计管理系统
  11. 《Linux内核设计与实现》读书笔记 第一章 Linux内核简介
  12. windows pycharm如何恢复默认设置_如何备份/恢复一个基于Windows系统的操作面板?...
  13. java cas单点登录_JAVA - 登录 单点登录 cas
  14. [博应用官网]iTunes备份密码忘记了该如何解决?
  15. 《华为研发》阅读 - 11 (中研部组织结构)
  16. pixi.js 5.0_使用Pixi.js进行高级绘图
  17. 防抖(debounce) 和 节流(throttling)的封装使用-最终发布npm
  18. 过去的一切该翻篇了 好好奔向未来吧
  19. 将视频转换成一帧帧的图片
  20. 图像校正(Image Rectification)——使得在对极线上寻找对应点更加容易

热门文章

  1. 信息学奥赛一本通(1047:判断能否被3,5,7整除)
  2. 图论 —— 网络流 —— 费用流 —— zkw 费用流
  3. And(CF-1013B)
  4. 动态规划 —— 背包问题 P04 —— 混合背包
  5. 信息学奥赛C++语言:调整试题顺序
  6. RF和GBDT和Xgboost的异同总结,加上lightgbm
  7. mysql set substring_MySQL substring()函数
  8. 神经网络densecnn_对比学习用 Keras 搭建 CNN RNN 等常用神经网络
  9. IDEA的debug查看某一变量或字段的具体值
  10. jQuery-DOM操作