吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5382|回复: 3
收起左侧

[原创] hazelcast Management Center 源码分析

[复制链接]
hehanjm 发表于 2019-7-17 14:40
本帖最后由 hehanjm 于 2019-7-17 14:45 编辑

事情背景
最近在使用 Vert.x 工具集的全家桶做微服务的相关开发,Vert.x默认使用集群管理器是 hazelcast 。在经过相关使用后,惊喜的发现hazelcast提供了可视化的集群管理工具 Management Center可以进行可视化管理。
喔, so cool. 功能详情
撸起袖子开始干,跟着官方文档把可视化管理工具搭建起来了,突然发现处于开发模式(仅限2个节点)。噗。。。吐血。
跟着引导来到 30-Day License Key 页面,跟着提示一步一步填写了信息,然后就是等。
三天后~
咦~ 为啥我还没有收到申请的试用license呢?翻遍了邮箱的各个角落,最后确认确实是没有收到。额~ 这TM就尴尬了。顿时不爽的感觉就上来了,这他妈让我白等了三天啊。
今天这事就是**,也TM要把它给办咯。
去同性交友网(Github)瞅瞅看有没有大神破解过,吃个现成的。然而可能经过2个小时的搜索,发现大神们都很尊重知识付费( 或者是hazelcast不热门,不屑于去破解吧。哈哈哈,我就当是大神们尊重知识付费吧 )。那没办法咯,自己琢磨琢磨吧。
先搂一眼这个可视化管理工具包的内容。哎哟哟~ war包啊。那要祭出神器啊 JD-GUI
第一眼就看到了 com.hazelcast.license 包,先记着。再瞅瞅看还有没有通过类名就能找到的重点。 com.hazelcast.webmonitor.service.LicenseManager 嗯哼,这个类貌似就是重点了。com.hazelcast.license.util.LicenseHelper.java 代码节选
[Java] 纯文本查看 复制代码
public static License checkLicenseKeyPerFeature(String licenseKey, String versionString, Feature feature) {
    License license = getLicense(licenseKey, versionString);
    if (!license.getFeatures().contains(feature)) {
        throw new InvalidLicenseException("The Feature " + feature.getText() + " is not enabled for your license key." + "Please contact [email]sales@hazelcast.com[/email]");
    }
    return license;
}

public static License getLicense(String licenseKey, String versionString) {
    if (licenseKey == null) {
        throw new InvalidLicenseException("License Key not configured!");
    }
    License license = null;
    try {
        license = LicenseExtractorV2.extractLicense(licenseKey);
    } catch (InvalidLicenseException e1) {
        try {
            license = LicenseExtractorV3.extractLicense(licenseKey);
        } catch (InvalidLicenseException e2) {
            license = LicenseExtractorV4.extractLicense(licenseKey);
        }
    }
    int version = extractHazelcastMajorMinorVersionAsInt(versionString);
    if ((license.getHazelcastVersion() != 99) && (license.getHazelcastVersion() != version)) {
        throw new InvalidLicenseException("This license cannot work with your hazelcast version!");
    }
    if ((license.isTrial()) && (isExpired(license))) {
        throw new InvalidLicenseException("Trial license has expired! Please contact [email]sales@hazelcast.com[/email]");
    }
    if (isExpired(license)) {
        throw new InvalidLicenseException("Enterprise License has expired! Please contact [email]sales@hazelcast.com[/email]");
    }
    return license;
}

最后跟着代码一步一步找到了 com.hazelcast.license.extractor.LicenseExtractorV4.extractLicense() 方法,代码就不贴了,就是提取license的算法。那这不是来活儿吗?
分析算法规则
最后发现个问题,那就是 Expired 的日期最大就到2099年。不过想想2099年啊,那时候还需要人写代码么?哈哈哈~
测试验证
哈哈哈,妥儿了~

练练手(好久没写Swing了。)

声明:
  • 如需生产环境应用,请购买正版
  • 相关代码纯属研究与爱好,请在学习使用后删除

免费评分

参与人数 3威望 +1 吾爱币 +9 热心值 +3 收起 理由
RL_LEE + 1 + 1 鼓励转贴优秀软件安全工具和文档!
Hmily + 1 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
笙若 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

海盗小K 发表于 2019-7-17 19:33
hazelcast暂时没怎么用。。。缓存主要还是用的redis,嘿嘿
 楼主| hehanjm 发表于 2019-7-18 10:35
海盗小K 发表于 2019-7-17 19:33
hazelcast暂时没怎么用。。。缓存主要还是用的redis,嘿嘿

hazelcast其实不是用来做缓存的
RL_LEE 发表于 2020-1-17 11:21
你好,能分享一下hazelcast的management-center的license生成工具或代码吗?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 10:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表