瑞星卡卡安全论坛
鬼鬼小猫咪 - 2009-12-25 9:10:00
如何保护自己的.NET程序不被反编译呢?
用户系统信息:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)
chzhn - 2009-12-25 9:13:00
这个我还真不会,但一般的情况下都是混淆加反射调用。
鬼鬼小猫咪 - 2009-12-25 9:13:00
哦......那瑞星将在以后的版本上考虑使用.NET的程序么?
chzhn - 2009-12-25 9:16:00
明年有部分代码用.Net做,据说是用wpf做界面。
鬼鬼小猫咪 - 2009-12-25 9:18:00
哦,据说,运行.NET的程序必须安装Framework框架啊.....那不是很麻烦么? 这个问题有什么好的处理办法吗?
chzhn - 2009-12-25 9:21:00
一般情况下不考虑没有安装.Net Framework,另外.Net程序是可以编译为本机代码的,不过一般情况下是为了代码保护才这么做。
鬼鬼小猫咪 - 2009-12-25 9:22:00
Net程序是可以编译为本机代码? 这样一来就不用装框架了? 用什么编译呢?
如果瑞星将来使用.NET编写程序,如何保护代码安全呢?
chzhn - 2009-12-25 9:24:00
现在还不会啊,只是在一本书上看到过。
云腾四海 - 2009-12-25 9:29:00
不懂、、
鬼鬼小猫咪 - 2009-12-25 9:29:00
哦,我也一直在为这些事情烦心呢....即使是混淆了,也就好比把原来定义的那些东西给换成什么abcde的了...原来的代码还是能看出来的...
前段时间有看到有反混淆的...郁闷死了....最后只好把重要的东西写到一个VC的库里去了...
再就是必须安装.NET框架的问题很烦,加到installshield里面去直接导致安装包过大..:kaka6: 而且安装框架的时候也很慢很慢..不知道的以为死机了呢.:kaka4:
chzhn - 2009-12-25 9:34:00
呵呵,既然你用.Net写程序,就不需要考虑没安装.Net的机器了,你可以试试Smart加密,能将类和函数都加密成不可打印字符,而且还有流程混淆,reflector就是用这个软件加密的。
zengjie5927 - 2009-12-25 9:35:00
两位大牛在聊天,无形的飘过!
鬼鬼小猫咪 - 2009-12-25 9:39:00
哦,太感谢了.:kaka4:
鬼鬼小猫咪 - 2009-12-25 9:42:00
不过........如果明年瑞星采用了.NET的程序...是集成框架安装呢?还是不集成呢? 如果集成的话....原来电脑已经中毒的情况下,会不会造成安装失败? 是集成2.0还是3.0,还是3.5呢? 如果原来客户的机器上安装的版本与集成的版本不同,该如何处理呢? 如果强制安装或升级客户计算机上的框架,会不会导致客户原有.NET程序出现异常呢?如果不集成的话,没有框架的计算机安装完瑞星会不会导致程序出现错误呢?
茶馆小二 - 2009-12-25 10:32:00
技术帖
tianxunmycool - 2009-12-25 10:58:00
从理论上讲反编译是必然的,除非你能找到一种真正意义上的不可逆转的加密方法。
所以说,基本上都能反编译
但是,可以使用一些方法防止菜鸟级用户反编译,比如:使用VS自带的混淆器防止你的程序被反编译
鬼鬼小猫咪 - 2009-12-25 11:00:00
我是用 Dotfuscator Professional Edition 4.0 Evaluation 混淆的.
鬼鬼小猫咪 - 2009-12-25 11:01:00
其实反编译也看反到哪一步了,像.NET这样的中间语言可以直接反到源码,像VC6啊.VB6啊,那样的是直接编译到二进制的,反到源码就不太可能了.
networkedition - 2009-12-25 11:04:00
感觉像是替别人问:kaka7:
鬼鬼小猫咪 - 2009-12-25 11:05:00
是自己问的....
我可是初学者哦~ 大牛们多多帮助哈.
tianxunmycool - 2009-12-25 11:20:00
原帖由 鬼鬼小猫咪 于 2009-12-25 11:01:00 发表
其实反编译也看反到哪一步了,像.NET这样的中间语言可以直接反到源码,像VC6啊.VB6啊,那样的是直接编译到二进制的,反到源码就不太可能了.
有些VC或VB我有直接反编译到源码的经历.
鬼鬼小猫咪 - 2009-12-25 11:22:00
是么..用什么工具反的呀?
我以前反过VB的.....结果只能得到界面..没代码:kaka6:
好像VB4以下的可以....vb5.vb6就反不到了.....呵呵
tianxunmycool - 2009-12-25 11:23:00
其实加壳也是一种VB或C类小程序常用的防避方法
chzhn - 2009-12-25 11:24:00
太强大了,VC写的程序还能反编译到源代码。
鬼鬼小猫咪 - 2009-12-25 11:24:00
哦,这个考虑过,不过担心有些杀软报壳,最后就没用.呵呵
鬼鬼小猫咪 - 2009-12-25 11:25:00
人外有人....天外有天.......一切皆有可能....
鬼鬼小猫咪 - 2009-12-25 11:28:00
关于加壳,我还有个问题,没试过,不知道会不会有问题啊,就是我写的程序有好多共用dll类库,如果都给加壳了.....对调用有没有影响呢?
chzhn - 2009-12-25 11:33:00
如果用的是混淆,而且dll是.Net的,就必须同时混淆dll,否则可能程序不能运行。
tianxunmycool - 2009-12-25 11:43:00
原帖由 鬼鬼小猫咪 于 2009-12-25 11:22:00 发表
是么..用什么工具反的呀?
我以前反过VB的.....结果只能得到界面..没代码:kaka6:
好像VB4以下的可以....vb5.vb6就反不到了.....呵呵
你到网上,查一下"VB反编译程序"一般都能找到可用的,但不能保证对每个程序都能实现.
说明:
VB反编译程序源代码,看名字,你一定会吓了一大跳,如果编译后的VB程序能被反编译(VB5以前可以,之后就没有看到开放的程序了),那还需要程序员做什么.呵呵,其实此代码可以把VB编译后的程序结构给分析出来,包括有多少窗体,多少模板,多少类,多少用户控件etc,有多少过程,和使用了哪些API函数。学习VB写的程序EXE结构的,你去可以看看
tianxunmycool - 2009-12-25 11:55:00
原帖由 chzhn 于 2009-12-25 11:24:00 发表
太强大了,VC写的程序还能反编译到源代码。
如果你懂得汇编,就就不会觉得强大了.
另外,有些程序是可以通过一些方法将他们转为低版本(比如VB6转为VB4),那么之后的问题就好办了.
© 2000 - 2026 Rising Corp. Ltd.