Synthetica破解

GD Star Rating
loading...

话说前段时间提到把Synthetica给破了,而网上关于破解的文章很少,所以今天就详细说说我是怎么破的。

准备知识

Synthetica是一套很漂亮的Java的look & feel,大家可以去主页上跑一下demo(JWS的,需要安装JRE) 。可惜是commercial的,虽然有评估版下载,但是恶心的是,在评估版界面的最下方会有一块多余的区域(下图)

before.png

那这次破解的目的就是把这块区域给去了。

就我这几次破解来看,破解主要分以下几个步骤:
1. 反编译
2. 找关键代码(比如序列号校验算法)
3. 修改源代码
4. 编译打包

其中第1步是前提,在这点上Java的byte code的反编译是比较容易的了,因为毕竟是中间码,而且编译期采取的优化手段不多,反编译过来的基本就是源码。这里推荐DJ Compiler,一个相当老牌的Java反编译器。值得注意的是并不是所有的byte code都能顺利反编译,有些Java程序会使用所谓的“混淆”技术对编译后的代码就行破坏,混淆器一般采用以下方法破坏代码:
1. 不可反编译。这点其实基本不可能
2. 反编译后代码不可读。这点相当恶心,混淆器会把类名、方法名、字段名替换成没有意义的名字,当你打开编辑器放眼望去全是“class A”,“int _fld00043”,“void _mhd2314”的时候你就知道该有多痛苦了
3. 插入不可编译代码。这一点也比较恶心,说穿了就是直接修改byte code中的指令,使用合法的,但不可能从源代码编译到的指令替代原有的指令(比较拗口),比如使用“goto”替代循环。这样你的代码即使可以反编译成源代码但只能看不能改,除非你把goto再替换回去

这次Syn并没有使用混淆,所以用DJ很轻易地就反编了,接下来的活就是怎么找关键代码。一开始我以为评估版输入序列号校验成功后就升级成商业版,于是在那儿找了半天序列号的校验方法,没找到。后来凯子提供一条线索,Syn的商业版是要重新下的,于是猜测评估版和商业版不是一个版本(有时候破解也是要点推理的:-)),估计不会校验注册码。于是改变方向找加那一行字的代码,最后找到了:

  1. public void paintBorder(Component component, Graphics g, int j, int k, int l, int i1){
  2.     ...
  3.     g.setColor(UIManager.getColor("Panel.background"));
  4.     g.fillRect(j, i1, l, i1 + 16);
  5.     g.setColor(new Color(0xcc0000));
  6.     g.setFont(g.getFont().deriveFont(10F));
  7.     g.drawString("Synthetica - Unregistered Evaluation Copy!", 0, k + i1 + g.getFontMetrics().getAscent());
  8.     ...
  9. }
public void paintBorder(Component component, Graphics g, int j, int k, int l, int i1){
    ...
    g.setColor(UIManager.getColor("Panel.background"));
    g.fillRect(j, i1, l, i1 + 16);
    g.setColor(new Color(0xcc0000));
    g.setFont(g.getFont().deriveFont(10F));
    g.drawString("Synthetica - Unregistered Evaluation Copy!", 0, k + i1 + g.getFontMetrics().getAscent());
    ...
}

可以看出来它是通过Java 2D直接绘上去的,所以把这几句 注了,编译,打包,就ok了,最终结果:

after.png

原创内容,转载请注明: 转载自拈花微笑

本文链接地址: Synthetica破解

685

9 Comments

  • mehdi
    2011 年 06 月 20 日 - 上午 5:04 | Permalink
    GD Star Rating
    loading...

    can you send synthetica cracked for my mail?

  • hyatt
    2010 年 11 月 30 日 - 下午 2:15 | Permalink
    GD Star Rating
    loading...

    可以把你改好得寄給我嗎 感恩

  • suisui
    2010 年 03 月 19 日 - 下午 6:40 | Permalink
    GD Star Rating
    loading...

    版主,那个border方法该如何修改? 期待中… 我的邮箱[email protected]

  • 2010 年 03 月 16 日 - 下午 5:36 | Permalink
    GD Star Rating
    loading...

    济南网站优化(www.51on.org)站长来访了,博主的主题也很不错,文章有东西可学,常来看看,呵呵。

  • suisui
    2010 年 03 月 12 日 - 下午 4:33 | Permalink
    GD Star Rating
    loading...

    你这方法只是去除了文字,多余的那部分背景并没有除去,所以问题还是没有得到根本解决呢

    • 2010 年 03 月 12 日 - 下午 4:48 | Permalink
      GD Star Rating
      loading...

      对,当时好像还改了一个和border有关的方法,我找找

  • kan
    2009 年 08 月 04 日 - 下午 4:05 | Permalink
    GD Star Rating
    loading...

    what is the class name ?

    • 2009 年 08 月 10 日 - 上午 12:35 | Permalink
      GD Star Rating
      loading...

      忘了……等我有空了翻一下

  • santiago
    2008 年 06 月 30 日 - 下午 10:24 | Permalink
    GD Star Rating
    loading...

    可以发破解后的给我吗?我的EMAIL是[email protected] 谢谢

  • 发表评论

    电子邮件地址不会被公开。 必填项已用 * 标注

    *

    您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code lang=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" extra="">

    :wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:

    使用新浪微博登陆

    无觅相关文章插件,快速提升流量