码迷,mamicode.com
首页 > 其他好文 > 详细

谈谈ILDasm的功能限制与解除

时间:2015-09-08 01:43:20      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

原文:谈谈ILDasm的功能限制与解除

首先,我在此申明,此文并不是教别人突破限制,我们只是用学习的眼光看问题

大家都知道ILDasm是。NET程序的反编译工具,它是由Microsoft提供的反编译工具。

它可以直接把。NET程序反编译为IL文件及资源文件,这样即可以非常容易的让黑客进行修改,删除强命名,修改注册码算法等等。。。并且Ilasm再次编译,得到一个正确的,可发布的程序集
并且,这个功能是其它反编译器所不能替代的功能,因为ILDasm真的太重要了。也许有的朋友能理解,有的朋友不能理解,但没关系,我们今天的重点并不是这个。

这是一件不可思议的事,让软件没有了安全保障。幸亏有了XenoCode,它有一项功能即是 Anti ILDasm 。这是一个非常棒的功能,但它是怎么做到的呢?

其实,这是ILDasm的一个限制,当你在程序中制造某个标志后,那么程序集将不可以再被ILDasm反编译,ILDasm会提示您,这个程序集已经是一个被有版权的程序集,您不可能对其反编译。呵呵,我们最可爱的ILDasm会罢工?

我曾经找过相关资料,不过没有找到有什么最简单的方法让自己的程序集变成已有版权的程序集,XenoCode有这样做,不过我不想去分析它。如果有知道的朋友,请与我交流一下

那么我们今天的任务是什么呢?就是把罢工的ILDasm拉回来,让它继续为我们工作。

OK,分析一下吧:经过短暂的分析,让我出了一身汗。。。这样的版权保护有还不如无,一定误导了很多朋友。

为什么我这样说呢?因为我发现,想让ILDasm再次工作,比想象中的简单很多,这根本就档不住任何东西。请看下面我跟踪的代码:

 

 1技术分享0042B4BD   E8 8AFCFDFF      CALL  ildasmCr.0040B14C  //报错函数
 2技术分享
 3技术分享
 4技术分享00415FC6   E8 12470100      CALL ildasm.0042A6DD    //进入的主函数
 5技术分享
 6技术分享
 7技术分享0042AABD   FF51 0C          CALL DWORD PTR DS:[ECX+C]    //判断函数
 8技术分享0042AAC0   3BF7             CMP ESI,EDI
 9技术分享0042AAC2   75 0F            JNZ SHORT   ildasm.0042AAD3     //关键跳转地址,改为JMP即可
10技术分享0042AAC4   68 96010000      PUSH 196
11技术分享0042AAC9   E8 8964FFFF      CALL ildasm.00420F57
12技术分享0042AACE   E9 E3090000      JMP ildasm.0042B4B6
13技术分享



这已经很明显了,ILDasm只用了一个标志去阻止"已有版权"的程序集,而您只需要修改一个机器指令就可以畅通无阻的反编译任何程序集,并修改其内容再次编译

以上代码您可以自己修改,如果您不会,也可以到   http://files.cnblogs.com/Aiasted/ildasm.rar 下载一个已经修改好的版本。

XenoCode配合强命名的做法,可能从此将会消失

(注:我没有从事过任何。NET程序集的破解,仅仅是看过在ILDasm反编译出来的程序集可以去掉强命名一文,如果有对之处,请指正)

谈谈ILDasm的功能限制与解除

标签:

原文地址:http://www.cnblogs.com/lonelyxmas/p/4790429.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!