本文转自:http://www.blogjava.net/vip01/archive/2008/01/04/172785.html
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 而且第二步比较复杂 建议除非升级以后的功能对你非常重要,否则到第一阶段就可以了.
转载于:https://www.cnblogs.com/feima-lxl/archive/2008/10/02/1303039.html
相关资源:aptana studio 3