导航
  • 主页
  • VBS
  • .NET技术
  • VBA
  • VB网络编程
  • VB多媒体
  • VB数据库
  • VB控件
  • VB COM/DCOM
  • VB基础类
  • VB API
  • 问答

谁有高招:防止反编译?

qxh 2003-07-04 05:06:31
.NET真令人头痛:dll文件很容易就被反编译,而且反编译后与原源码一模一样(连类名、程序名、变量名都一样).

Visual Stadio 2003 提供的什么混淆器功能太差了,只进行变量重命名,未起到防止反编译的效果(花钱升为专业版就有此功能)

各位:推荐推荐好的办法。
...全文
1604 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
qxh 2003-07-06
太贵啦,上万RMB呢,谁买了,与我们交换软件如何?
回复
ArLi2003 2003-07-06
钱拿出来向www.remotesoft.com 购买混淆器或者买Dotfuscator 专业版
回复
qxh 2003-07-06
以下网址可把你的DLL文件反编译成与原来一模一样
http://www.remotesoft.com/salamander/index.html

如果能被反编译,通过加密盒(象用友)或机器码来达到版权控制就很困难.
回复
mari 2003-07-05
如果是高手,不用反编译水平也比我们高;如果是低手,给他源码他也长进不了多少
回复
nba23 2003-07-05
反编译也行?
回复
zwztu 2003-07-05
gz
回复
ywcyj 2003-07-05
gz
回复
aycn 2003-07-04
我没办法解决这个问题,帮UP
回复
Gorgee 2003-07-04
你反编译过吗?用那么多时间、精力、金钱还不如自己做了……
回复
xiajianfeng 2003-07-04
(转栽)

对于这个问题有一个通常的反击:一个真正的应用程序是很大的,因此堆积的IL容量会非常巨大。这虽然会阻止一些业余选手,但是对于那些真的想搞垮你的代码的人来说,这算不了什么。真实情况是这样的:来自ILDASM的堆积比来自一个编译代码的反汇编的堆积要容易阅读得多。感兴趣者能从IL堆积中学到有应用程序的许多东西。

按照Microsoft 所说的,要想保持你公司的秘密,可以把所有包含公司秘密的模块都放在受到保护的服务器上。如果你的程序是一个ASP.NET形式的客户/服务器应用程序的话,这样是很好的。但是如果你的应用程序是一个标准的桌面程序的话,这种方法就不太奏效了。那么应该如何保护知识产权呢?MSIL汇编程序的文档引用了公共行参数/owner:

ilasm ... /owner
ilasm ... /owner=Fergus

这个选项用一个口令对汇编进行加密,以防止它被反汇编。问题是 Microsoft 将要取消这个选项,因为首先是它的效果并不很好。因此,在用可管理的C++、C#或.NET beta 1的VB编写的桌面应用程序中,你是不能保护知识产权的。

但是还有希望。在最后的.NET侯选版本发布之前,Microsoft有可能还要引入一个obfuscator,它可以改变 MSIL的私用方法,从而使它对于除了CLR JIT编译器之外的任何人都不可读。但是,这并不能隐藏应用程序的公用方法或调用,必须要使用一个外部库。修改这些公用调用的名字或隐藏它们将使得CLR对外部函数的连接成为不可能。因此,当黑客在你的IL代码深处进行挖掘时,还是能发现你调用系统DLL时的一些蛛丝马迹。

现在,你只能用一种方法在一个桌面应用程序中保护知识产权。作为一个VB开发人员,你可能会觉得这很困难,但是你必须要在无管理的C++ 中编写你的重要代码,使用专为存取无管理的代码而提供的互用机制,并从你的VB.NET 应用程序中存取它。

在装运之前,你不能使用JIT编译代码,因为所有可管理代码都必须作为MSIL装运。但是当在目标机器上安装它时,可以将代码编译成汇编形式。最初这听起来很好。在安装盘上的代码仍然是IL,因此你可以手工从设置文件中将其提取出来,并分别从安装中将其反汇编。一旦图象被安装到用户的硬盘上,它就是汇编形式而非IL。除了安全性以外,这会使应用程序的运行速度稍有增加,因为这样一来,JIT 编译器就不需要编译IL代码了。


http://www.ccidnet.com/tech/guide/2001/06/13/58_2353.html

回复
greystar 2003-07-04
gz
回复
发动态
发帖子
VB
创建于2007-09-28

1.5w+

社区成员

VB技术相关讨论,主要为经典vb,即VB6.0
申请成为版主
社区公告
暂无公告