dll防止反编译
使用过.NET的程序员都知道,.NET是一个巨大的跨时代进步,它开发效率高、功能强、界面美观、耐用、新的语言C#已经提交为行业规范、CLR共公运行库资源丰富,这所有的特点标志着它成为主流编程语言是必然的。
可是他也有一个缺点,那就是编译好的程序集可以完全被反编译成源代码,这给一些不法份子提供了很好的机会,试想想,您辛苦的劳动成果就这样轻易的给别人利用,是多么不公平的事阿?所以如何保护我们的知识产权成了一个大问题。
MAXTOCODE 已经完全超越了传统的混淆手段来保护源代码的方式,他将完全加密您的代码,使您的代码完全没有办法反编译。保护强度已经不是混淆器可以与之抗衡,是目前保护强度最大,最完美的.NET产品保护方案。
MAXTOCODE 是 Aiasted.SOFT 完全自主开发的一款 .NET 代码保护工具。它是目前世界上高强度保护工具之一。
第一种代码保护方案是混淆,这是一个不错的方案,可惜强度还是无法保证,如果要做一个大的逆向工程有一定困难,但针对某个算法或功能进行解读还是很容易的。反观混淆原理则发现,混淆其实只是一个与障眼法差不多的技术。第二种就是MAXTOCODE的保护技术了,MAXOTCODE 采用了难以理解的机器语言来加密您的.NET程序集,(特别注意:MAXTOCODE的强度建立在加密算法之上,而不上简单的混淆。)在程序集运行时运态解放源代码,所以在原理上已经比混淆强度提高了许多。我们保护您所有的代码,不让不法份子看到您任何一个有效的代码,使不法份子完全无法被反编译。
⑵ 如何让C++写的dll不被反编译
简单回答:
1、理论上不能保证程序不被反编译。
2、一些加壳软件可以做到加大被反编译的难度,迫使操作者先解壳才能做反编译,但同时会降低程序的运行效率。
3、当前的技术条件下,一般而言,反编译出的“源代码”一般而言并不能作学习,参考的源代码,多数情况下只能用于分析区部片断分析,主要用于破解或小范围类修改。
4、一些简单的加壳软件:ASPACK、UPX、PECompact等,如果想尝试,自个去搜索下载后试试。加壳后的软件还有可能被某些杀软当成恶意软件。
5、这也正是很多对安全要求高的系统使用“三层架构”(类似访问网页/网站)的原因。因为在三层架构中,核心软件、数据不被用户直接接触。
************以下是相关知识,有耐心可看看************
一、关于反编译与破解。
1、以当前的技术来说,理论上,所有的程序都存在被反编译的可能。
2、但是反编译出来的代码并不一定能被技术不高的人看懂,因为反编译出来的“源代码”与编写者写出的原代码在80%以上是不同的。这是因为反编译的原理是根据机器码(或中间码),让机算机进行反向生成高级语言,而不是找出编写者原有的代码,找出原有的代码是不可能的。反编译出来的代码在可理解性、可阅读性上,一般而言是非常差的。
3、但是,这并不代码反编译出来的“源代码”没有价值,对于内行来说,分析反编译出来的代码中的某些特定片段,就可以对程序进行破解,找出程序的关键点、口令、数据来源等等。因为破坏总是比建设要容易,分析局部比规划全局要容易得多。
4、如果考虑到被反编译将关键代码进行特殊处理的话,可能加大相关的难度,比如将特定的字符串分成多个字串在程序中存储,或是进行加密后存储,在使用时合成/生成,不用时即时在内存中清除等等……。
5、反编译后对关键部分的定位往往是根据字符串来进行的,比如在用户没有注册时,跳出一行对话,告诉用户“请注册后再使用”,破解者就会在反编译后追查这个字串所在,然后查到这个字串对应的变量与地址,再追查调用这个变量或地址的代码,然后再延伸查到什么情况下调用“调用这个变量或地址的代码”,最后,设定跳过语句。这就是最典型的破解注册的方法。破解完再将修改了的“源代码”进行编译,或是根据“源代码”直接修正程序中对应的代码,OK,破解版正式完成。
二、关于加壳。
1、理论上,同样,没有破解不了的壳。
2、但是有些加壳软件使用了一些特别的方法,使得破解壳的难度变得非常难,技术不够的朋友很难下手,比如将原程序代码拆分、变型、植入自校验等等技术。
3、但加壳软件同样是程序,它自身就存在被反编的可能,加了壳可以类比成,在一个木箱外面再加个保险柜。但千万别以为保险柜就一定是保险的,面对各种技术开锁、暴力开箱,再强的保险柜也只能是加大难度而已。
4、越复杂的加壳,就会使得程序运行时效率降得越低,这是必然的,因为原本只关注目标任务的程序现在还要时时提防着被提取、被监测。
⑶ .NET 编译出来的DLL文件,如何才能不被反编译
1.有那种代码混乱器,其实也就是改改类名字等,常用的有
DotFuscator, .NET Reactor, xenocode 。。。你可以自己搜索下载了
2.当代码量很大的时候,反编译去读MSIL的代码也是很辛苦的,工程量很大
3.一般.net写的程序都是基于web的,放在服务器上,WebService,所以盗版破解也显得不是那么有意义了。。。
友情提醒:事先备份好你的代码!
⑷ C# DLL如何保护防止被破解
.net的实时编译(JIT)特性决定了用它开发的程序可以被轻松反编译,同时由于采用反射等技术,使得DLL能被未授权调用。
所以要想不被破解,一是不能被反编译看到源码,二是不能被随意调用。
什么混淆加壳加密等,都是可逆的。鉴于.net代码可以包含非托管代码,我们可以用C++解析C#代码生成DLL,这个DLL在被调用时验证调用者信息,就可以解决针对C#的破解,以及非授权调用了。
参考链接:http://blog.csdn.net/qwsf01115/article/details/52169574
⑸ 如何有效防止C#编写的DLL被反编译
为防止这类反向工程的威胁,最有效的办法是模糊。
模糊工具运用各种手段达到这一目标,但主要的途径是让变量名字不再具有指示其作用的能力、加密字符串和文字、插入各种欺骗指令使反编译得到的代码不可再编译。
例子:
对未经模糊处理的代码执行反向工程:
Private Sub CalcPayroll(ByVal employeeGroup As SpecialList)
While employeeGroup.HasMore
employee = employeeGroup.GetNext(True)
employee.updateSalary
DistributeCheck(employee)
End While
End Sub
同样的代码,经过模糊处理再执行反向工程:
Private Sub a(ByVal b As a)
While b.a
a = b.a(True)
a.a
a(a)
End While
End Sub
显然,两段代码的处理逻辑相同。但是,要说清楚第二段代码到底在做些什么极其困难,甚至要判断它正在访问哪些方法、哪些变量也很困难。
这种改变变量名称的功能是可配置的,例如,假设正在构造一个DLL,可以要求不改动API,有趣的是,这一处理过程显然只是简单地把大量变量的名称简缩成单个字符,但获得了非常好的模糊效果。
⑹ 请教,如何反编译dll文件
如何反编译dll,如何将反编译的文件生成dll。
反编译dll
安装vs,最好是最新版本的,如果要反编译的dll使用新版本创建的,也能反编译成功。下面是详细的反编译步骤。
1.打开C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\ildasm.exe,这个程序是微软提供的反编译软件,打开要反编译的dll。
2.然后选择文件-转储,这时会弹出转储选项的对话框(一般按照默认即可),设定好以后选择转储位置。
3.完成后会生成以res和il结尾的文件,还有可能包含以.resources结尾的文件。这样我们就将dll反编译完成。根据需要修改il文件。
如何反编译.resources文件呢
选择开始-所有程序-vs安装文件夹-vs tools-开发人员命令提示符,然后在弹出的dos窗口下输入resgen 1.resources 1.resx,这样resources文件变转化成可以编辑的resx文件。
组合dll
先说如何将resx文件组合成resources文件
选择开始-所有程序-vs安装文件夹-vs tools-开发人员命令提示符,然后在弹出的dos窗口下输入resgen 1.resx 1.resources,这样resx文件变转化成可以编辑的resources文件。
将反编译后的文件组合成dll文件
选择开始-所有程序-vs安装文件夹-vs tools-开发人员命令提示符,然后在弹出的dos窗口下输入ilasm /dll/resource=1.res 1.il,注意res文件和il文件位置不可以改变,这样就生成了想要的dll。
当然如果对生成的dll不放心,可以使用.net Reflector进行查看。希望你能成功
⑺ C# 写的dll文件能防止人家反编译么
有必要麻?人家Windows XP, Visual Studio,Sql Server这么贵的软件都不加什么壳.反倒是随便什么人写的一个小软件喜欢拿来加密.
⑻ dll文件能被反编译吗
要用一些工具,不过反编译出来的也是不三不四的,要自己看
⑼ C#如何防止被别人反编译
C# 编写的代码通过VS编译器生成 dll 或 exe ,很容易被一些反编译工具查看到源码或对源码进行修改。
为防止代码被反编译或被篡改,我们可以进行一定的防范措施。但不能杜绝,因为DotNet编写代码运行必须编译成IL 中间语言,IL是很规则,同时也很好反编译。
反编译防范措施:
设置项目代码反汇编属性
混淆
方法一:防止 Ildasm.exe(MSIL 反汇编程序) 反汇编程序集
方法很简单在项目文件AssemblyInfo.cs中增加SuppressIldasm属性。
效果很明显,很难看出反编译代码所写的真正逻辑。
缺点:
C#代码通过混淆工具生成后,增加了很多转换过程。这使得反编译工具无法很直观看到源码真正逻辑。但源码代码过多转换会使软件本身运行效率降低,甚至会出现报错情况。
⑽ C# dll 文件有什么好的混淆工具防止反编译
首先 C#没有任何办法反编译其次 C#只能混淆代码,起到一定的功效最后 C#混淆工具很多,VS自带的并不强大,可以用些比如Dotfuscator、xeoncode、foxit等等