当前位置: 技术问答>java相关
[求助]JAVA程序的反编译
来源: 互联网 发布时间:2015-08-26
本文导语: ICE Browser是一个纯JAVA的浏览器,我看好他的原因是他对Javascript的完美支持,但是网站上下载的有时间限制,我尝试着反编译,找到了时间现在的位置,但是没有办法把他重新编译回去,请大家帮忙 软件可以在http:/...
ICE Browser是一个纯JAVA的浏览器,我看好他的原因是他对Javascript的完美支持,但是网站上下载的有时间限制,我尝试着反编译,找到了时间现在的位置,但是没有办法把他重新编译回去,请大家帮忙
软件可以在http://www.icesoft.com下载,也可以从这里下载
http://test.6636.net/ib5trial.jar
我找到时间限制的部分在icestormStormBase.java里面
软件可以在http://www.icesoft.com下载,也可以从这里下载
http://test.6636.net/ib5trial.jar
我找到时间限制的部分在icestormStormBase.java里面
|
一般加了限制的程序一定有一段代码如下:
if ( exp )
java.lang.System.exit(0);
你找到这个代码,然后
先写的一个你自己类,类名长度与System一样。再写一个方法,名字长度与exit一样。方法里面什么都不要做。
再直接修改先前这段代码的二进制代码,将java.lang.System.exit(0)改为你自己的类名与方法名。
然后再将你的类也打包到这个软件的.jar中。一般这样就可以了。
曾经破解了一个java软件就是这样做的。如下:
package jave.lane;
public class Callme
{
public static void exit(int i)
{
return;
}
public static long currentTimeMillis()
{
return java.lang.System.currentTimeMillis();
}
}
重载currentTimeMillis方法是因为那个软件中还用到了System.currentTimeMillis()方法。
if ( exp )
java.lang.System.exit(0);
你找到这个代码,然后
先写的一个你自己类,类名长度与System一样。再写一个方法,名字长度与exit一样。方法里面什么都不要做。
再直接修改先前这段代码的二进制代码,将java.lang.System.exit(0)改为你自己的类名与方法名。
然后再将你的类也打包到这个软件的.jar中。一般这样就可以了。
曾经破解了一个java软件就是这样做的。如下:
package jave.lane;
public class Callme
{
public static void exit(int i)
{
return;
}
public static long currentTimeMillis()
{
return java.lang.System.currentTimeMillis();
}
}
重载currentTimeMillis方法是因为那个软件中还用到了System.currentTimeMillis()方法。
|
假设目录结构如下:
d:javatestib5trial.jar
d:javatestStormBase.java (修改后的文件)
按照如下顺序执行操作:
1,set classpath=%classpath%;.;ib5trial.jar
2, javac -d . *.java
3, jar -uvf ice ib5trial.jar
4, ok
d:javatestib5trial.jar
d:javatestStormBase.java (修改后的文件)
按照如下顺序执行操作:
1,set classpath=%classpath%;.;ib5trial.jar
2, javac -d . *.java
3, jar -uvf ice ib5trial.jar
4, ok