对于Zelix KlassMaster(简称ZKM)有一个时间限制,有固定的过期时间。为了对ZKM进行破解,
可以通过反编译的方式进行。一般的软件首先要找到入口点,然后分析软件的流程。
1、软件ZKM的入口点。
通过分析,ZKM的入口点为com.zelix.ZKM,反编译com.zelix.ZKM,分析 public static void main(String... args)
主方法,发现调用了 Class.forName(z[6]); 通过字符串信息搜集,发现调用的是 com.zelix.zo
public static void main(String args[])
{
label0:
{
int i = rb.a;
try
{
Class.forName(z[6]); // com.zelix.zo
}
catch(ClassNotFoundException _ex)
{
System.err.println(a + z[12] + a);
System.exit(1);
}
try
{
Class aclass[] = new Class[1];
aclass[0] = c == null ? (c = a(z[24])) : c;
Constructor constructor = (d == null ? (d = a(z[2])) : d).getConstructor(aclass);
Object aobj[] = new Object[1];
aobj[0] = args;
constructor.newInstance(aobj); // 调用 new com.zelix.zo(String... args)
break label0;
}
.....
}
2、分析com.zelix.zo的运行过程
public zo(String as1[])
{
boolean flag3 = tb.b;
super();
if(as1.length == 0) // 无参调用 f();