StarUML 建模

导航
返回开发工具分类

StarUML是一个UML图绘制工具,它支持绘制类图、用例图、活动图等UML图,是软件工程必不可少的工具。

StarUML导出图片去除水印

内容转载自starUML4.0导出的图片去除水印的方法

简介

以下是StarUML 4.0的历史记录,不能据此判断当前版本是否适用。修改许可证校验或替换来历不明的程序包存在许可和供应链风险;本次未验证网盘文件或补丁安全性,不建议在日常环境直接照做。正式使用应按StarUML官方授权操作。

我的资源

资源为已经修改好的app.asar文件,可直接对原来文件进行替换。

百度网盘资源

找到管理注册的文件

StarUML是用js写的,所以文件系统比较简单,在你安装的StarUML目录下resources文件夹下面有一个app.asar的文件。

1.png

ASAR是Electron常用的应用归档格式,并不压缩或加密内容,也不能作为保密机制。它可使用专用工具提取和重新打包,参见Electron ASAR文档。

npm下载asar工具

利用Nodejs中的npm工具进行操作

如今是个开源的时代,你可以在npm中直接下载asar工具。

安装asar

1
npm install asar

app.asar解压

然后你将原来的app.asar包复制出来一个,进行解压

解压命令为:

1
asar e app.asar app

js文件修改

找到app/src/engine/licence-manager.js文件,使用任何编辑器打开都可以

2.png

将原来的validate()函数注释了然后增加一条上面

licence-manager.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//增加新的函数
validate() {
return new Promise((resolve, reject) => {
resolve({
name: "DXkite",
product: "DXkite product",
licenseType: "DXkite Personal",
quantity: "DXkite Quantity",
timestamp: "1529049036",
});
})
}
//注释原来的函数
// validate () {
// return new Promise((resolve, reject) => {
// try {
// // Local check
// var file = this.findLicense()
// if (!file) {
// reject('License key not found')
// } else {
// var data = fs.readFileSync(file, 'utf8')
// licenseInfo = JSON.parse(data)
// if (licenseInfo.product !== packageJSON.config.product_id) {
// app.toast.error(`License key is for old version (${licenseInfo.product})`)
// reject(`License key is not for ${packageJSON.config.product_id}`)
// } else {
// var base = SK + licenseInfo.name +
// SK + licenseInfo.product + '-' + licenseInfo.licenseType +
// SK + licenseInfo.quantity +
// SK + licenseInfo.timestamp + SK
// var _key = crypto.createHash('sha1').update(base).digest('hex').toUpperCase()
// if (_key !== licenseInfo.licenseKey) {
// reject('Invalid license key')
// } else {
// // Server check
// $.post(app.config.validation_url, {licenseKey: licenseInfo.licenseKey})
// .done(data => {
// resolve(data)
// })
// .fail(err => {
// if (err && err.status === 499) { /* License key not exists */
// reject(err)
// } else {
// // If server is not available, assume that license key is valid
// resolve(licenseInfo)
// }
// })
// }
// }
// }
// } catch (err) {
// reject(err)
// }
// })
// }

重新打包

修改完以后重新需要打包。

打包命令:

1
asar p app app.asar

然后将打包后的文件和原来的app.asar进行替换就可以了。