首页 新闻 会员 周边

C# 编译成dll程序集如何防止反编译,求大神提供解决方案

0
悬赏园豆:100 [待解决问题]

辛辛苦苦的劳动成果别别人盗取,这种感觉真不好受

请大神帮忙看看这种怎么解决,在网上看了一个maxtocode的加密,这种 好像加密了dll后续 reflect6是不能反编译了。但是reflect8直接可以看一个精光,而且maxtocode这个还收费,

暂时没有找到其他的办法,想这个问题想的头都大了。求大神帮忙!!!

shenz_free的主页 shenz_free | 初学一级 | 园豆:4
提问于:2016-12-26 14:55
< >
分享
所有回答(13)
1

可以使用混淆加密 使用Dotfuscator混淆代码以及加密

宋军涛 | 园豆:209 (菜鸟二级) | 2016-12-26 15:09

只能这么做吗,对dll加密这方面不是很了解属于新手状态

支持(0) 反对(0) shenz_free | 园豆:4 (初学一级) | 2016-12-26 15:17

@shenz_free: 混淆就可以了  或者你给程序中写些误导性的操作 让对方反编译看不懂。或者把你得程序改为B/S.  呵呵 

支持(0) 反对(1) 宋军涛 | 园豆:209 (菜鸟二级) | 2016-12-26 15:40
1

没有多么好的解决方案,混淆是一定的,只是增加了查看源代码难度。加壳也需要,只是目前常见的加壳工具大部分都能找到的脱壳工具,再好点就收费,价格还不菲。

我写的小软件价值不高,一般都是混淆加壳。能服务器完成的事情放服务器上,有写敏感dll都是动态都是经过上面操作后放在服务器上,下载到tmp中后反射加载。如果是不用联网的,跟exe编译到一起,也是反射加载。防专业人事没办法,也就防范下菜鸟外加点心理安慰

孤零落叶寒 | 园豆:606 (小虾三级) | 2016-12-26 15:35

我的也不是什么软件来的,是一个web的bin-》dll 但是这个web发布版是挂在别人的服务器,如果被破解了。我的源码全部曝光

支持(0) 反对(0) shenz_free | 园豆:4 (初学一级) | 2016-12-26 15:39

@shenz_free: web项目的话应该很多内容或数据可以放到自己数据库或服务器吧,然后用webservice调用

支持(0) 反对(0) 孤零落叶寒 | 园豆:606 (小虾三级) | 2016-12-26 15:52

@孤零落叶寒: 我的东西等于是全部写完挂别人的服务器,不存在webservices之说了。

支持(0) 反对(0) shenz_free | 园豆:4 (初学一级) | 2016-12-26 16:08
1

将商业机密部分写到c++里,用dllimport调用

小彬 | 园豆:947 (小虾三级) | 2016-12-26 16:06

请问C#程序集的强签名可以吗。

支持(0) 反对(0) shenz_free | 园豆:4 (初学一级) | 2016-12-26 16:07

@shenz_free: 没用,强签名只是别人不能修改你的程序集,看代码照样看

支持(0) 反对(0) 小彬 | 园豆:947 (小虾三级) | 2016-12-26 16:20

@小彬: 目前看来我只能先初步的混淆下吗。

支持(0) 反对(0) shenz_free | 园豆:4 (初学一级) | 2016-12-26 16:21
0

只要别人想破解没有破解不了的,只是说破解难度和成本的问题。

Supper_litt | 园豆:827 (小虾三级) | 2016-12-26 17:15

对啊。这个我知道,,但是不能直接 就可以被refletor看的到的那种,或者能混淆起来也行了。。

支持(0) 反对(0) shenz_free | 园豆:4 (初学一级) | 2016-12-26 17:17
1

加壳没多大用,硬件加密难度也很小(你总得存密码吧,这很容易找,这种的好处在于代码拿到无法运行,常见的模块是加密狗——狗是很卵的东西),混淆是相对好保障。

技巧:完成代码后,增加无用逻辑,增加Dictionary,没事就用点反射且反射时换算换算...总而言之在防读的情况下,代码结构越烂,安全系数越高。

如果你的程序是网络版的,你可以将服务器当作硬件使用,把部分dll或者源码或者数据等,自行加载,这样可以稍微有效的保护源码。

花飘水流兮 | 园豆:13560 (专家六级) | 2016-12-26 21:42

哇塞,感觉这位大神说的很好啊

支持(0) 反对(0) shenz_free | 园豆:4 (初学一级) | 2016-12-26 22:19

我现在是web版本的应用程序,,因为需要挂入别人的服务器,我是怕会把我的dll给破解了。所以一直在想解决办法的

支持(0) 反对(0) shenz_free | 园豆:4 (初学一级) | 2016-12-26 22:20

@shenz_free: 这种场合你可以光明正大的用狗,狗几十块。混淆参照上面的手法即可。

支持(0) 反对(0) 花飘水流兮 | 园豆:13560 (专家六级) | 2016-12-27 09:08

@花飘水流兮: 可以给个链接吗,在哪里买哦,推荐一个给我,谢谢大神啊

支持(0) 反对(0) shenz_free | 园豆:4 (初学一级) | 2016-12-27 11:09

@shenz_free: 很多厂家的,比如飞天诚信——声明我跟他毛关系没有哈。你到淘宝搜应该可以搜出很多其他狗的。

支持(0) 反对(0) 花飘水流兮 | 园豆:13560 (专家六级) | 2016-12-27 20:21
0

既然是web应用,还要挂到别人服务器上,那么就是已经把所有控制主动权双手奉上了,

一般WEB应用的话,数据是存数据库的吧,那么你这种情况,首先是数据就有危险了,人家随时可以打包一份,

他想看啥看啥;

他要盗用,直接连程序带数据库整个复制一份;

他要搞你,给你把用户请求导入到自己web程序里,坑死你的用户。

这种情况还担心破解,我觉得实在是你多虑了,根本用不着这么麻烦

Honedream | 园豆:406 (菜鸟二级) | 2016-12-27 05:28

   没得搞

支持(0) 反对(0) shenz_free | 园豆:4 (初学一级) | 2016-12-27 10:26
-1

首先,这个思想就不正确,现在这个时代,保护代码要靠版权,收费要靠服务!

已经过了那个只凭借一个独立软件就可以发家的时代了,目前,.NET只要是用在C/S的开发上,收费的核心点在那个S上面而不是C上面,C是用来提升S的使用价值的。

如果一心想靠C赚钱,你想想吧,C写的WINDOWS都被破解这么多年,你用一个开源的中间语言编写的代码,不是明摆着就让人家破解的么?

ensleep | 园豆:1682 (小虾三级) | 2016-12-27 10:22

那不是完蛋了。

支持(0) 反对(0) shenz_free | 园豆:4 (初学一级) | 2016-12-27 10:26

@shenz_free: 与其花非常大的精力在一个不能完成的事情上,还不如改变思路。你再加花,再乱,能看懂的人还是能看得懂。而且通过直接引用你的程序压根不用看得懂。

支持(0) 反对(0) ensleep | 园豆:1682 (小虾三级) | 2016-12-27 11:06

@ensleep: 哎,是我当初没有考虑这些东西。。我现在看来只能把一部分放在c++dll里面去了。C#太容易被破解了。真是郁闷

支持(0) 反对(0) shenz_free | 园豆:4 (初学一级) | 2016-12-27 11:11

@shenz_free: c++照样被破解啊,也是明文写在内存里面的呀,而且别人也不用看懂你代码,直接hook进去就可以了。还是那句话,跑在别人电脑上的东西就是脱光内裤给别人看的东西,要么关键东西不放在不运行在别人电脑上,要么就通过法律手段来保护。别的都是掩耳盗铃。

支持(0) 反对(0) ensleep | 园豆:1682 (小虾三级) | 2016-12-29 09:28
0

C#代码的反编译是非常简单的,如果需要加密,请使用C++,即使使用C++编码,也能被反编译,但是成本非常高,还有,现在崇尚开源,

悦光阴 | 园豆:2251 (老鸟四级) | 2016-12-27 12:24

说的的确是这样c#不给力啊

支持(0) 反对(0) shenz_free | 园豆:4 (初学一级) | 2016-12-27 12:26
0

把关键的东西 进行加密然后调的地方再解密,你看行不行

没用过spring | 园豆:92 (初学一级) | 2016-12-28 11:18

这种的话,总有一个地方引用吧。。然后破解dll之后就看见你使用了哪个dll进行了自定义加密。那通过算法解密后还是可以破解加密的那个dll啦。

支持(0) 反对(0) shenz_free | 园豆:4 (初学一级) | 2016-12-29 10:17
0

用clojure-clr, clojure等平台上的小众语言写程序,不仅写起来很舒服, 也能利用强大平台生态, 但生成的字节码难看, 反编译后看想来很困难.更不用说混淆后再反编译了

林鹏程财务分析软件 | 园豆:211 (菜鸟二级) | 2016-12-29 19:28
0

.NET Reactor可以加壳混淆

但是用de4dot 又可以脱壳,反正她们都是互相进步的!可以防止一些初级的反编译

冲杀 | 园豆:230 (菜鸟二级) | 2016-12-29 23:06
0

用个加壳软件,如Sixxpack v2.2chs  这个软件

小粽子饱饱 | 园豆:251 (菜鸟二级) | 2017-01-05 10:51
0

第一、你写的代码并没有你想象中值钱,基本不会有人去抄你的代码的。

第二、别人要偷的话,是偷走整套东西而不是你的部分代码。如果是个简单的系统,这个基本没法阻止,你知道有个工具叫磁盘克隆。。。

第三、赚钱要靠服务。你写的代码别人提供不了服务,这个是偷不走的。

xuanbg | 园豆:266 (菜鸟二级) | 2017-01-05 15:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册