| 网站首页 | Vip会员区 | 教程 | 下载 | 图片 | QQ家园 | 免费资源 | 在线服务 | 论坛 | 博客 | 程序开发 | It学堂 | 作品发布 | 
站点相关
代刻黑客光盘或订做光盘

精品软件程序定制

为您的网站或者服务器保驾护航
相关内容
最 新 热 门
相 关 文 章
没有相关文章
您现在的位置: 红色黑客联盟 >> 教程 >> 其他技术 >> 病毒技术 >> 正文
初学C#破解之一--简单了解C#破解
文章录入:7747.Net    责任编辑:7747.Net 

【字体:

【文章标题】: 初学C#破解之一--简单了解C#破解
【文章作者】: ayaREI
【作者主页】: http://hi.baidu.com/ayaREI
【软件名称】: CrackMe01
【软件大小】: 24.0 KB
【下载地址】: 点击下载
【加壳方式】: 无
【保护方式】: password保护
【编写语言】: Visual C#
【使用工具】: Xenocode Fox 2007
【操作平台】: WinXP SP2
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
我们的C#软件工程就要完成了,已经进入了收尾的阶段。有一个事情不得不提上了日程,那就是对我们制作的软件的保护。以前接触过的保护基本上没有基于.NET平台的,但是这一回的目标却是这个未知的领域,那么到底前途如何我不敢保证,但是起码可以在摸索中学习这一点我异常喜欢。:)
dotNet程序破解的文章并不多见,不过NET平台是大势所趋,相信一段时间之后,这一类的文章会渐渐的多起来的。很多Crack .Net的文章使用了IL和Reflector两款工具,为什么我的文章仅仅使用了Xenocode Fox 2007一款软件呢?因为我的Reflector已经过期了,又无法上网更新,所以只好使用Xenocode Fox 2007了。(好XX的理由~)

1.了解.NET平台

这是为了照顾不了解.NET平台的人的介绍章节,不过无论怎样仍旧推荐你看一下。MS发表的.net基于Net Framework,它与传统的Windows不同,它保存成为微软命名为中间语言的一种语言(MSIL,我们可以理解为和VB5/6相似的中间语言,在虚拟机中执行),而不是本地汇编代码。当程序执行时,由Framework负责将MSIL转化为本地的汇编代码,这个过程称之为JIT。基于这个原因,实际上.NET平台的程序在原始状态下是可以基本获取全部的源码的。(这里一般指C#和VB.net,VC++有部分解析为了本地汇编代码的。)

2.静态反编译工具介绍

实际上Xenocode Fox 2007我在写这篇文章时是第一次使用。(再次抱怨下Reflector)Xenocode Fox 2007是由Code Systems Corporation开发的.Net平台反编译工具。这里有个主要注意的一点,之所以称之为反编译工具,就是因为它可以比较完整的还原出原始的原始代码。(依旧针对VB.net和C#。)我手中的版本是E文版本,还没有汉化过,至于其他的功能还没有研究过,有机会的话再深入挖掘一下吧。(看外观比较简单,应当属于设置简单威力巨大的那种。)


这次破解的程序是我为了演示随意写的一个密码验证程序,使用了很简单的验证保护。由于使用Xenocode Fox 2007破解起来十分的简单,因此我的步骤页就简略一点了,大家可以看懂就可以了。
打开Xenocode Fox 2007,十分简洁的界面,左面是类的显示窗口,右面是反编译的源代码。
点击工具栏上的“Open”按钮,选择“crack1.exe”打开,左面的类显示出了结构。如果你了解C#编程的话,那么你很快明白只有那个以程序名命名的才是我们的住目标。(要不你到系统内存里面去找什么......)依次展开,“Crack1.exe”-》“Crack1”-》“From1”(窗体名,这个程序是单窗体),然后就可以看见以控件注明的类了。下面很简单了吧,点击一下唯一的“Button”键(实际上你可以按照命名规则来寻找的,我偷下懒啦:P)右面立刻显示出来了该Button实现的代码: private void button1_Click (object sender, EventArgs e)
{
       string text2 = textBox1.Text;
       string text1 = "Hello";
       if (text2 == "")
       {
            MessageBox.Show("Did you input something?");
       }
       else if (text2 == text1)
       {
            MessageBox.Show("Hello,master!");
       }
       else
       {
            MessageBox.Show("Do you kown the password?");
       }
}
   实际上这段代码只有变量名不是我以前定义的以外,其他的代码都是完美的还原了,不得不惊叹一下:)。这样密码就一眼看到,无需什么破解了吧?啰嗦一点,既然可以还原代码,写注册机就是很轻松的事情了,爆破什么的无聊事情大抵就不用做了吧?

--------------------------------------------------------------------------------
【经验总结】
.Net的分析并不是这么的简单。首先,我们只是调试了一个简单的程序,其次,这个程序并没有做任何的保护,所以,完成分析是很轻易的事情。实际上.NET平台下的文件分析并不是这样的简单。下个文章里我们会深入的继续探讨

--------------------------------------------------------------------------------
【版权声明】: 转载请注明作者并保持文章的完整, 谢谢!

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     | 设为首页 | 加入收藏 | 广告服务 | 我要投稿 | 关于我们 | 版权申明 | 免责声明 | 隐私声明 | 网站地图 |