[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将字符串综合成
在(一)中有简单介绍