StarUML破解教程

StarUML 是非常好的UML画图工具,这里介绍StarUML3.2.2的破解教程。

破解原理

StarUML是用nodejs写的。确切的说是用Electron前端框架写的。

新版本中所有的starUML源代码是通过asar工具打包而成。

确切的代码位置在%LOCALAPPDATA%\Programs\StarURML\resources\app.asar

环境安装

在执行下列操作前,请确保本机安装了nodejs 工具

我们可以通过asar工具解压修改达到破解目的。具体操作如下:

  1. 安装nodejs

    https://nodejs.org/en/download/

  2. 安装asar

    1
    cnpm install -g asar  //或者npm install -g asar

修改源代码

打开软件安装路径,找到resources文件夹下的app.asar文件,将其复制到另一文件夹,我们从另一文件夹内解压app.asar,修改其中代码,最后将其压缩为app.asar文件替换最初的app.asar文件。具体过程如下:

  1. 解压app.asar

    1
    asar extract app.asar ./app // 解压到app文件夹
  2. 修改app\src\engine\license-manager.js文件 –> 取消注册操作

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    checkLicenseValidity () {
    this.validate().then(() => {
    setStatus(this, true)
    }, () => {
    //setStatus(this, false)
    //UnregisteredDialog.showDialog()

    setStatus(this, true)
    })
    }

    找到上述代码位置,注释掉原先两行代码,添加setStatus(this, true)

  3. 修改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

  4. 重新打包app.asar

    1
    asar pack app app.asar
  5. 将打包后的app.asar覆盖原先的app.asar文件

已经破解好的StarUML

下载地址