首页
社区
课程
招聘
[原创]Zelix KlassMaster V5.1.1分析
发表于: 2008-5-30 23:56 18929

[原创]Zelix KlassMaster V5.1.1分析

2008-5-30 23:56
18929

java破解,首次写破文,请前辈们多指教

破解的是Zelix KlassMaster V5.1.1 试用版,试用期1个月

分析入口:
ZKM.jar 用rar查看 META-INF/MANIFEST.MF 下的Main-Class 信息
Main-Class: com.zelix.ZKM,证明入口在这个类

Eclipse 建立java工程,运行com.zelix.ZKM.main(String[] args)
直接进入显示授权的JFrame

寻找关键点:
Crack的关键就是寻找关键点,或者说是寻找载入注册信息的那段代码
发现授权JFrame上有Zelix KlassMaster的图片,
所以在java.awt.MediaTracker.addImage(Image image, int id)
下系统断点找到com.zelix.wl类

分析com.zelix.wl,制作测试方法
public static void licenseFrame() {
  wl showMsg = new wl("1", "2", "3");
  JFrame f = new JFrame();
  f.add(showMsg);
  f.setSize(400, 400);
  f.setVisible(true);
}
可以单独显示授权JFrame,证明思路正确,继续

分析com.zelix.wl得出,授权信息来自
String z[]
而z[]的信息来自void a()方法
在void a()方法中,通过映射取得的其它类中的信息,由于代码混淆了,很难
找到这个类,

下系统断点java.lang.reflect.Method.invoke(Object obj, Object... args)
分析得出这个包含信息的类是com.zelix.ae

分析ae得知
private static String b; //到期信息
private static String c ;
private static String d ;
private static final String z = "1aIbrE$zOaExwM71y";//固定字符串

更改字段b的值
Field f = ae.class.getDeclaredField("b");
f.setAccessible(true);
f.set(ae.class, "1111111111");

com.zelix.ak.a(String s1, String s2, String s3, Object obj)
报异常
分析此方法,主要的验证逻辑就在这个方法中

逻辑很简单,我就不再分析了,直接把破解的ae粘出来

  private static final String a[] = new String[] { "授权号:", "无", "到期日期:", "", "获许人:", "none", "说明:", "请不要用于商业用途", "", "" };
  private static String b = "9466968747021";
  private static String c = "678000000000";
  private static String d = "83000000000";
  private static final String z = "1aIbrE$zOaExwM71y";

  public static String a(Object obj) {
    return a[((Integer) obj).intValue()].trim();
  }

  public static String a() {
    return z;
  }

  public static String a(int j) {
    return a[j];
  }

  public static String b() {
    return b;
  }

  public static String c() {
    return c;
  }

  public static String d() {
    return d;
  }


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (9)
雪    币: 7
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
版主能给我个传附件的权限吗,图片不能上传很不方便
2008-5-31 00:11
0
雪    币: 190
活跃值: (20)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
3
沙发坐一个,呵呵
2008-5-31 08:45
0
雪    币: 47147
活跃值: (20465)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
10帖以上就有附件权限。
2008-5-31 11:49
0
雪    币: 328
活跃值: (39)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
5
private static final String z = "1aIbrE$zOaExwM71y";//固定字符串

这个一定是经过ZKM的字符串加密的,希望解密后再 发言

而且 虽然使用期限修改了,但是还有别的限制

可以看看我的博客 Zelix KlassMaster逆向工程 http://feed.feedsky.com/vhly

不知道直接发个 blog地址,这样论坛允不允许

很高兴 ZKM又有人分析了,我想可以多交流
2008-6-2 13:40
0
雪    币: 7
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
谢谢vhly前辈的指点
那个固定的字符串只是和另外的一个类中的字符串比较了一下,没看到其它校验用到它
估计是我分析的不够透彻,到你博客里研究下
2008-6-3 15:55
0
雪    币: 257
活跃值: (105)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
7
破解混淆两个方法的限制并不容易,
需要点时间:)
2008-6-25 09:30
0
雪    币: 328
活跃值: (39)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
8
我花了半年的时间在做字符串恢复,现在在做源代码的修复,还有很多路要走 800 多各类,不是一件容易的事情呀
2008-6-27 09:18
0
雪    币: 2477
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
软件在哪儿能下载到?
2010-7-6 15:19
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
最好是能够写一个好帖子出来。大家都看一看,学习学习
2011-3-15 16:35
0
游客
登录 | 注册 方可回帖
返回
//