一 破解准备工作
1.1 下载反编译工具jad
相关文件下载地址在Linux公社的1号FTP服务器里,,下载地址:
FTP地址:ftp://www.linuxidc.com
用户名:
密码:
在 2011年LinuxIDC.com\8月\手动破解MyEclipse 9. 0 for Linux
下载方法见这里
这个jad是静态的,解压就可以使用。非常方便。
1.2 找到需要修改的类
在桌面新建一个tmp文件夹,创建脚本
[@linuxidc ~]$ mkdir tmp
将相关文件拷贝到tmp目录下
[@linuxidc tmp]$ lscom.genuitec.eclipse.core_9.0.0.me201103181703.jar
注意:我安装的是myeclise 9.0的插件版
执行脚本
[@linuxidc tmp]$ unzip com.genuitec.eclipse.core_9.0.0.me201103181703.jar -d crack
可以看到以下文件
[@linuxidc tmp]$ ls crack/about.blue.mappings com lib plugin.propertiesabout.html icons license.html plugin.xmlabout.mappings images META-INF preferences.ini
1.3 反编译相关类
[@linuxidc crack]$ jad -o -r -sjava com/genuitec/eclipse/core/ActivationValidator.classParsing com/genuitec/eclipse/core/ActivationValidator.class…The class file version is 49.0 (only 45.3, 46.0 and 47.0 are supported)Generating com/genuitec/eclipse/core/ActivationValidator.java
二 破解文件
2.1 通过上面的反编译,我们可以知道反编译后的文件在路径com/genuitec/eclipse/core/ActivationValidator.java
将ActivationValidator.java中的文件替换为以下内容
// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.// Jad home page: // Decompiler options: packimports(3)package com.genuitec.eclipse.core;import com.genuitec.eclipse.core.activation.ActivationCode;import com.genuitec.eclipse.core.activation.InvalidSystemDataException;import com.genuitec.eclipse.core.activation.SystemIdFactory;import com.genuitec.eclipse.core.util.PlatformUtil;import com.genuitec.eclipse.core.util.StatusInfo;import org.eclipse.core.runtime.IStatus;
public classActivationValidator
{
public ActivationValidator(String s, String s1)
{_fld0101 = s1;if(!PlatformUtil.isNullOrEmpty(s))try{_fld0104 = ActivationCode.fromCode(s);}catch(InvalidSystemDataException _ex){_fld0103 = true;}else_fld0103 = true;_mth0101();}public ActivationValidator(ActivationCode activationcode, String s){_fld0101 = s;_fld0104 = activationcode;_mth0101();}private void _mth0101(){if(_fld0104 == null)_fld0103 = true;if(!isDecodeFailed()){_fld0102 = _fld0104.getLicenseCode().equals(_fld0101);_fld0105 = SystemIdFactory.matches(_fld0104.getSystemId());}}public ActivationCode getActivationCode(){return _fld0104;}public boolean isDecodeFailed(){return false;}public boolean isExpired(){return false;}public boolean isValidForLicense(){return true;}public boolean isValidForSystemId(){return true;}public boolean isValid(){return true;}public IStatus validate(){return PlatformUtil.getOKStatus();}public static final int ACT_VALIDATE_DATA_ERROR = 101;public static final int ACT_VALIDATE_LICENSEMATCH_ERROR = 102;public static final int ACT_VALIDATE_SYSTEMID_ERROR = 103;public static final int ACT_VALIDATE_EXPIRED_ERROR = 104;private String _fld0101;private ActivationCode _fld0104;private boolean _fld0103;private boolean _fld0102;private boolean _fld0105;}
上面方法将ActivationValidator的校验过程直接短路,
总结成功的经验能够让人越来越聪明,