开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2408|回复: 6
收起左侧

[C#图文教程] [转]保护您源码的安全,让IL都束手无策,同时将所有dll和exe打包在一起的方法。...

[复制链接]
结帖率:33% (3/9)
发表于 2013-10-20 16:14:58 | 显示全部楼层 |阅读模式   江苏省宿迁市

简单的作者申明:

   本方案由作者首先提出,所有从事.net开发的朋友都可以使用下文中的方法和技术,允许在非混淆器、加壳工具以外的商业开发中使用,如果要应用在混淆或加壳产品中,请先告知作者,经作者同意方能使用。本文著作权归作者所有,未经作者同意请不要随意转载。如果你继续阅读,便视为同意此条款。


      我们都在寻找,花很长一段时间寻找。一种可以完全保护代码安全的做法。用了无数种工具,无数种方案。在强大的IL和反编译,脱壳下,矛下还是刺穿了盾。

  最近作者也一直头痛这件事,不过结合了以前的一些解决办法。又想出来了一种新的方案。

  OK,长话短说,做法相当简单。

  网上大多数加壳的方式是将程序或库放入资源,然后以读取资源来运行。这种方法好是好,可是,当这层壳被攻破之后,代码依然暴露无疑。

  我的做法其实与上面的方法比较类似,不过,我是将程序或库用IO的方式直接生成2进制码,再将这种码生成一个byte[]数组(很简单啦,就是用FileStreamReader读,然后再用StreamWriter写嘛,写的时候加工一下啦)存放于.cs文件中(我是直接生成了一个CS文件)。然后将该文件复制粘贴到工程中。在这个过程中,我们还可以对这个.cs文件中的,byte[]进行加工,让这些二进制码更短,更难破译。

  然后生成一个控制台程序(别的也可以),使用AppDomain.Load(byte[])方法进行加载,并运行。

  嗯。。。这样一个带壳的程序就做好了。不过,有朋友在试过之后,可能会很头痛,这样的方法只能加载一个程序,并不能包含程序中所需要用到的其它dll和资源文件。怎么办呢?

  嘿嘿,很简单啦。将资源和文件按以上方式同样生成为byte[],然后使用AppDomain中的AssemblyResolve事件,将未能加载的Assembly加载上,便能正确使用了。

  经过测试,所有程序,包括Remoting等都能正确运行。不过有个小问题,就是序列化后存于硬盘文件中的对象不能正确使用。作者也正在研究呀,相信不久之后会有更好的解决办法。

  这个办法同样适用于经过其它工具混淆和加壳后的exe和dll,而且在生成之后还可以再次混淆和加壳,在反编译这种程序后,只能看到一大堆读不懂的01码,而且在IL中也同样如此。大家不防一试。


结帖率:33% (3/9)
 楼主| 发表于 2013-11-25 21:24:24 | 显示全部楼层   江苏省宿迁市
赚来的啦 大家要谢的话去写原作者
回复 支持 反对

使用道具 举报

发表于 2013-11-24 20:32:26 | 显示全部楼层   云南省文山壮族苗族自治州
谢谢楼主分享-来学习学习
回复 支持 反对

使用道具 举报

结帖率:100% (56/56)

签到天数: 23 天

发表于 2013-11-24 08:45:16 | 显示全部楼层   浙江省绍兴市
好晕 ..............
回复 支持 反对

使用道具 举报

结帖率:33% (3/9)
 楼主| 发表于 2013-10-21 12:05:47 | 显示全部楼层   江苏省宿迁市

能发给我一份嘛  邮箱:844125365@qq.com  谢了·~
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)
发表于 2013-10-20 16:16:58 | 显示全部楼层   河北省衡水市
YD的  c#板块
回复 支持 反对

使用道具 举报

结帖率:60% (3/5)
发表于 2013-10-20 16:16:09 | 显示全部楼层   江苏省淮安市
感谢分享,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表