当前位置:编程学习 > C#/ASP.NET >>

ASP.NET防止DLL被反编译

.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文件可免于一般人的破解,当然,不可能绝对防止被破解。

 

转载请注明来自: http://www.caodong.net
--------------------编程问答-------------------- --------------------编程问答-------------------- 道高一尺魔高一丈~~~ --------------------编程问答-------------------- 用Xenocode加密混淆 --------------------编程问答-------------------- 混淆  加壳 --------------------编程问答-------------------- 学习了 --------------------编程问答--------------------
引用 3 楼 liuchaolin 的回复:
用Xenocode加密混淆


有用嗎?天真 --------------------编程问答--------------------
引用 6 楼 crackdung 的回复:
引用 3 楼 liuchaolin 的回复:

用Xenocode加密混淆


有用嗎?天真

真正的crack高手来了,哇, --------------------编程问答--------------------
引用 7 楼 btxp163 的回复:
引用 6 楼 crackdung 的回复:

引用 3 楼 liuchaolin 的回复:

用Xenocode加密混淆


有用嗎?天真

真正的crack高手来了,哇,


呵呵呵,我一直都在這裡,,,,,, --------------------编程问答-------------------- 技术一直在一更新...... --------------------编程问答-------------------- 占个位!再慢慢看! --------------------编程问答--------------------
引用 8 楼 crackdung 的回复:
引用 7 楼 btxp163 的回复:

引用 6 楼 crackdung 的回复:

引用 3 楼 liuchaolin 的回复:

用Xenocode加密混淆


有用嗎?天真

真正的crack高手来了,哇,


呵呵呵,我一直都在這裡,,,,,,


有没有什么建议
Xeoncode简单的混淆太弱了
尤其字符串混淆,反编译都能看到字符串混淆所调用的代码,不等于摆设么!!! --------------------编程问答--------------------
引用 8 楼 crackdung 的回复:
引用 7 楼 btxp163 的回复:

引用 6 楼 crackdung 的回复:

引用 3 楼 liuchaolin 的回复:

用Xenocode加密混淆


有用嗎?天真

真正的crack高手来了,哇,


呵呵呵,我一直都在這裡,,,,,,


而MaxCode混淆,从来都没有成功过,跟就无法运行!不知道maxcode的混淆是否已被兄弟破解了? --------------------编程问答-------------------- 关注,学习 --------------------编程问答--------------------
引用楼主 saiyo55 的回复:
.net是一种建立在虚拟机上执行的语言,它直接生成 MSIL 的中间语言,再由.net编译器 JIT 解释映象为本机代码并交付CPU执行。中间语言很容易被反编译,所以研究下如何有效的保护dll文件。

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

强签名

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

强签名很简单,本站另一文章已经……


楼主你的maxcode是如何设置的,可以发个图吗?
我生成的从来都没有能运行的. --------------------编程问答-------------------- he Frmaework version is not support, please update your framework or restart setup .NET framework\n\rPlease get a new runtime support to website http://www.maxtocode.com/FrameworkSupport.html\n\rError Code :  --------------------编程问答--------------------
引用 12 楼 wukaiping870123 的回复:
引用 8 楼 crackdung 的回复:

引用 7 楼 btxp163 的回复:

引用 6 楼 crackdung 的回复:

引用 3 楼 liuchaolin 的回复:

用Xenocode加密混淆


有用嗎?天真

真正的crack高手来了,哇,


呵呵呵,我一直都在這裡,,,,,,


而MaxCode混淆,从来都没有成功过,跟就无法运行!……


你認為maxtocode是混淆嗎?是一個很強的殼,解開了就什麽都沒有了 --------------------编程问答-------------------- http://bbs.pediy.com/showthread.php?t=135719 --------------------编程问答--------------------
引用 17 楼 crackdung 的回复:
http://bbs.pediy.com/showthread.php?t=135719



我就猜到你肯定混看雪论坛的.哈哈! --------------------编程问答-------------------- 新版本的maxtocode能加密了,不错,防破解方面怎么样.
--------------------编程问答--------------------
引用 19 楼 wukaiping870123 的回复:
新版本的maxtocode能加密了,不错,防破解方面怎么样.


對於不能脫殼者比登天還難,,對我來說,,能。。。。 --------------------编程问答-------------------- 标记下 试试 --------------------编程问答-------------------- 你認為可以保護碼?


看看我博客

http://ufo-crackerx.blog.163.com/ --------------------编程问答--------------------
引用 22 楼 crackdung 的回复:
你認為可以保護碼?


看看我博客

http://ufo-crackerx.blog.163.com/


圣天狗能脱壳吗? --------------------编程问答-------------------- 安全只是相对的,做到基本的防护就可以了,当程序达到一定的复杂度,就算给源代码(无注释)别人要看懂也很难,最多只能对感兴趣的部分进行研究。 --------------------编程问答-------------------- 去年的贴,现在都不结  --------------------编程问答-------------------- mark
--reply by CSDN Study V1.0.0.3 (starts_2000) --------------------编程问答-------------------- 见到看雪大牛了,N久了,看帖基本不回复,不得不膜拜下 --------------------编程问答--------------------
引用 23 楼 nfclass 的回复:
引用 22 楼 crackdung 的回复:
你認為可以保護碼?


看看我博客

http://ufo-crackerx.blog.163.com/


圣天狗能脱壳吗?


複製,,,,, --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 没有解不开的锁  大家淡定-。- --------------------编程问答-------------------- 楼主发表于:2010-11-01 20:13:08

结帖率:0.00% 
--------------------编程问答-------------------- --------------------编程问答-------------------- 手头有源代码放在那里不能赚钱有啥用?
--------------------编程问答-------------------- --------------------编程问答-------------------- 沒事意思的,,呵呵 --------------------编程问答-------------------- --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 分享了。NET被反编译DLL --------------------编程问答-------------------- --------------------编程问答-------------------- 将dll文件混淆 --------------------编程问答--------------------
引用 40 楼 zhzhzhchch 的回复:
将dll文件混淆


有用嗎?一樣被xx --------------------编程问答-------------------- 我觉得也是,没有什么意思的事情,本来这些东西都是防君子不防小人的,何必呢,但是君子又何须防备呢,只能说明……
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,