[Target]: Zelix KlassMaster (Java 's Obfuscator)
[Cracker]: vhly[FR]
[Tool] DJ Java Decompiler 3.8.8
对于Zelix KlassMaster(简称ZKM)启动时会显示一个 "I agree" 窗口,只有点击I agree按钮之后才会进入主窗口
由于逆向分析(二)中已经找到了NAG窗口类为 com.zelix.g1,现在只要修改 g1类的代码,由于g1是通过构造方法进行操作的,因此对于NAG窗口的去处可以用以下步骤进行
new g1(z2_1, fv1, s4, hv1); // 此处为NAG("I agree")窗口
以下为com.zelix.g1的反编译代码
package com.zelix;
import java.awt.*; 。。。。
public class g1 extends w1 implements ActionListener // w1 extends JDialog
{
yw c;
JFrame d;
fv e;
String f;
JButton g;
JButton h;
l4 i;
static String j[];
private static String z[];
public g1(JFrame jframe, fv fv, String s, yw yw1) // 构造方法 重要
{
super(jframe, z[2], true);
e = fv;
f = s;
c = yw1;
d = jframe;
a(z[1], z[3], z[0]);
a(false);
}
public void actionPerformed(ActionEvent actionevent)
{
label0:
{
Object obj = actionevent.getSource();
b(); // 隐藏自身
if(obj == g)
{
c.a(d, e, f); // 主窗口
if(!tb.b)
break label0;
}
c.a();
}
}
public void b()
{
setVisible(false);
dispose();
}
// 部分代码省略
}
1、找出"I agree"按钮的事件处理代码 // 经过分析
public void actionPerformed(ActionEvent actionevent)
{
Object obj = actionevent.getSource();
b(); // 隐藏自身
if(obj == g)
{
c.a(d, e, f); // 主窗口
if(tb.b)
c.a();
}
}
2、在g1的构造方法中添加处理代码
在构造方法中加入
c.a(d,e,f); c.a();
public g1(JFrame jframe, fv fv, String s, yw yw1) // 构造方法 重要
{
super(jframe, z[2], true);
e = fv;
f = s;
c = yw1;
d = jframe;
a(z[1], z[3], z[0]);
a(false);
c.a(d,e,f);
c.a();
}
成功去除 NAG
NAG一闪即逝
3、以上代码段中的z[n]说明
Zelix KlassMaster将字符串综合成
在(一)中有简单介绍