DotNet研究

写程序比泡妞容易,能泡到妞的人就一定能写好程序!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  0 随笔 :: 2 文章 :: 18 评论 :: 0 引用
用DotNet多年了,也经常看到一些非常好的控件,最烦躁有些控件做得比较好,但老是有限制或者要注册啊,CuteEditor就是其中一个。一直以为FreetextBox时做得最好的。后来在CnBlogs上面听一个网友讲CuteEditor不错,下回来一看果然不错,但是有使用限制。Reflector一看发现混淆过。
还是使用原来老的破击方法去掉强名,去掉验证特性,运行报错:无法装载指定的DLL。Reflector看发现 LicenseManager.Validate(typeof(Editor));去掉这一段话,编译运行,对象找不到实例。因为混淆没有耐心去仔细查看。反正没有地方要用,第一次放弃。
昨晚加班,反正没有Bug要改和同事聊到控件时,因为自己也做控件,觉得这个控件的做法非常不错,继续尝试一次吧。
去强名;
去验证的特性;
LicenseManager.Validate(typeof(Editor));  为LicenseManager.Validate(typeof(Object));
编译运行,发现Onprerender的时候a对象不存在。
在此找到构造函数追到 if (!EditorUtility.b())函数,下面方法可疑:改条件让他永远不执行吧
编译运行继续报同样的错误,
去掉protected override void OnPreRender(EventArgs e)中的 this.a.ad();
编译运行,这个时候错误在protected override void Render(HtmlTextWriter writer)地方出现。
确定a对象在OnPreRender之前被置为Null了。
因为代码混淆过了,这个时候用Reflector不好看执行顺序了,
用ilasm 编译成为Debug版本吧,用VS.Net的IDE环境来调试IL码,关键是找出什么时候被置为Null了,混淆的代码真乱,没耐心继续跟踪了,同事用IDE反复跟踪位置发现
stfld      class CuteEditor.Editor/a/a CuteEditor.Editor/a/a/a::a
在一段函数中两个字符串op_Inequality的时候ldnull
当然永远把他们改为op_Equality吧!
再次编译运行正确,并不需要注册文件。
改时间过一个月同样也 没有问题因为这个控件的授权方式还有好多种,所以也不知道破解得是不是充分。
有兴趣的可以下载测试吧。
破解包中本身以包含有完整的破解IL,大家可以继续修改和测试。

http://www.cnblogs.com/Files/minsky/CuteEditor_for_NET4.5_Crack%20by%20Minsky.part1.rar
http://www.cnblogs.com/Files/minsky/CuteEditor_for_NET4.5_Crack%20by%20Minsky.part2.rar

posted on 2005-07-14 11:53  兵临城下  阅读(...)  评论(...编辑  收藏