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

[原创]Zelix KlassMaster V5.1.1分析

2008-5-30 23:56
18333
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;
  }

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

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

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

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

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

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

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