[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將字符串綜合成
在(一)中有簡單介紹