修改DLL如此简单

有时在项目里我们经常会用到许多不同的第三方组件、控件等。
但绝大部分优秀的第三方组件都需要注册或有使用限制,又或者在界面上显示一段丑陋的未注册信息。这对于一些小型私人软件来说是不太有必要购买组件的。
最近我使用的一个优秀的SL控件库Divelements.SandRibbon也需要收费注册,使用限制就是在Ribbon界面上显示了未注册字样。
项目已经开发完成了,但这个“未注册”就要伴随程序部署了吗?
下面我来讲解一下如何把这些消息去除。
首先下载Reflector,反编译DLL,研究DLL的程序内容。

反编译出来的代码包括了Divelements.Licensing等几个命名空间,查看Licensing命名空间中的类,发现类名很奇怪,出现“x82d9ac98ca71b857”这样的名称,根本看不懂!
看不懂没关系,这是该DLL代码混淆的结果,许多类名和变量名都已经被混淆器改成了这种难以理解的名称。
不过幸好各种逻辑代码依然完好地反编译了出来。
关于消除未注册字样的方法有很多,最直观的就是修改注册验证。
不过由于该组件仍处于DEMO状态,就算注册了,也会出现DEMO的字样,所以我直接修改了“未注册”为空白字符串。
具体的修改方法如下:
下载Reflector插件Reflexil,并添加到Relector中。
在左边的对象树中打开需要修改的类,再在Reflexil中找到需要修改的地方,直接修改或删除就可以了,如下图
最后选择在对象树中选择DLL,并在Reflexil的Save As一下就可以了。
需要注意一下的是,一些DLL拥有强名称,重新应用的时候可能会出现错误,这时需要在Save As的时候去除一下强名称就可以了。
最后贡献下Divelements.SandRibbon破解DLL
点我下载
posted @ 2009-10-14 12:20  懵盛盛  阅读(3763)  评论(4编辑  收藏  举报