前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

如何做到.net dll文件不被破解和反编译-c/s开发-Builder频道-至顶网 ZDNet旗下网站 投 稿 开发者在线 Hi,欢迎投稿、爆料 稿件可以直接投递到:builder@zdnet.com.cn,请先阅读投稿需求。 消息来源 / 联系方式* 内容* 首 页 浏览 -> 开发资讯 云应用 Web开发 数据库开发 iOS Android 编程语言 Tips 推荐 国外专家团 --> 当前位置: 首页 > 编程语言 > 如何做到.net dll文件不被破解和反编译 如何做到.net dll文件不被破解和反编译 ZDNet开发频道 来源: 中国IT实验室 2013年06月14日 13:34:23 评论(0) 关键词: .net DLL 本文摘要 加密后的dll文件比先前大了一倍,用Reflector.exe反编译后,发现dll文件加密的更彻底,因为主体函数内容都隐藏了。通过以上三步,使您的dll文件可免于一般人的破解,当然,不可能绝对防止被破解。 ZDNet至顶网开发频道 .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 顶一下( 0 ) 踩一下( 0 ) 文章评论 登录 (没有帐户?快速注册) 使用第三方帐号登录: 邮件订阅 订阅开发者在线技术邮件 《应用开发管理周刊》 邮箱地址: 热门文章 本周 本月 PHP高手是如何炼成的谷歌Web工具箱使用技巧详解4月编程语言排行榜 Objective-c升势趋缓PHP实现新浪微博自动登陆2013软件开发趋势如何使用MySQLDumper备份MySQL数据库如何使用Visual Studio VsVim编辑器CSS常见面试问题和答案更多 + 华为P6集成Airsharing技术华为开发者联盟功更多 + 华为大学生软件创意大赛热力正劲PHP面向对象之private权限控制如何做到.net dll文件不被破解和反编译VB.NET:Visual Studio编译器选项比较实例恢复是否是由数据库自动完成的MySql UTF8乱码问题修改步骤怎么让C#程序同时只能运行一个实例职涯:开发工作适合您吗更多 + 热门评论 推荐 华为P6集成Airsharing技术华为开发者联盟功不可没 开发大拿怎么写代码如何做到.net dll文件不被破解和反编译MySql UTF8乱码问题修改步骤职涯:开发工作适合您吗2013年6月编程语言排行榜谁进了前十基于信息编码原理Java实现通用组合算法 C#:如何把大数据插入SQLServerPHP如何选择排序算法编程实现连续的整数序列PHP面向对象之private权限控制 ©2013 CBS Interactive. All rights reserved. 北京智德典康电子商务有限公司(至顶网)版权所有. 京ICP证010391号 京ICP备09041801号-159 京公网安备:1101082134