StarUML破解
缘起
0、因为qiong😂
1、之前在windows下时,使用的是EA来做类图绘制,换到mac上之后,一直没有找到特别好的画类图的软件,最后就选择了不怎么好但是能画图的staruml。
2、开始使用的2.x版本,可以使用修改licens的js文件的方法进行修改,后来brew升级到3.x版本后失效了
因此写下此文,用来记录下折腾记录(注:如果有闲钱,还是建议买一个的,支持正版吧)
折腾过程
1、staruml 2.x破解
在2.x时代,破解是比较方便的,手动修改下js文件即可,方法如下(参考自https://gist.github.com/trandaison/40b1d83618ae8e3d2da59df8c395093a )
1、安装完成StartUML后, 修改 LicenseManagerDomain.js
文件,内容如下:
mac下文件路径在/Applications/StarUML.app/Contents/www/license/node/LicenseManagerDomain.js,linux下在/opt/staruml/www/license/node/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: "sontd",
product: "StarUML",
licenseType: "vip",
quantity: "unlimited",
licenseKey: "no, thanks!"
};
}
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;
}());
2、完成后,打开staruml进入 Help > Enter License
,填写在 LicenseManagerDomain.js
.里的配置,上面示例里的配置如下:
name: "sontd"
License Key: "no, thanks!"
3、至此已经修改完成
2、staruml 3.x破解
在3.x版本中,上面的方法已经行不通了,需要采用对app的资源重新打包的方法实现(参考https://www.jianshu.com/p/b6b1f6ad0bd6 )
1、安装asar
sudo npm install -g asar
2、提取 app.asar
下载的StarUML,右键显示包内容 进入Contents/Resources/ 把app.asar复制出来
3、解压app.asar
asar extract app.asar app
4、修改解压出来的app/src/engine/license-manager.js
将checkLicenseValidity函数改成
checkLicenseValidity () { this.validate().then(() => { setStatus(this, true) }, () => { setStatus(this, true) }) }
5、重新打包
asar pack app app.asar
6、将打好的包放回原处(注意需要sudo才行,因为application目录需要root权限)
sudo cp app.asar [原来的位置]
7、如果是高版本系统,可能会提示应用已经损坏,是否移入垃圾篓,这是因为在最新版本系统上做了安全性的校验,我们修改了包内容,所以校验不过,此时运行如下命令即可
sudo xattr -c -r "/Applications/StarUML.app"
8、重新打开staruml,此时已经破解完毕啦
总结
之所以破解,还是因为qiong吧,如果有条件还是支持正版吧!当然了,个人认为这个staruml并不是很好用的!!!
参考文档
https://gist.github.com/trandaison/40b1d83618ae8e3d2da59df8c395093a
https://www.jianshu.com/p/b6b1f6ad0bd6
发表评论