




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.NET程序的代码混淆、加壳与脱壳通常我们通过代码混淆、加密的形式达到软件保护的目的。在Web开发里我们接触过的可能就是JS代码加密了,可以通过对JS代码进行混淆、加密从而实现对核心JS代码的保护。如果没有接触过的可以在这里简单了解一下,这次我们就不去细说了。在以前Win32的软件中,加壳脱壳的技术已经发展的非常成熟,国内有大名鼎鼎的看雪、吾爱破解等论坛,三四年前还在上学时,论坛里的大牛一直都是自己的偶像。而.NET程序因为编译结果不是机器代码语言,而是IL语言,所以加壳脱壳相关的软件还不是很多,我搜索到了一些,如VS自带的DotFuscator、.NET Reactor、xeoncode等,这次我们就简单介绍下手边有的.NET Reactor 。1.代码混淆代码混淆主要通过一些名称替换、移位、流程混淆的方式来实现。先来看一个测试的DEMO程序,很简单的一个Winform程序,实例化窗体时实例化一个User类,点击按钮显示用户名,这样也可以测试加密、加壳后程序是否能够继续运行。1usingSystem;2usingSystem.Windows.Forms;34namespaceCodeObfuscator56publicpartialclassForm1:Form78privatereadonlyUser_currentUser;9publicForm1()1011InitializeComponent();12_currentUser=newUser1314UserID=1,15UserName=Parrycnblogs16;171819privatevoidButtonAlertClick(objectsender,EventArgse)2021MessageBox.Show(_currentUser.UserName);22232425publicclassUser2627publicintUserIDget;set;28publicstringUserNameget;set;2930我们使用最常用的反编译工具Reflector对生成的exe反编译查看源码。下面我们打开.NET Reactor进行代码混淆,载入exe后,在一般设置里可以设置压缩选项,不过设置后程序初始化速度会变慢,是因为需要将代码解压缩后再加载到内存中。在混淆选项里将Enable设置为启用,混淆公共类型,字符串加密等常用的也设置成启用。其他的选项Tips里都有详细的解释,就不一一讲解。当我们再使用Reflector反编译查看时,发现没有看到混淆后的代码,而是看到了这个结果。猜想应该是.NET Reactor程序对exe进行处理后打了个包,我们使用查壳工具查看后发现果然是这样,外面套了一层Delphi的东西,这个还不是壳,只是一些额外数据。关于Overlay相关内容可以查看这里。2.加壳与脱壳加壳实际上就是一种加密方式,被加壳的程序在运行前要先运行一段附加指令,这段附加的指令完成相关操作后会启动主程序,程序就像被包在一个壳里一样,加壳的技术在病毒编写的时候也被大量使用。我们使用北斗加壳程序对上面的exe加壳后,再来反编译看一看。反编译后我们已经找不到之前程序任何相关名称、代码,完全被一个“壳子”包裹了起来,在程序运行时,程序将先运行我们反编译看到的main函数进行一系列的解压、解密动作后将代码加载到内存中运行原始的程序,这样就实现了对程序的保护功能。脱壳就是对程序进行解压缩、解密,将外面的一层壳脱去后,继续进行逆向工程进行破解。而关于脱壳,本人也是略知皮毛,不敢胡乱卖弄,感兴趣的可以去论坛里学习相关知识。这里介绍的混淆、加壳的方法也只是为了在需要对自己的程序进行保护时的一种方法。觉得文章还行的话就推荐下吧,哈哈。作者:Parry出处:/parry/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。分类:03.Sugars,04.NET标签:.NET,安全绿色通道:好文要顶关注我收藏该文与我联系Parry关注 - 16粉丝 - 171荣誉:推荐博客+加关注180(请您对文章做出评价)上一篇:ASP.NET Web API(二):安全验证之使用HTTP基本认证下一篇:小心DataContractJsonSerializer和JavaScriptSerializer的内部实现差异posted 2012-11-14 17:18Parry阅读(8765) 评论(25)编辑收藏评论#1楼2012-11-14 17:31|Quella如果混淆,那就没办法看到原来的代码。支持(0)反对(0)#2楼楼主2012-11-14 17:42|ParryQuella引用如果混淆,那就没办法看到原来的代码。是,只是进行了混淆而已,一些逻辑还是能看出来的。支持(0)反对(0)#3楼2012-11-14 17:44|sunriseyuenParry引用Quella引用引用如果混淆,那就没办法看到原来的代码。是,只是进行了混淆而已,一些逻辑还是能看出来的。代码多了,看到你不想看了.支持(0)反对(0)#4楼楼主2012-11-14 17:50|Parrysunriseyuen引用Parry引用引用Quella引用引用如果混淆,那就没办法看到原来的代码。是,只是进行了混淆而已,一些逻辑还是能看出来的。代码多了,看到你不想看了.但是如果价值很高的话,哈哈!支持(0)反对(0)#5楼2012-11-14 19:34|James-yuDLL 混淆后啥效果?支持(0)反对(0)#6楼2012-11-14 20:17|幻元素使用了.NET Reactor之后,序列化等用到元数据的功能就用不了了,不知有没有什么解决方法.支持(0)反对(0)#7楼楼主2012-11-14 20:41|ParryJames-yu引用DLL 混淆后啥效果?效果是一样的支持(0)反对(0)#8楼楼主2012-11-14 20:44|Parry幻元素引用使用了.NET Reactor之后,序列化等用到元数据的功能就用不了了,不知有没有什么解决方法.还真没试过,我去看看 :-)支持(0)反对(0)#9楼2012-11-14 20:48|rsync这些混淆没太大作用。人家直接到处IL,然后修改IL。之后重新build一份就解决问题了。支持(0)反对(0)#10楼楼主2012-11-14 21:41|Parryimfunny引用这些混淆没太大作用。人家直接到处IL,然后修改IL。之后重新build一份就解决问题了。你用这种方法试试看能不能看到IL哦支持(0)反对(0)#11楼2012-11-14 21:44|rsyncParry混淆的是可以看到的。我确定。加壳的不能够。但是加壳的不一定能够运行,也不能够被引用撒的。用vs带的ildasm看下就知道了。至于代码呢,谁爱看就谁谁拿去的,混淆没什么意义。支持(0)反对(0)#12楼2012-11-14 22:17|daconglee至于代码呢,谁爱看就谁谁拿去的,混淆没什么意义支持(1)反对(0)#13楼2012-11-14 22:33|LineZero文章不错,支持一下支持(0)反对(0)#14楼2012-11-15 00:27|gongjiaspack支持(0)反对(0)#15楼2012-11-15 07:25|liuyilin888皮毛而已支持(0)反对(0)#16楼楼主2012-11-15 09:45|Parryliuyilin888引用皮毛而已恩 水平一般 脱壳的部分还等大牛们来写我再学习学习 哈哈支持(0)反对(0)#17楼楼主2012-11-15 12:09|Parryimfunny一般的混淆是可以的但是使用上面的.NET Reactor混淆后是看不到的,需要脱壳后才能看到。至于混淆的意义主要看不同的需求了,就想js混淆一样。支持(0)反对(0)#18楼2012-11-15 14:07|eflay再保护也比c+的保护好破的多,所以一般最多加个变量名混淆,否则反倒破坏很多东西,降低执行效率。支持(0)反对(0)#19楼2012-11-15 16:30|6572789混淆后,代码慢不慢,并且会不会爆病毒错误支持(0)反对(0)#20楼2012-11-15 18:56|为乐而来这个一定要学习。只有winform能这样做吗。webform行不行啊支持(0)反对(0)#21楼2012-11-15 22:29|鹏程一键财务分析软件Clojure+Logic+R+C#使用scala,clojure,等罕用的平台语言,编译后相当于进行了一次流程混淆,再用混淆软件混淆一下,效果应还可以的。支持(0)反对(0)#22楼楼主2012-12-05 09:53|Parry为乐而来webform如果发布的话也是dll啊,所以也是可以的。支持(0)反对(0)#23楼2013-01-09 15:07|danch744不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版合同代理协议书范本
- 会计英语(第六版)课件 Lesson 4 LONG TERM ASSETS
- 2025林地流转合同样本
- 营销知识培训大纲课件
- 2025-2026学年七年级语文上册第五单元检测基础卷( 含答案)
- 2025-2026学年七年级语文上册第三单元检测培优卷(含答案)
- 2025年合同变更与解除管理规定的工程案例分析
- 2025年绿色金融产品创新与市场绿色金融产品创新驱动因素分析报告
- 2024人教版七年级生物上册第一、二单元共2套单元练习试卷(含答案)
- 2025设备租赁合同示范文本设备租赁合同
- GB/T 28714-2023取水计量技术导则
- 供应商纠正预防措施报告
- 蛋白质-能量营养不良课件
- 1输变电工程施工质量验收统一表式(线路工程)
- 市热电厂清洁生产审核报告
- GB/T 239.2-2023金属材料线材第2部分:双向扭转试验方法
- 四年级大庆精神铁人精神教案
- 《廉洁从业》企业文化培训课件
- 《教育魅力-青年教师成长钥匙》
- 《生物多样性公约》及国际组织课件
- 绪论(遗传学)课件
评论
0/150
提交评论