StarUML 自定义用户名和序列号
StarUML,好用是好用,但是收费呀,本教程提供破解 StarUML 的教程,2.5 和 3.0 版本的都可以用,但是不通用,这是两种不同的解决方式,3.0 版本相对2.5版本的破解过程复杂一些。
- StarUML 2.5 破解
- 将下面的文件保存为 LicenseManagerDomain.js
sudo cp /Applications/StarUML.app/Contents/www/license/node/LicenseManagerDomain.js LicenseManagerDomain.js.backup
cp LicenseManagerDomain.js /Applications/StarUML.app/Contents/www/license/node/LicenseManagerDomain.js
- Open StarUML and go to Help > Enter License.
- Enter the name and the License Key in the LicenseManagerDomain.js.
/**
* File name: LicenseManagerDomain.js
* Mac OS: /Applications/StarUML.app/Contents/www/license/node/
* Linux: /opt/staruml/www/license/node/
*/
(function () {
"use strict";
var NodeRSA = require('node-rsa');
function validate(PK, name, product, licenseKey) {
return{
name: "liqiang",
product: "StarUML",
licenseType: "vip",
quantity: "unlimited",
licenseKey: "https://liqiang.io"
};
}
function init(domainManager) {
if (!domainManager.hasDomain("LicenseManager")) {
domainManager.registerDomain("LicenseManager", {major: 0, minor: 1});
}
domainManager.registerCommand(
"LicenseManager", // domain name
"validate", // command name
validate, // command handler function
false, // this command is synchronous in Node ("false" means synchronous")
"Validate License",
[
{
name: "PK",
type: "string",
description: "PK"
},
{
name: "name",
type: "string",
description: "name of license owner"
},
{
name: "product",
type: "string",
description: "product name"
},
{
name: "licenseKey",
type: "string",
description: "license key"
}
],
[
{
name: "result", // return values
type: "object",
description: "result"
}
]
);
}
exports.init = init;
}());
- StarUML 3.0.1 破解
升级到 3.0.1 之后,验证文件不再放在本地的目录中了,而是放在了打包文件里面了,所以需要先解压出应用,然后替换文件之后,再打包回去。 - 安装asar
# npm install -g asar
-
解压app.asar
-
修改验证文件
# vim app/src/engine/license-manager.js
- 将第 124 行修改成以下形式:
- 打包 app
# asar pack app app.asar
- 重启 StarUML 即可。