CuteEditor破解手记

用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://files.cnblogs.com/minsky/CuteEditor_for_NET4.5_Crack%20by%20Minsky.part1.rar
http://files.cnblogs.com/minsky/CuteEditor_for_NET4.5_Crack%20by%20Minsky.part2.rar

原文: http://www.cnblogs.com/minsky/articles/192692.aspx

你可能感兴趣的:(editor)