package com.aptana.ide.core.licensing;
import java.math.BigInteger;
import java.util.Calendar;
import java.util.TimeZone;
import java.util.zip.CRC32;
public final class ClientKey {
private static class Decrypt {
private BigInteger modulus;
private BigInteger exponent;
public String decrypt(String encrypted) {
long crc32Value;
byte bytes[];
CRC32 crc32;
/* 289 */if (encrypted == null) {
/* 291 */encrypted = "";
} else {
/* 295 */encrypted = ClientKey.trimEncryptedLicense(encrypted);
}
/* 297 */BigInteger big = new BigInteger(encrypted);
/* 298 */BigInteger decrypted = big.modPow(exponent, modulus);
/* 300 */crc32Value = (long) decrypted.intValue() & 0xffffffffL;
/* 301 */decrypted = decrypted.shiftRight(32);
/* 302 */bytes = decrypted.toByteArray();
/* 303 */crc32 = new CRC32();
/* 304 */crc32.update(bytes);
/* 305 */return new String(bytes);
}
Decrypt(String exponent, String modulus) {
/* 275 */this.modulus = new BigInteger(modulus);
/* 276 */this.exponent = new BigInteger(exponent);
}
}
public static final String BEGIN_LICENSE_MARKER = "--begin-aptana-license--";
public static final String END_LICENSE_MARKER = "--end-aptana-license--";
private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
private static final String EMAILS_NON_MATCHING = "EMAILS_NON_MATCHING";
private static final int PRO = 0;
private static final int TRIAL = 1;
private String email;
private long expiration;
private int type;
private ClientKey(int type, String email, long expiration) {
/* 77 */this.type = 0;
/* 78 */this.email = "e@e.com";
/* 79 */this.expiration = 999999999;
}
public static ClientKey decrypt(String encrypted, String email) {
/* 93 */String modulus = "115801190261221214754334668902722425936509505416457970789287297728816388753627896293249501578830570324705253515546383166989625001335561947096747210280001245977114030627247212292377290543869343996595819188362915644707269064020812435233012510929338706599216007185654748959001143012936618501934698642942289379979";
/* 94 */String exponent = "65537";
/* 100 */if (encrypted != null) {
/* 102 */encrypted = encrypted.trim();
}
/* 104 */Decrypt decrypter = new Decrypt(exponent, modulus);
/* 105 */return decrypt(decrypter, encrypted, email);
}
private static ClientKey decrypt(Decrypt decrypter, String encrypted,
String email) {
/* 110 */String value = decrypter.decrypt(encrypted);
/* 111 */if (value == null) {
/* 113 */return new ClientKey(1, null, 0L);
}
/* 115 */String values[] = value.split(";");
/* 116 */int type = 1;
/* 117 */String genedEmail = null;
/* 118 */long expiration = 0L;
/* 119 */if (values.length == 3) {
/* 121 */if ("p".equals(values[0].toLowerCase())) {
/* 123 */type = 0;
}
/* 125 */genedEmail = values[1];
/* 127 */if (genedEmail != null) {
/* 129 */if (!genedEmail.equalsIgnoreCase(email)) {
/* 131 */genedEmail = "EMAILS_NON_MATCHING";
}
} else {
/* 136 */genedEmail = null;
}
/* 140 */try {
/* 140 */expiration = Long.parseLong(values[2]);
}
/* 142 */catch (Exception _ex) {
/* 144 */expiration = 0L;
}
}
/* 147 */return new ClientKey(type, genedEmail, expiration);
}
public boolean isCloseToExpiring() {
return false;
}
public boolean isValid() {
/* 169 */return true;
}
public boolean isCloseToMatching() {
/* 179 */return true;
}
public boolean isExpired() {
/* 190 */return false;
}
public String getEmail() {
/* 200 */return "e@e.com";
}
public Calendar getExpiration() {
/* 210 */Calendar expirationCal = Calendar.getInstance();
expirationCal.set(2088, 7, 8);
/* 212 */return expirationCal;
}
public boolean isTrial() {
/* 222 */return false;
}
public boolean isPro() {
/* 232 */return true;
}
public boolean shouldProPluginsRun() {
return true;
}
public static String trimEncryptedLicense(String encrypted) {
/* 257 */String newEncrypted = encrypted;
/* 258 */newEncrypted = newEncrypted.trim();
/* 259 */newEncrypted = newEncrypted.replaceAll(
"--begin-aptana-license--", "");
/* 260 */newEncrypted = newEncrypted.replaceAll(
"--end-aptana-license--", "");
/* 261 */newEncrypted = newEncrypted.replaceAll("\\s+", "");
/* 262 */return newEncrypted;
}
}
把这个java文件编译成class文件,然后找到插件中的ClientKey.class和ClientKey$Decrypt.class文件 替换它。该文件存在于aptana_update_015414\plugins\com.aptana.ide.core_1.1.7.015414.jar中,用winrar打开com.aptana.ide.core_1.1.7.015414.jar文件,在路径com\aptana\ide\core\licensing中存在这两个文件,用我们刚刚编译好的class文件替换,破解成功。可能由于版本号不同的问题,core_1.1.7.015414后的版本名(数字)不同,但不影响破解,破解文件通用。
我把编译好的class文件和jar文件都放在附件中了,大家可任意选择一个下载,放在指定路径即可。
分享到:
- 2009-04-16 15:18
- 浏览 1347
- 评论(0)
- 论坛回复 / 浏览 (0 / 2582)
- 查看更多
相关推荐
Eclipse aptana 插件离线安装包 aptana ide studio 2.0.5版本,可离线安装此插件,无需用官网的在线安装方式安装。 由于上传文件大小被限制,此包被拆分成4部分,请全部下载下来后一起解压。 (1)...
Eclipse aptana 插件离线安装包 aptana ide studio 2.0.5版本,可离线安装此插件,无需用官网的在线安装方式安装。 由于上传文件大小被限制,此包被拆分成4部分,请全部下载下来后一起解压。 (1)...
Eclipse aptana 插件离线安装包 aptana ide studio 2.0.5版本,可离线安装此插件,无需用官网的在线安装方式安装。 由于上传文件大小被限制,此包被拆分成4部分,请全部下载下来后一起解压。 (1)...
Eclipse3.4 Aptana plugin js css
Eclipse3.4 Aptana plugin js css
Eclipse3.4 Aptana plugin js css
Eclipse aptana 插件离线安装包 aptana ide studio 2.0.5版本,可离线安装此插件,无需用官网的在线安装方式安装。 由于上传文件大小被限制,此包被拆分成4部分,请全部下载下来后一起解压。 (1)...
Aptana Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发IDE。它的特点包括: *JavaScript,JavaScript函数,HTML,CSS语言的Code Assist功能。 *Outliner(大纲):显示JavaScript,HTML和CSS的代码结构。 *...
该插件来源于Aptana RadRails 2.0 Plugin 只能安装到eclpse 3.4以上的环境中。比aptana1.2的功能相比强大了一点点~~~~我在myeclipse 8.0的环境上安装成功!
eclipse上最好的js插件——aptana,已经支持到eclipse3.6,myeclipse尚未测试 已经帮懒人写好了links文件 同时写了份说明文档 1.关闭eclipse 2.将aptana文件夹拷贝到磁盘的一个地方 3.修改links文件夹的aptana.link...
首先,你需要下载Aptana的Eclipse Plugin插件。官方下载地址通常为:http://update1.aptana.org/studio/3.2/024747/index.html。请注意,这里的版本号可能会随着Aptana的更新而变化,因此在访问时要确保选择的是最新...
- 解压缩下载的ZIP文件到指定目录。 - 运行Aptana Studio。 3. **安装Aptana PHP插件**: - 在Aptana Studio中,点击“Help”菜单下的“Install New Software…”。 - 在弹出的对话框中,“Work with”选项处...
打开aptana插件目录F:\Program Files\eclipse\Plugin-New\aptana\eclipse\plugins找到 com.aptana.ide.core_1.0.1.004323.jar 用Winrar打开 看winrar中的路径找到这两个class文件 把刚才编译好的两个class文件直接拖...
体积小巧(eclipse plugin: 3.5M),价格优惠(免费) 主要功能: 1、Ext 对象的自动完成 2、Ext 组件对象的查看 3、JavaScript Lib 对象的自动识别 4、JS文档的智能分析与阅读 这是个振奋人心...
- Aptana:一款增强型的Eclipse插件,适用于Web开发,更新地址:`http://update.aptana.com/update/` - TestNG:单元测试框架,更新地址:`http://beust.com/eclipse` - Maven2:构建工具插件,更新地址:`...
- 解压缩文件,将内容复制到Eclipse的plugins目录。 - 重启Eclipse,你会看到新的Tomcat图标。但目前无法直接使用,因为需要配置Tomcat的版本和Home路径。参照插件提供的说明进行设置。 5. **配置Tomcat插件**: ...
使用Apatana编辑JavaScript时,只需右键点击目标JS文件,选择“Open With”,再选择“Aptana JS Editor”,即可享受高效编辑体验。对于HTML中的JavaScript代码,可采用同样的方式,选择“Aptana HTML Editor”,实现...