`
e_soft
  • 浏览: 48812 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java反编译 -破解Spket

    博客分类:
  • java
阅读更多
好吧,其实我写这篇博客的目的就是要破解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/
分享到:
评论
1 楼 hanz188 2010-08-13  
三个检验函数如果能好好排排版,看起来就比较清楚了。注册费用$29.90,刚才查了下,大概是人民币208元,略有些贵。

相关推荐

    Spket-1.6.12/Spket-1.6.17/Spket-1.6.18(破解版)

    网上收集的Spket三个不同版本的破解版,现在合并为一起供大家下载。

    jquery-1.3.2-jsdoc-Spket-profile.rar

    标题“jquery-1.3.2-jsdoc-Spket-profile.rar”表明这是一款与jQuery相关的资源,具体来说是jQuery 1.3.2版本的文档(JSDoc格式),并且与Spket工具的配置文件有关。这个压缩包可能是为了帮助开发者在Eclipse集成...

    JQuery的Eclipse开发环境----spket

    **jQuery的Eclipse开发环境——Spket** 在Web开发领域,jQuery是一个不可或缺的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务。为了提高开发效率,许多开发者选择在集成开发环境(IDE)中...

    spket-1.6.18破解版.zip

    spket-1.6.18 网上找的,做项目的时候用到的,亲测可用.

    spket-1.6.23.jar

    spket-1.6.23.jar

    myeclipse-spket插件

    **myeclipse-spket插件** myeclipse-spket插件是专门为Eclipse开发环境设计的一款增强型JavaScript开发工具。它通过集成到Eclipse中,为开发者提供了编写JavaScript代码的强大支持,尤其是针对jQuery、ExtJS、...

    spket-1.6.11.jar

    spket-1.6.11.jar 开发ExtJs java -jar spket-1.6.11.jar

    Spket - ExtJS提示工具,附规范文件

    **Spket - ExtJS提示工具详解** Spket是一款强大的JavaScript开发工具,特别为Web开发者提供了对JavaScript库,如ExtJS的智能代码提示和支持。这款工具极大地提升了开发效率,通过自动补全、错误检测和代码导航等...

    Spket1.6.23破解版

    亲自验证过能成功,不用自己再重新反编译什么的,只需解压spket1.6.23后把里面的plugins和features文件夹复制到eclipse或myeclipse中eclipse下即可,也可以使用link的方式。

    spket-1.6.22-plugin-for-eclipse-crack破解

    spket最新版本1.6.22破解过的。没破解版本个人也可以免费使用,只是不能修改设置。 参考了网上的破解方法,把成功的版本传上来了。 ria开发必备,可以配置Extjs, YUI, jQuery, dojo等等常用javascript库的自动提示和...

    Spket-1.6.23.zip破解版

    Spket-1.6.23.zip破解版,希望能帮助大家。至于怎么安装插件,我相信大家都会了,不会可以谷歌,我只提供Spket-1.6.23.zip破解版。如果不能使用欢迎举报!

    spket-1.6.23破解

    首先感谢lizheng9564提供的spket1.6.23版破解补丁, 但即使不破解,也可以添加代码自动补齐功能,但spket默认只能输入4位字符,这是远远不够的,经过本人几天努力尝试才研究出来,话说现在不明原因使得互联网能搜到...

    com.spket.ui_1.6.23.jar

    spket 1.6.23 破解补丁jquery-1.3.2-jsdoc-Spket-profile.js绝对有用 从官方下载正版将此补丁替换原有文件重启即可

    Spket安装及配置

    2、Window -&gt; Preferences -&gt; Spket -&gt; JavaScript Profiles -&gt; New ; 输入 “ExtJS”点击OK; 选择“ExtJS” 并点击“Add Library”然后在下拉条中选取“ExtJS”; 选择 “ExtJS”并点击“Add File”,然后在你...

    Spket的相关配置

    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.jar和Spket-1.6.23破解文件,另外还提供了eclipse所需的覆盖文件。

    Ext3.4+Spket安装教程+Spket.jar文件

    其中运行spket.jar之后,选择MyEclipse的安装路径时,需要是myeclipse.exe文件所在的那个文件夹下 最后安装完成之后,打开js文件的时候,一定要选择一下Open With ---》spket javascript editor ,这个时候,只能...

    Eclipse2019-06中安装Spket1.6.8插件(win7 64).rar

    安装spket,win7 64,十分有用,请大家下载,运行该类的main方法。将在控制台输出一串字符。不要清除,将其复制出来,然后找到D:\Program Files\jee-mars\eclipse\configuration\org.eclipse.equinox....

    Spket-1.6.18(手动破解)

    其中包含: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开发者设计的,旨在提升开发效率和代码质量。 首先,Spket插件为jQuery提供了详尽的API文档和类型定义,使得在编写代码时能够获得实时的函数、方法和对象的提示。这对于...

Global site tag (gtag.js) - Google Analytics