StarUML破解教程
StarUML 是非常好的UML画图工具,这里介绍StarUML3.2.2的破解教程。
- 有能力的请支持正版!
- 参考教程:https://www.cnblogs.com/yourstars/p/9309529.html
- 在破解基础上取消自动更新
破解原理
StarUML
是用nodejs
写的。确切的说是用Electron前端框架写的。
新版本中所有的starUML源代码是通过asar工具打包而成。
确切的代码位置在%LOCALAPPDATA%\Programs\StarURML\resources\app.asar
。
环境安装
在执行下列操作前,请确保本机安装了nodejs
工具
我们可以通过asar
工具解压修改达到破解目的。具体操作如下:
安装
nodejs
安装
asar
1
cnpm install -g asar //或者npm install -g asar
修改源代码
打开软件安装路径,找到resources文件夹下的app.asar文件,将其复制到另一文件夹,我们从另一文件夹内解压app.asar,修改其中代码,最后将其压缩为app.asar文件替换最初的app.asar文件。具体过程如下:
解压app.asar
1
asar extract app.asar ./app // 解压到app文件夹
修改
app\src\engine\license-manager.js
文件 –> 取消注册操作
1
2
3
4
5
6
7
8
9
10checkLicenseValidity () {
this.validate().then(() => {
setStatus(this, true)
}, () => {
//setStatus(this, false)
//UnregisteredDialog.showDialog()
setStatus(this, true)
})
}找到上述代码位置,注释掉原先两行代码,添加
setStatus(this, true)
。修改
app\src\engine\update-manager.js
文件 –> 取消自动更新
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19/**
* Check extensions updates
*/
checkExtensionUpdates () {
ExtensionManager.downloadRegistry().done(function () {
var updateAvailable = false
_.each(ExtensionManager.extensions, ext => {
//if (ext.installInfo && ext.installInfo.updateAvailable) {
//updateAvailable = true
//}
updateAvailable = false
})
if (updateAvailable) {
$('#toolbar-extension-manager').addClass('selected')
} else {
$('#toolbar-extension-manager').removeClass('selected')
}
})
}找到上述代码位置,注释那几行代码,添加
updateAvailable = false
。重新打包
app.asar
1
asar pack app app.asar
将打包后的
app.asar
覆盖原先的app.asar
文件