好吧,其实我写这篇博客的目的就是要破解Spket,但是我又不想宣扬破解,所以就美其名曰:研究反编译技术。其实呢,这也没什么含量。
Spket IDE 是一个很酷的JavaScript和XML的开发工具,并且提供eclipse的插件。我主要是用来编写js的,支持主流的js框架——Extjs,YUI,jQuery等都可以很不错地支持。因为我对js其实不是很熟练,这东西很大程度地提高了我的工作效率。本来社区免费版也没什么不好的,只是只能用默认的设置。但是默认设置在格式化js代码的时候,超过80就开始换行,让我有点小不爽。刚好最近项目的一个deadline结束了,日子又开始过得轻松了,就花了点时间研究了下如何解决这个问题。单用户版的价格是$29.90,这超出了我的能力范围,如果¥29.90的话,我估计会毫不犹豫地购买-_-
Google了下,发现其注册程序在com.spket.ui_xxx.jar* 包里的com.spket.ui.internal.License.class中,据说没有混淆。这就大大降低了难度。这里再介绍一个免费的工具JD,和.NET中的reflector类似的东西,但是功能不如reflector强大。JD同样也有eclipse的插件,很好很强大。
下面就开始反编译,首先把jar包中的com.spket.ui.internal.License.class用JD反编译,结果很不错。这里就不去研究算法了,我也没想写注册机,自己玩玩就好了,采取最直接最暴力的方法——return true。
共三个校验相关的函数方法:
public boolean check(String paramString) {
return check(getKeyFromText(paramString));
}
public boolean check(File paramFile) {
try {
byte[] arrayOfByte = getLicenseData(paramFile);
return check(arrayOfByte);
} catch (IOException localIOException) {
} catch (RuntimeException localRuntimeException) {
}
return false;
}
private boolean check(byte[] paramArrayOfByte) {
if (paramArrayOfByte != null) {
BigInteger localBigInteger1 = new BigInteger(paramArrayOfByte);
paramArrayOfByte = new byte[bpn.length + bpd.length];
System.arraycopy(bpn, 0, paramArrayOfByte, 0, bpn.length);
System.arraycopy(bpd, 0, paramArrayOfByte, bpn.length, bpd.length);
BigInteger localBigInteger2 = new BigInteger(new String(paramArrayOfByte), 16);
BigInteger localBigInteger3 = BigInteger.valueOf(51419L);
BigInteger localBigInteger4 = localBigInteger1.modPow(localBigInteger3, localBigInteger2);
if (localBigInteger4 != null) {
byte[] arrayOfByte = localBigInteger4.toByteArray();
if ((arrayOfByte != null) && (arrayOfByte.length >= 39)) {
String str = new String(arrayOfByte);
if ((str.length() >= 39) && (str.charAt(0) == '1')) {
for (int i = 1; i < 39; ++i) {
int j = str.charAt(i);
if ((i == 17) || (i == 20))
if (j != 47)
return false;
else if ((j < 48) || (j > 57))
return false;
}
return true;
}
}
}
}
return false;
}
懒得去研究了,全部返回true。
下面就开始修改com.spket.ui.internal.License.class,这里需要用到Javassist,我只是看了部分文档,有别的需求的同学去自己 查找文档。
新建一个项目,然后再主函数中写入下面的代码
public static void main(String[] args) {
ClassPool pool = ClassPool.getDefault();
CtClass cc = null;
try {
cc = pool.get("com.spket.ui.internal.License");
if (cc != null) {
CtMethod[] methods = cc.getDeclaredMethods();
// methods[4].insertBefore("{return true;}");
for (CtMethod ctMethod : methods) {
String longName = ctMethod.getLongName();
System.out.println(longName);
if (longName.startsWith("com.spket.ui.internal.License.check")) {
ctMethod.insertBefore("{return true;}");
}
}
}
// cc.writeFile();
cc.writeFile("e:/workspace/HaveFun/CrackSpketIDE/bin");
} catch (Exception e) {
e.printStackTrace();
}
}
把生成出来的com.spket.ui.internal.License.class替换原文件,至此就搞定了。在eclipse的Spket中随便输入注册字符就可以了。如果还是不可以的话,在你的user.home的目录中看是不是有spket.lic文件,如果没有的话,手动建一个,里面随便输入几个字符就可以了。
注1:xxx代表版本号,在最新的com.spket.ui_1.6.18.jar上测试通过
注2:再装13地说一下,能支持的正版的话,还是支持下吧。
转载 http://ikoo.info/posts/java-decompiler/
分享到:
相关推荐
网上收集的Spket三个不同版本的破解版,现在合并为一起供大家下载。
标题“jquery-1.3.2-jsdoc-Spket-profile.rar”表明这是一款与jQuery相关的资源,具体来说是jQuery 1.3.2版本的文档(JSDoc格式),并且与Spket工具的配置文件有关。这个压缩包可能是为了帮助开发者在Eclipse集成...
**jQuery的Eclipse开发环境——Spket** 在Web开发领域,jQuery是一个不可或缺的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务。为了提高开发效率,许多开发者选择在集成开发环境(IDE)中...
spket-1.6.18 网上找的,做项目的时候用到的,亲测可用.
spket-1.6.23.jar
**myeclipse-spket插件** myeclipse-spket插件是专门为Eclipse开发环境设计的一款增强型JavaScript开发工具。它通过集成到Eclipse中,为开发者提供了编写JavaScript代码的强大支持,尤其是针对jQuery、ExtJS、...
spket-1.6.11.jar 开发ExtJs java -jar spket-1.6.11.jar
**Spket - ExtJS提示工具详解** Spket是一款强大的JavaScript开发工具,特别为Web开发者提供了对JavaScript库,如ExtJS的智能代码提示和支持。这款工具极大地提升了开发效率,通过自动补全、错误检测和代码导航等...
亲自验证过能成功,不用自己再重新反编译什么的,只需解压spket1.6.23后把里面的plugins和features文件夹复制到eclipse或myeclipse中eclipse下即可,也可以使用link的方式。
spket最新版本1.6.22破解过的。没破解版本个人也可以免费使用,只是不能修改设置。 参考了网上的破解方法,把成功的版本传上来了。 ria开发必备,可以配置Extjs, YUI, jQuery, dojo等等常用javascript库的自动提示和...
Spket-1.6.23.zip破解版,希望能帮助大家。至于怎么安装插件,我相信大家都会了,不会可以谷歌,我只提供Spket-1.6.23.zip破解版。如果不能使用欢迎举报!
首先感谢lizheng9564提供的spket1.6.23版破解补丁, 但即使不破解,也可以添加代码自动补齐功能,但spket默认只能输入4位字符,这是远远不够的,经过本人几天努力尝试才研究出来,话说现在不明原因使得互联网能搜到...
spket 1.6.23 破解补丁jquery-1.3.2-jsdoc-Spket-profile.js绝对有用 从官方下载正版将此补丁替换原有文件重启即可
2、Window -> Preferences -> Spket -> JavaScript Profiles -> New ; 输入 “ExtJS”点击OK; 选择“ExtJS” 并点击“Add Library”然后在下拉条中选取“ExtJS”; 选择 “ExtJS”并点击“Add File”,然后在你...
1. 在CMD 中执行 java -jar spket-1.6.17.jar, 点"Next" 2. 选择eclipse plugin, 点"Next" 3. 选择MyEclipse8.5的安装目录的common文件夹, 点"Next"! 4. 选择Spket 的安装目录(6.0选择MyEclipse的目录一样, 7.0以上...
压缩文件里面提供了Spket-1.6.23.jar和Spket-1.6.23破解文件,另外还提供了eclipse所需的覆盖文件。
其中运行spket.jar之后,选择MyEclipse的安装路径时,需要是myeclipse.exe文件所在的那个文件夹下 最后安装完成之后,打开js文件的时候,一定要选择一下Open With ---》spket javascript editor ,这个时候,只能...
安装spket,win7 64,十分有用,请大家下载,运行该类的main方法。将在控制台输出一串字符。不要清除,将其复制出来,然后找到D:\Program Files\jee-mars\eclipse\configuration\org.eclipse.equinox....
其中包含:spket-1.6.18.jar、CreatePluginsConfig.java、com.spket.js_1.6.18.jar、com.spket.ui_1.6.18.jar
这款"jQuery的Spket插件包"就是专门为jQuery开发者设计的,旨在提升开发效率和代码质量。 首先,Spket插件为jQuery提供了详尽的API文档和类型定义,使得在编写代码时能够获得实时的函数、方法和对象的提示。这对于...