由于本人的工作跟自己的专业不沾边,白天也用不了电脑,所以只能晚上用了。
2005年起,开始研究Java破解,到现在才刚刚入门。考虑到Java软件的保护措施,所以最先研究Java混乱器的原理与工作特点。
就一年来的经验,首先要提的就是使用注入技术(本人自定义名称)
比如一个Java程序中包含了加密过的字符串,我们如何获得!
example: ex1.java
package com.vhly.helptest;
imort java.io.*;
public class ex1
{
static String data = "....................."; // 注意该成员的权限 该字符串已经被加密
static{
// clinit 方法的代码 在类被加载后 默认调用
// 包含解码代码
}
public static void print()
{
System.out.println(data);
}
}
这是一个最最简单的例子
我们如何获取它的字符串,如何修改。。。在这里,我们不是用十六进制编辑器来处理,而是用自定义的类来修改
Helper.java
package com.vhly.helptest; // to access the same package path class ex1
import java.io.*;
public class Helper
{
public String getEx1String()
{
return ex1.data; // 因为ex1 的data使用默认权限 所以直接返回成为可能
}
public void setEx1String(String dataToDisplay)
{
ex1.data = dataToDisplay; // 因为data是静态变量 当之后调用 print方法时
// 就可以显示我们设置的内容了
}
public void print()
{
ex1.print();
}
public static void main(String args[])
{
Helper hp = new Helper();
hp.setString("This is cracked by vhly[FR]");
hp.print();
}
}
事情,发展很顺利
未完待续
by vhly[FR] 2006/04/11