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( 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;
    }

}
编译上面的源文件替换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( 1 null 0L );
            }
            
/*  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(
2088 7 8 );
            
/*  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
而且第二步比较复杂
建议除非升级以后的功能对你非常重要,否则到第一阶段就可以了.
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值