首页
社区
课程
招聘
[旧帖] [原创]一款Java软件的爆破 0.00雪花
发表于: 2011-3-27 10:15 3153

[旧帖] [原创]一款Java软件的爆破 0.00雪花

2011-3-27 10:15
3153

软件:Shape Collage

Shape Collage是一款免费的图片拼贴制作工具,可以轻松制作任意形状的图片拼图,如矩形、心形、圆形、字母形状,甚至绘制自定义形状。

但是免费版会有水印。而pro版本则没有,而且可能保存工程为PSD格式文件,并且开放了许多功能。

首先使用 jd-gui 进行反编译,通过观察可以发现这个jar被ProGuard保护过了,典型的就是超过了26个class,然后文件通过改变文件名大小写的方式存在。所以在Windows上是不能直接解压出来的,出动虚拟机,开上ubuntu进行打包。

因为pro版本会在标题显示一个pro,所以直接搜索即可。

在ca\vincentcheung\shapecollage\ShapeCollageGUI.class文件中将能找到这么一段。

  private void H()
  {
    if (this.jdField_f_of_type_Boolean)
    {
      setTitle("Shape Collage Pro 2.5.3");
      this.jdField_p_of_type_JavaxSwingJMenuItem.setText(jdField_a_of_type_JavaUtilResourceBundle.getString("Open_Project"));
      this.jdField_x_of_type_JavaxSwingJMenuItem.setText(jdField_a_of_type_JavaUtilResourceBundle.getString("Save_Project"));
      this.jdField_a_of_type_JavaUtilHashtable.put(this.jdField_p_of_type_JavaxSwingJMenuItem, jdField_a_of_type_JavaUtilResourceBundle.getString("Status_menu_open_project"));
      this.jdField_a_of_type_JavaUtilHashtable.put(this.jdField_x_of_type_JavaxSwingJMenuItem, jdField_a_of_type_JavaUtilResourceBundle.getString("Status_menu_save_project"));
      this.jdField_p_of_type_JavaxSwingJMenuItem.setEnabled(true);
      this.jdField_x_of_type_JavaxSwingJMenuItem.setEnabled(true);
      this.jdField_z_of_type_JavaxSwingJMenuItem.setText(jdField_a_of_type_JavaUtilResourceBundle.getString("Registration_Info"));
      this.jdField_a_of_type_JavaUtilHashtable.put(this.jdField_z_of_type_JavaxSwingJMenuItem, this.jdField_z_of_type_JavaxSwingJMenuItem.getText());
      this.jdField_b_of_type_JavaxSwingJDialog.setTitle(jdField_a_of_type_JavaUtilResourceBundle.getString("Shape_Collage_Pro_Registration_Info"));
      return;
    }
    setTitle("Shape Collage 2.5.3");
    this.jdField_p_of_type_JavaxSwingJMenuItem.setText("(Pro) " + jdField_a_of_type_JavaUtilResourceBundle.getString("Open_Project"));
    this.jdField_x_of_type_JavaxSwingJMenuItem.setText("(Pro) " + jdField_a_of_type_JavaUtilResourceBundle.getString("Save_Project"));
    this.jdField_a_of_type_JavaUtilHashtable.put(this.jdField_p_of_type_JavaxSwingJMenuItem, jdField_a_of_type_JavaUtilResourceBundle.getString("Status_menu_open_project") + " (" + jdField_a_of_type_JavaUtilResourceBundle.getString("Upgrade_To_Pro") + ")");
    this.jdField_a_of_type_JavaUtilHashtable.put(this.jdField_x_of_type_JavaxSwingJMenuItem, jdField_a_of_type_JavaUtilResourceBundle.getString("Status_menu_save_project") + " (" + jdField_a_of_type_JavaUtilResourceBundle.getString("Upgrade_To_Pro") + ")");
    this.jdField_p_of_type_JavaxSwingJMenuItem.setEnabled(false);
    this.jdField_x_of_type_JavaxSwingJMenuItem.setEnabled(false);
    this.jdField_z_of_type_JavaxSwingJMenuItem.setText(jdField_a_of_type_JavaUtilResourceBundle.getString("Upgrade_To_Pro"));
    this.jdField_a_of_type_JavaUtilHashtable.put(this.jdField_z_of_type_JavaxSwingJMenuItem, this.jdField_z_of_type_JavaxSwingJMenuItem.getText());
    this.jdField_b_of_type_JavaxSwingJDialog.setTitle(jdField_a_of_type_JavaUtilResourceBundle.getString("Upgrade_To_Pro"));
    this.jdField_h_of_type_JavaxSwingJTextField.setText(jdField_a_of_type_JavaUtilResourceBundle.getString("Unregistered"));
  }

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (7)
雪    币: 437
活跃值: (110)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
说的不详细
2011-3-27 10:37
0
雪    币: 416
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主是强人,最近也搞class文件,头都大了。
2011-4-17 14:33
0
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
厉害~~~~~~~~~~
2011-4-17 14:37
0
雪    币: 242
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
那要是class经过混淆呢?你反编译的话什么都看不到的这种情况怎么办呢?
2011-4-17 15:29
0
雪    币: 265
活跃值: (56)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
楼主,写的不错,期待佳作
2011-5-1 09:56
0
雪    币: 18
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
保存class,切换至虚拟机,把修改好的所有文件打包成zip,再改名为jar,双击运行,pro版本
2011-5-2 05:57
0
雪    币: 0
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼主继续努力
2011-5-2 07:13
0
游客
登录 | 注册 方可回帖
返回
//