Aptana Studio 1.0.10 crack 完美暴力破解.可在线升级安装professional插件

来源:互联网 发布:python开发手机应用 编辑:程序博客网 时间:2024/06/02 11:07
Aptana Studio 1.0.10 crack 完美暴力破解.可在线升级安装professional插件
首先到
http://www.aptana.com/download/index.php
选择eclipse plugin

输入用户名,密码,邮箱.

点download

会出现一个链接
点击
http://update.aptana.com/update/3.2/这个页面
点击Download Plugin Update Site
下载下来的安装包
别按官方说的安装

直接解压缩用link方式安装

这时候你的邮箱会收到一个测试license

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(1null0L);
        }
        
/* 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(
208878);
        
/* 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;
    }

}
编译上面的源文件替换com.aptana.ide.core_1.0.1.004323.jar里面的class

然后重新打开eclipse
注册aptana
用户名是你收到邮件内容"For your reference, your license locator ID is:"后面的
key就是邮件中"License key:"后面那一串

这时候你就会发现你的aptana就是注册版了

第一阶段完成







然后点击install...
在线升级安装professional的插件.
会让你输入用户名密码
这个用户名密码就是你在下载页面输入的那个,

下载的时候会提示你安装目录,随便选一个目录.

安装以后重新打开eclipse就会发现又不能用了.
package com.aptana.ide.professional;

import java.math.BigInteger;
import java.util.Calendar;
import java.util.Hashtable;
import java.util.TimeZone;
import java.util.zip.CRC32;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;

import com.aptana.ide.core.ui.CoreUIUtils;
import com.aptana.ide.core.ui.preferences.ApplicationPreferences;

public class Activator extends AbstractUIPlugin {
    
static final class ClientKey {
        
static class Decrypt {

            
private BigInteger modulus;
            
private BigInteger exponent;

            
public String decrypt(String encrypted) {
                
long crc32Value;
                
byte bytes[];
                CRC32 crc32;
                
/* 276 */if (encrypted == null) {
                    
/* 278 */encrypted = "";
                } 
else {
                    
/* 282 */encrypted = ClientKey
                            .trimEncryptedLicense(encrypted);
                }
                
/* 284 */BigInteger big = new BigInteger(encrypted);
                
/* 285 */BigInteger decrypted = big.modPow(exponent, modulus);
                
/* 287 */crc32Value = (long) decrypted.intValue() & 0xffffffffL;
                
/* 288 */decrypted = decrypted.shiftRight(32);
                
/* 289 */bytes = decrypted.toByteArray();
                
/* 290 */crc32 = new CRC32();
                
/* 291 */crc32.update(bytes);
                
/* 292 */label0: {
                    
/* 292 */if (crc32Value == crc32.getValue()) {
                        
/* 294 */return new String(bytes);
                    }
                    
/* 297 */break label0;
                }
                
/* 300 */return null;
            }

            Decrypt(String exponent, String modulus) {
                
/* 262 */this.modulus = new BigInteger(modulus);
                
/* 263 */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 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;

        
public static ClientKey decrypt(String encrypted, String email) {
            
/* 84 */String modulus = "115801190261221214754334668902722425936509505416457970789287297728816388753627896293249501578830570324705253515546383166989625001335561947096747210280001245977114030627247212292377290543869343996595819188362915644707269064020812435233012510929338706599216007185654748959001143012936618501934698642942289379979";
            
/* 85 */String exponent = "65537";
            
/* 87 */if (encrypted != null) {
                
/* 89 */encrypted = encrypted.trim();
            }
            
/* 91 */Decrypt decrypter = new Decrypt(exponent, modulus);
            
/* 92 */return decrypt(decrypter, encrypted, email);
        }

        
private static ClientKey decrypt(Decrypt decrypter, String encrypted,
                String email) {
            
/* 97 */String value = decrypter.decrypt(encrypted);
            
/* 98 */if (value == null) {
                
/* 100 */return new ClientKey(1null0L);
            }
            
/* 102 */String values[] = value.split(";");
            
/* 103 */int type = 1;
            
/* 104 */String genedEmail = null;
            
/* 105 */long expiration = 99999999999999L;
            
/* 134 */return new ClientKey(type, genedEmail, expiration);
        }

        
public boolean isCloseToExpiring() {
            
return false;
        }

        
public boolean isValid() {
            
return true;
        }

        
public boolean isCloseToMatching() {
            
/* 166 */return true;
        }

        
public boolean isExpired() {
            
/* 176 */Calendar currentCalendar = Calendar.getInstance(GMT);
            
/* 177 */return currentCalendar.after(getExpiration());
        }

        
public String getEmail() {
            
/* 187 */return "e@e.com";
        }

        
public Calendar getExpiration() {
            
/* 197 *//* 210 */Calendar expirationCal = Calendar.getInstance();
            expirationCal.set(
208878);
            
/* 212 */return expirationCal;
        }

        
public boolean isTrial() {
            
/* 209 */return false;
        }

        
public boolean isPro() {
            
/* 219 */return true;
        }

        
public boolean shouldProPluginsRun() {
            
/* 229 */return true;
        }

        
public static String trimEncryptedLicense(String encrypted) {
            
/* 244 */String newEncrypted = encrypted;
            
/* 245 */newEncrypted = newEncrypted.trim();
            
/* 246 */newEncrypted = newEncrypted.replaceAll(
                    
"--begin-aptana-license--""");
            
/* 247 */newEncrypted = newEncrypted.replaceAll(
                    
"--end-aptana-license--""");
            
/* 248 */newEncrypted = newEncrypted.replaceAll("//s+""");
            
/* 249 */return newEncrypted;
        }

        
private ClientKey(int type, String email, long expiration) {
            
/* 68 */this.type = 0;
            
/* 69 */this.email = "e@e.com";
            
/* 70 */this.expiration = 99999999999999L;
        }
    }

    
private static Hashtable images = new Hashtable();
    
public static final String PLUGIN_ID = "com.aptana.ide.professional";
    
private static Activator plugin;

    
public Activator() {
        
/* 320 */plugin = this;
    }

    
public void start(BundleContext context) throws Exception {
        
/* 328 */super.start(context);
        
/* 330 */CoreUIUtils.registerFileExtension(
                
"com.aptana.ide.editor.text""*""json");
        
/* 332 */ClientKey key = getActivationKey();
        
/* 333 */
        
/* 365 */return;
    }

    
public void stop(BundleContext context) throws Exception {
        
/* 372 */plugin = null;
        
/* 373 */super.stop(context);
    }

    
public static ClientKey getActivationKey() {
        
/* 383 */ClientKey key = null;
        
/* 386 */try {
            
/* 386 */String keyString = ApplicationPreferences.getInstance()
                    .getString(
"com.aptana.ide.core.ui.ACTIVATION_KEY");
            
/* 387 */String emailString = ApplicationPreferences.getInstance()
                    .getString(
                            
"com.aptana.ide.core.ui.ACTIVATION_EMAIL_ADDRESS");
            
/* 389 */key = ClientKey.decrypt(keyString, emailString);
        }
        
/* 391 */catch (Exception _ex) {
            
/* 393 */key = ClientKey.decrypt("123""e@e.com");
        }
        
        
/* 395 */return key;
    }

    
public static boolean isKeyValid() {
        
/* 411 */return true;
    }

    
public static Activator getDefault() {
        
/* 421 */return plugin;
    }

    
public boolean disableFeature(String id) throws CoreException {

        
/* 437 */return false;
    }

    
public static Image getImage(String path) {
        
/* 454 */if (images.get(path) == null) {
            
/* 456 */ImageDescriptor id = getImageDescriptor(path);
            
/* 458 */if (id == null) {
                
/* 460 */return null;
            } 
else {
                
/* 463 */Image i = id.createImage();
                
/* 465 */images.put(path, i);
                
/* 467 */return i;
            }
        } 
else {
            
/* 471 */return (Image) images.get(path);
        }
    }

    
public static ImageDescriptor getImageDescriptor(String path) {
        
/* 484 */return AbstractUIPlugin.imageDescriptorFromPlugin(
                
"com.aptana.ide.professional", path);
    }

}

编译并替换
你刚刚选的目录/eclipse/plugins/com.aptana.ide.professional_1.0.10.200711191212/com/aptana/ide/professional下面的class.注意尤其要注意,上面的代码只能在eclipse插件项目里面才能编译.

然后再到aptana设置里面注册一次.key还是之前邮件里面的测试key
但是用户名变成了之前下载页面里面你填的那个用户名.

点击validate

成功的话,会显示绿色
valid key


License Type: Professional
Registered to: e@e.com
Expires on: 2088年8月8日 XXXXXXXXX

其实感觉升级的东西对我没什么用,我也就是用他写写js
而且第二步比较复杂
建议除非升级以后的功能对你非常重要,否则到第一阶段就可以了.
 
原创粉丝点击