原文:http://blog.csdn.net/qqzhuyuehe/article/details/6803551
一、使用注册机
网上可以下载到MyEclipse9的注册机(myeclipse9_keygen_activator.exe),但是这个程序在64位环境下运行会报错,如下图:
通过命令行执行:java -jarsystemidtools.jar,可以发现是因为少了支持程序在64位环境下运行的:jniwrap64.dll。google了下,有专门的dll网站提供下载,但貌似服务器上文件丢失,下载不下来,所以这条路暂时走不通。
二、直接修改MyEclipse的激活校验源码
1、说明
关于MyEclipse的激活校验,我目前只找到三个类可以修改使其破解,分别是:
- com.genuitec.eclipse.core.ActivationValidator.class;
- com.genuitec.eclipse.core.LicenseUtil.class;
- com.genuitec.eclipse.core.activation.ProductActivator.class
com.genuitec.eclipse.core.ActivationValidator.class;
com.genuitec.eclipse.core.LicenseUtil.class;
com.genuitec.eclipse.core.activation.ProductActivator.class
经过实验,个人觉得修改第一个类最方便。
所有工具及其代码,后面会附上下载地址。
2、工具jar包准备
首先,列出所有要用到的工具jar包:
com.genuitec.eclipse.core_9.0.0.me201103181703.jar
com.genuitec.eclipse.core.common.platform_9.0.0.me201102091112.jar
org.eclipse.equinox.common_3.6.0.v20100503.jar
javassist-3.0.jar
其中,前三个都在MyEclipse的安装目录中,具体路径为:安装目录\Common\plugins
我们的ActivationValidator.class就在第一个jar包中,由于该类还引用了 com.genuitec.eclipse.core.util.PlatformUtil;org.eclipse.core.runtime.IStatus,所以还有加入另外两个jar包。
第四个javassist-3.0.jar是专门用来修改Java中的Class文件的工具jar包,其具体使用方法参考:http://hi.baidu.com/hi8818/blog/item/a6a3a35451cbcf6f853524d1.html
3、程序代码
首先,新建一个JavaProject,并在工程中导入上面的4个jar包,然后新建一个类,代码如下:
- import java.io.IOException;
- import javassist.CannotCompileException;
- import javassist.ClassPool;
- import javassist.CtClass;
- import javassist.CtMethod;
- import javassist.NotFoundException;
- import com.genuitec.eclipse.core.ActivationValidator;
- import com.genuitec.eclipse.core.util.PlatformUtil;
- import org.eclipse.core.runtime.IStatus;
- /**
- * 直接修改MyEclipse的激活验证类的ActivationValidato的Class文件,使其验证短路,从而达到破解的效果
- * @author Administrator
- *
- */
- public class Program {
- public static void main(String[] args) {
- try {
- //
- ClassPool pool = ClassPool.getDefault();
- // 载入要修改的类
- CtClass cc = pool.get(“com.genuitec.eclipse.core.ActivationValidator”);
- // 载入要修改的方法
- CtMethod fMethod = cc.getDeclaredMethod(“isExpired”);
- // 重新设置方法体内容
- fMethod.setBody(“return false;”);
- fMethod = cc.getDeclaredMethod(“isDecodeFailed”);
- fMethod.setBody(“return false;”);
- fMethod = cc.getDeclaredMethod(“isValidForLicense”);
- fMethod.setBody(“return true;”);
- fMethod = cc.getDeclaredMethod(“isValidForSystemId”);
- fMethod.setBody(“return true;”);
- fMethod = cc.getDeclaredMethod(“isValid”);
- fMethod.setBody(“return true;”);
- fMethod = cc.getDeclaredMethod(“validate”);
- fMethod.setBody(“{return com.genuitec.eclipse.core.util.PlatformUtil.getOKStatus();}”);
- // 保存修改完成的Class文件到指定位置
- cc.writeFile(“E:\\”);
- } catch (NotFoundException e) {
- e.printStackTrace();
- } catch (CannotCompileException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
运行程序,会在E盘中生成ActivationValidator.class,目录层次为:E:\com\genuitec\eclipse\core \ActivationValidator.class,然后用该class,替换:安装目录\Common\plugins \com.genuitec.eclipse.core_9.0.0.me201103181703.jar中的相应class文件就OK了。
这段程序就是通过直接修改ActivationValidator.class文件,使其校验过程直接短路,达到破解的目的。
4、配置激活码文件:.myeclipse.properties
虽然,上面我们对校验过程进行短路,但是程序还有个是否为空的判断,因此,我们需要在属性文件(.myeclipse.properties)中配置一下激活码。
属性文件的位置为:C:\Users\Administrator\ .myeclipse.properties,如果属性文件不存在,可以手动创建之
激活码的值可以随便填。如:
- ##MyEclipse license file
- #Sat Jul 30 10:02:15 CST 2011
- LICENSE_KEY=pLR8ZC-855444-68678656297401489
- LICENSEE=cloudcube.net
- ACTIVATION_KEY=c7b12e72e28df89e8acff15a6003928c4039f930aff5323f584bbccc3ccdcd9a347877e26b2965c17eae77d7f3550ca54686e7ce887f5afa78a693ec03b40762118a8739c9d7bd6acb40d27a68d06dd2fafc7813fba8230b79670886070e1b96c710b7c1de6d032d0fbfada43e8976db482403327bb61a715aadb338edf9b968
这里的激活码随便配置,只是为了防止验证程序读取为空而已。
5、修改启动配置文件:myeclipse.ini
为了程序正常启动,我们需要避免MyEclipse进行完整性校验,否则,MyEclipse自检程序发现文件被改动时,将导致启动失败。由于本人没有找到也懒得去找完整性校验的代码类,所以直接修改配置文件,取消启动时校验。
配置文件位置:安装目录\MyEclipse9\myeclipse.ini,在文件最后添加如下两行:
-Dgenuitec.honorDevMode=true
-Dosgi.dev=true
6、破解完成
自此破解过程完成,成功启动MyEclipse9。
7、附
1、破解方法从网上收集,但加上自己的完整实践操作并加以整理;
2、工程代码请自行下载,地址:http://download.csdn.net/detail/qqzhuyuehe/3629128














点击下载此文件


