小试.NET代码保护软件(代码混淆、加密)

有着微软人性化的开发工具VISUAL STUDIO和MSDN详尽的帮助,.NET 的开发效率的确高。

但是由于.NET同JAVA一样都采用中间语言、虚拟机/SDK等诸多特质,而且高等语言的类库编码规范,MSIL微软中间语言可读性很高,所以代码很容易就能被反编译,或许这是一种“另类的开源”。

到目前为止.NET开发的桌面软件或者说共享软件真的很少,大多都是一些管理系统、ERP、等一些数据库软件,这些软件一般结构复杂,采用了架构或者平台等一些机制,而且一个功能都可以写N多个类,即使被反编译了别人也要花很多时间去研究,而对小型的桌面软件来说反编译简直是太恐怖了,所以别人宁愿用VB6去写一个共享软件也不会用.NET。

在这个情况下出现了一些代码保护工具,我小小的研究了一下。
1.   Dotfuscator Community Edition    //VS2005自带试用版,混淆器
只使用VS2005自带的试用版,基本就是把程序类、方法、变量等名称混淆了,个别混淆得不好的还是可以看得懂代码方法内容,而且很多程序不能混淆,我一个程序“资源”里面有连接字符就不能混淆。
2.   XeonCode                         //反编译器、混淆器、打包脱离.NET发行包运行
XeonCode Fox可以反编译exe、dll查看代码,
XeonCode Studio可以混淆并发布文件,混淆的效果比Dotfuscator好,可以加入花代码,也可以打包成native代码,这样根本反编译不了了。
XeonCode Postbuild可以混淆加密、优化,打包文件,打包文件可以给.NET发行包打一个小包,(可以选择打成一个文件还是多个文件)可以脱离.NET发行包运行程序!(这个功能比较酷)
3.   MaxtoCode                        //加密、混淆
这个东西是国人的产品,好像是武汉的,据说很强可以加密代码,反编译后看见代码里面的程序都是空,也可以混淆代码。(给他们发了试用邮件,没发给我试用版,我没使用。)

以上的代码保护软件均要收费的,想要保护代码、保护知识产权的朋友可以购买正式版,国外的比较贵,国内的好一点,实在没钱可以自己考虑自己做个简单名称的混淆、加密,或者增加代码的复杂程度也可以起到一定的保护。

时间: 2024-10-11 12:41:15

小试.NET代码保护软件(代码混淆、加密)的相关文章

详细讲解Android对自己的应用代码进行混淆加密防止反编译

1.查看项目中有没有proguard.cfg. 2.如果没有那就看看这个文件中写的什么吧,看完后将他复制到你的项目中. -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keep publ

大型.NET商业软件代码保护技术 技术与实践相结合保护辛苦创造的劳动成果

列举工作以来遇到的各种类型的软件所采用的代码保护技术,只讲原理不涉及技术细节实现,以避免产生法律问题.有些朋友说直接把代码放在Github开源下载,开源可以促进技术交流与进步,然而值钱的代码都积压在硬盘里面,即使很烂的代码都卖了很多钱,赢得了许多客户与市场.珍惜爱护自己写的代码,他们都是宝贵的财富. 以下保护技术主要测重于脱机验证与保护,不涉及联网(连接到许可证服务器)验证. 1 程序集混淆 Asembly obfuscate CLR代码的运行是即时编译执行的,.NET编译器只是将源代码文件编译

.net C# 源代码和信贷吗保护(代码安全)

常用的混淆加密如果涉及到算法,可以将算法做成非托管dll 难道,C#真的就不能自己弄个什么名堂的东西出来,不被任务管理器结束吗?实际,我认为,C#是可以做到这一点的.原因有2个.1,C#是支持带*号这种指针的方式的.也就是说,C#可以使用指针.2,C#可以完全无障碍的调用Windows自己的API函数(虽然性能没有VC++开发的好),调用第三方开发的COM组件,甚至调用USB插口接口相关信息(曾今做U盘杀毒的时候,用到过,不过主要还是结合API完成的,一个未公开的API函数R开头的忘记了).所以

人在江湖:如何用代码保护好自己(转)

现在上一点规模的系统,特别是金融行业的系统,业务规则复杂,一般是将系统分割成较小的子模块,每个人开发一个或几个模块,模块开发完成后做成一个jar包,供其它的模块调用,待所有模块开发完成后再集成在一起.对于充值系统而言则更为复杂,除了要将系统分解成子模块外,还要与众多外围系统交互,如收单服务商.充值中心.银行等.程序员就是其中一个或几个模块的开发者. 本文的讨论的要点是:在系统出现问题时,如何有理有据的保护好自己. 对于软件开发者来说,我们在公司里一般处于弱势群体,每当系统出现问题造成事故的时候,

OD调试9—实例:深入分析代码完成软件破解

OD调试9—实例:深入分析代码完成软件破解  爆破,是最初级的解决方案,不到万不得已,我们不直接修改JNZ通关.因为这样子的话,我们就享受不到破解.逆向的真正乐趣了. 了解程序背后按照剧情发展经常会出的一些走法,逆向程序的算法,才能体会逆向的真正乐趣! 所以,今天的主题是:是男人,就跟进去吧~ 这次还是使用一个比较简单的程序,不然太复杂的话,一步步跟进程序可能会把自己搞崩溃,脑子恐怕不够搞.大家凭自己的能力,能进入多少就进入多少,一分不少,一寸不多!能力是培养出来的,耐心! 试验软件:MrBil

iOS软件代码规范

在梳理团队开发流程,收集相关流程资料时,在百度文档上发现的一篇iOS软件代码规范文档:写的非常完善,具有很强操作性.百度上下载时花了一个下载币,现和大家共享.下载地址:http://download.csdn.net/detail/smallhorse87/8660881 在此基础上,我添加了客户端上线前收尾工作的备忘事项: APP中是否装备了必备功能:统计,日志收集及发送,版本检测以及自动更新,用户反馈: 确保产品经理和设计师体验过了APP,签字画押.确保APP体现了产品和设计的构想,没有理解

QWaitCondition 的正确使用方法(通过 mutex 把有严格时序要求的代码保护起来,同时把 wakeAll() 也用同一个 mutex 保护起来)

简单用法 QWaitCondition 用于多线程的同步,一个线程调用QWaitCondition::wait() 阻塞等待,直到另一个线程调用QWaitCondition::wake() 唤醒才继续往下执行. 为了描述方便,这里假设主线程调用Send()往通信口发送一个数据包,然后阻塞等待回包才继续往下执行.另一个线程(通信线程)不断从通信口中接收数据并解析成数据包,然后唤醒主线程.下面是按网上给的最简单的方法: // 示例一 // 主线程 Send(&packet); mutex.lock(

post 传递参数中包含 html 代码解决办法,js加密,.net解密

今天遇到一个问题,就是用post方式传递参数,程序在vs中完美调试,但是在iis中,就无法运行了,显示传递的参数获取不到,报错了,查看浏览器请求情况,错误500,服务器内部错误,当时第一想法是接收方式有问题,换了无数次接收方式,都没有效,后来在请求情况的,Response中发现,其实根本原因是由于post参数中不能包含html代码,设计到跨域攻击...,所以被禁止了. 微软给出的建议是 ASP.NET Web窗体中禁用请求验证 ,我是没成功,后来我查到其实可以用在前端用js base64加密,后

现场代码演示软件"Snippetty"

Mac平台上有一款功能强大的现场代码演示软件"Snippetty".Snippetty Mac版在实时演示期间,只要您需要下一个演示代码块,就可以单击其托盘图标.你永远不会被卡住,你的演示总是像排练一样工作.有需要的朋友,点击进入这里,下载体验全部Snippetty Mac版功能! 部分功能 1.片段为MARKDOWN花时间准备您的演示作为降价脚本可以通过多种方式帮助您.首先,你有一份关于你将要做什么的书面记录,一旦你交付了演示 - 你做了什么.你有一些东西需要排练,如果你将来需要运行