参考 http://blog.chinaunix.net/uid-23392298-id-3152890.html
1. 下载并安装Eclipse的Vi插件
点击你的eclipse中的 help --> Install New Software... --> Add.. --> 添加网址 http://www.viplugin.com/ ......., 由于该插件是收费插件. 所以此时由于未破解, 所以每当点击工具栏上的Vi图标, 都会弹出如下图的购买提示框. 为了不弹出该框, 可以进行破解.
2. 破解
在Eclipse安装目录下的Eclipse.exe同文件夹下创建 viPlugin2.lic文件, 填入q1MHdGlxh7nCyn_FpHaVazxTdn1tajjeIABlcgJBc20, 保存, 重启Eclipse后, Vi插件就破解完成, 每当点击Vi按钮时就不会再弹出上图的提示框了. (根据上图中的提示, 其实可以有两处存放该license文件的地方, 一处是eclipse.exe所在的文件夹, 另一处是该eclipse工程的工作空间目录, 如上图中的 F: ....路径)
补充:
破解过程:
破解需要使用反编译工具对下载的Vi插件中的某些文件进行反编译以提取出密钥.
1. 下载反编译工具 jad, 下载链接 http://varaneckas.com/jad/ (可能需要FQ访问). 下载下来的zip压缩包包含两个文件---jad.exe和readme.txt文件. 将jad.exe的路径添加到环境变量的path路径下, 方便在命令行操作.
2. 找到需要进行反编译的文件. 在Vi插件安装完成后, 在Eclipse的安装目录下的 plugins 和 features 两个文件夹下会分别多出一些文件夹和一些JAR文件(可以通过按修改日期排序的方式查找出哪些是刚才下载Vi插件而新增的文件和文件夹), 其中, plugins文件夹中会多出一些文件夹和JAR文件, 而features文件夹下只会多出一些文件夹. 找到 plugins\com.mbartl.viplugin.eclipse.layer_2.13.1\lib文件夹下的 licensechecker.jar文件, 对其解压缩后, 找到最内层的 CheckLicenseFile.class文件, 该文件就是我们需要进行反编译的对象.复制该文件的绝对路径(注意: 不论该文件存放在硬盘哪个位置, 都需要复制其绝对路径) , 打开命令行cmd, 输入如下指令
jad 该class文件的绝对路径
注意: 如果输入的是该文件的相对路径, 则会报异常: 无法打开输入文件(JavaClassFileReadException: can't open input file on `CheckLicenseFile.class')
如果输入正确, 会提示正在解析class文件, 并生成jad文件. (Parsing... class...Generating ...jad) , 如下图:
然后就会在命令行当前目录下生成该pad文件(例如: 如果未修改当前命令行目录, 则默认就是在C:\Windows\System32文件夹下生成.pad文件), 生成.pad文件后可以使用everything搜索到该pad文件. 将其扩展名改为.java, 然后在Eclipse中新建java工程, 将该java文件复制到该工程中, 该文件中有些类和变量会报错, 提示找不到(例如: 类Base64), 那么需要从外部导入相关的JAR包, 可以根据该文件import的类进行网络搜索, 比如: Apache Commons Codec等. 当然, 在刚才的lib文件夹中其实也已经包含了该JAR包 commons-codec-1.6.jar, 在eclipse该工程中直接添加外部JAR文件即可消除报错. 然后新建测试文件(如下图), 该测试文件的输出结果就是该Vi插件的密钥. 可以从checkLicenseLocations方法中获知,license的文件名应该是 viPlugin2.lic. 所以在上述两个路径任意一个下创建该文件, 将该密钥写入进该文件中保存即可.
代码:
package decompile;
public class Test
{
public static void main(String[] args) throws Exception
{
CheckLicenseFile licenseFile = new CheckLicenseFile();
String valueString = licenseFile.encrypt("test", "test");
System.out.println(valueString);
}
}