X-Pack破解試用

weixin_33797791發表於2017-04-04

X-Pack破解試用

宣告:本文僅作為學習交流,請勿用於商業用途,否則後果自負。如需使用黃金或白金版X-Pack請購買正版。
從5.0版本開始,Elastic將一些重要的外掛整合成了X-Pack。免費的license只能使用一年,而且很多外掛無法使用。如果想要試用,需要進行破解。

  • 首先完成原版X-Pack在Elastic上的安裝。
  • 在x-pack-5.2.0.zip中,找到x-pack-5.2.0.jar。這裡使用JD-GUI是無法反編譯的,我使用的是Luyten進行反編譯。
  • org.elasticsearch/license/LicenseVerifier.class反編譯並儲存出來。這個類是檢查license完整性的類,我們使其始終返回true,就可以任意修改license並匯入。將其改為:
package org.elasticsearch.license;

import java.nio.*;
import java.util.*;
import java.security.*;
import org.elasticsearch.common.xcontent.*;
import org.apache.lucene.util.*;
import org.elasticsearch.common.io.*;
import java.io.*;

public class LicenseVerifier
{
    public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) {
        return true;
    }
    
    public static boolean verifyLicense(final License license) {
        return true;
    }
}
  • 然後需要重新編譯class檔案。注意這裡我們無需編譯整個工程,將原來的x-pack-5.2.0.jar和依賴包加入CLASSPATH,即可完成單個檔案的編譯。實際上只用到了3個依賴包,如果是用RPM或DEB安裝的,直接執行:
javac -cp "/usr/share/elasticsearch/lib/elasticsearch-5.2.0.jar:/usr/share/elasticsearch/lib/lucene-core-6.4.0.jar:/usr/share/elasticsearch/plugins/x-pack/x-pack-5.2.0.jar" LicenseVerifier.java
  • 把x-pack-5.2.0.jar用壓縮檔案管理器開啟,將裡面的LicenseVerifier.class替換掉。再把破解了的jar包部署到各節點上,並重啟叢集。
  • 申請一個免費license。下載後修改,例如:
{"license":{"uid":"helloworld","type":"platinum","issue_date_in_millis":1486598400000,"expiry_date_in_millis":2524579200999,"max_nodes":1000,"issued_to":"helloworld","issuer":"Web Form","signature":"helloworld","start_date_in_millis":1486598400000}}
  • 這裡,platinum表示白金版,可以使用所有功能。其他的如expiry_date_in_millismax_nodes等根據自己需要修改即可。
  • 把該license匯入叢集即可,破解結果如下:


    5512539-b0a2f251ceae770a.png
    破解截圖

相關文章