Blog.GC

[.NET]飞雪桌面日历FXCalendar.NET6 破解

| Comments

寒假前夕就像学习学习破解程序,刚好某人叫我破解一个飞雪桌面日历的程序,看来正好可以当做学习破解的试验品(其实是大误啊) 上手以为和破解普通程序一样,于是OllyDebug了一下,发现完全不是这么回事。

之后用Reflector反编译,显然主程序加过壳。

破解

用NetUnpacker轻松脱壳之后再反编译,发现程序是用VB写的,但是是被混淆过的(想想现在的.NET程序基本上都被混淆了)

破解

之后用DotNet Id查出使用DotObfuscator混淆的,对应的用DeDot反混淆,结果出错。 暂时只能不鸟它,用Reflector打开反混淆后的程序,发现字符串和类名函数名都已经恢复了,但是流程没有恢复。

破解

尝试分析了一下程序,发现注册码验证函数位于FXCdll.dll中,一开始,我准备是写注册机,于是分析了一下它的算法,搞了n天后放弃了。 于是只能爆破了,首先用Ildasm对原始FXCdll.dll反汇编,找到判断枝位置,再用WinHex打开文件,把跳转改掉,保存。

破解

运行程序,结果发现出错,纠结了一段时间,上网找了一下,发现应该是强命名保护的问题,但是用sn.exe -Rh rehash了一下虽然发现不出错了,但是之后重新再尝试一下却发现没有强命名保护之后找了很多替换强签名的程序都没有用,再后来在某国外网站上找到一个去强签名的程序,成功去掉强签名。至于为什么当时在本机发生了突然不验证强签名的这点很纠结,以后再研究一下。

好了现在运行一下破解之后的程序,发现虽然显示已注册,但是注册提示还是会弹出来。 再对程序进行修改,把验证验证函数的输出直接改掉,破解成功,注册提示也没有弹出。

破解

接下来就是用Mpress在加个壳,大小就和原始文件一样了。。。

Comments

comments powered by Disqus