zoukankan      html  css  js  c++  java
  • Aptana 页面调试开发工具(内附破解方法)

    1.
    Aptana 是一个非常强大,开源,专注于JavaScript的Ajax开发IDE。它的特性包括: *JavaScript,JavaScript函数,HTML,CSS语言的Code Assist功能。 *Outliner(大纲):显示JavaScript,HTML和CSS的代码结构。
    *支持JavaScript,HTML,CSS代码提示,包括JavaScript 自定函数
    *代码语法错误提示。
    *支持Aptana UI自定义和扩展。
    *支持跨平台。
    *支持FTP/SFTP
    *调试JavaScript
    *支持流行AJAX框架的Code Assist功能:AFLAX,Dojo,JQuery,MochiKit,Prototype,Rico,script.aculo.us,Yahoo UI,Ext。
    *Adobe AIR与iPhone开发工具
    其主页上还提供如何使用该开发工具的视频。

    找到com.aptana.ide.core_1.0.1.004323.jar文件
    编译下面的文件并替换找上面包中的对应文件(在com.aptana.ide.core.licensing目录下)
    修改位置见后面注释部分说明!

    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;
                if (encrypted == null) {
                    encrypted = "";
                } else {
                    encrypted = ClientKey.trimEncryptedLicense(encrypted);
                }
                BigInteger big = new BigInteger(encrypted);
                BigInteger decrypted = big.modPow(exponent, modulus);
                crc32Value = (long) decrypted.intValue() & 0xffffffffL;
                decrypted = decrypted.shiftRight(32);
                bytes = decrypted.toByteArray();
                crc32 = new CRC32();
                crc32.update(bytes);
                if (crc32Value == crc32.getValue()) {
                    return new String(bytes);
                }
                return null;
            }

            Decrypt(String exponent, String modulus) {
                this.modulus = new BigInteger(modulus);
                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) {
            this.type = type;
            this.email = email;
            this.expiration = expiration;
        }

        public static ClientKey decrypt(String encrypted, String email) {
            String modulus = "115801190261221214754334668902722425936509505416457970789287297728816388753627896293249501578830570324705253515546383166989625001335561947096747210280001245977114030627247212292377290543869343996595819188362915644707269064020812435233012510929338706599216007185654748959001143012936618501934698642942289379979";
            String exponent = "65537";
            if (encrypted != null) {
                encrypted = encrypted.trim();
            }
            Decrypt decrypter = new Decrypt(exponent, modulus);
            return decrypt(decrypter, encrypted, email);
        }

        private static ClientKey decrypt(Decrypt decrypter, String encrypted,
                String email) {
            String value = decrypter.decrypt(encrypted);
            if (value == null) {
                return new ClientKey(1, null, 0L);
            }
            String values[] = value.split(";");
            int type = 1;
            String genedEmail = null;
            long expiration = 0L;
            if (values.length == 3) {
                if ("p".equals(values[0].toLowerCase())) {
                    type = 0;
                }
                genedEmail = values[1];
                if (genedEmail != null) {
                    if (!genedEmail.equalsIgnoreCase(email)) {
                        genedEmail = "EMAILS_NON_MATCHING";
                    }
                } else {
                    genedEmail = null;
                }
                try {
                    expiration = Long.parseLong(values[2]);
                } catch (Exception _ex) {
                    expiration = 0L;
                }
            }
            return new ClientKey(type, genedEmail, expiration);
        }

        public boolean isCloseToExpiring() {
            return false;
        }

        public boolean isValid() {
            return true;
        }

        public boolean isCloseToMatching() {
            return false;
        }

        public boolean isExpired() {
            return false;
        }

        public String getEmail() {
           //把此处的Email修改为你自己的Email地址
            return "heimazhao@gmail.com";
        }

        public Calendar getExpiration() {
            Calendar expirationCal = Calendar.getInstance(GMT);
              //把此处的时间修改为授权到期时间
            expirationCal.set(2010, 9, 9);

            return expirationCal;
        }

        public boolean isTrial() {
            return false;
        }

        public boolean isPro() {
            return true;
        }

        public boolean shouldProPluginsRun() {
            return true;
        }

        public static String trimEncryptedLicense(String encrypted) {
         String newEncrypted = encrypted;
         newEncrypted = newEncrypted.trim();
        newEncrypted = newEncrypted.replaceAll("--begin-aptana-license--", "");
         newEncrypted = newEncrypted.replaceAll("--end-aptana-license--", "");
         newEncrypted = newEncrypted.replaceAll("/s+", "");
        return newEncrypted;
    }
    }
  • 相关阅读:
    【转】sql server编写通用脚本自动检查两个不同服务器的新旧数据库的表结构差异
    Pytest 2
    【转】python通过SMTP协议发送邮件失败,报错505或535
    【转】环境搭建之allure的安装配置,及简单使用
    Pytest 1
    替换姓名为隐式
    docker 用户组权限
    安装go环境
    Win10配置WSL2安装Ubuntu,并支持Nvidia CUDA 环境
    miniconda源配置
  • 原文地址:https://www.cnblogs.com/analyzer/p/1236808.html
Copyright © 2011-2022 走看看