StarUML 3.0.1 破解方法
发布于 2018-08-13    556 次阅读
StarUML是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具。本文介绍了StarUML 3.0.1 版本的破解方法。

原先StarUML 2.x 版本的破解方式比较简单,直接在LicenseManagerDomain.js中修改验证方法就可以了,最近StarUML升级了3.0,最新的版本是3.0.1(2018/06/26),2.x的破解方式已经不再适用这个版本了。

接下来我们将介绍下如何破解3.x版本

原理说明

StarUML是用NodeJS写的,使用了Electron前端框架,并通过asar工具将源代码打包起来,文件位置在安装目录"StarURML/resources/app.asar"。

我们通过asar工具解压修改就可以绕过License验证了。

安装asar

cnpm install -g asar

解压app.asar

asar extract app.asar app

修改源代码

通过命令行将程序解压到app目录下。真正的验证License的代码在app\src\engine\license-manager.js

  /**
   * Check license validity
   *
   * @return {Promise}
   */
  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)
          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)
      }
    })
  }

StarUML启动后会调用validate函数检查License

  checkLicenseValidity () {
    this.validate().then(() => {
      setStatus(this, true)
    }, () => {
      // 原先的代码,如果失败就会将状态设置成false
      // Power by voidcc.com 开发小院
      // setStatus(this, false) 
      // UnregisteredDialog.showDialog()

      // 修改后的代码
      setStatus(this, true)
    })
  }

参照上述代码将reject的callback源代码注释掉,换成setStatus(this,true),这样无论是否注册都会验证通过。

重新打包替换原先的app.asar

asar pack app app.asar

app.asar 在安装目录"StarURML/resources/app.asar"

Mac电脑可以通过,"应用程序" -> "右键" -> "显示打包内容" 进入安装文件,进行替换

破解补丁app.asar下载

如果你想直接下载破解补丁,可以扫码加本站的公众号"开发小院",发送"staruml"获取补丁的下载地址

 

版权说明 : 本文为 开发小院 原创文章, 转载时请注明作者和原文连接

文章标题 : StarUML 3.0.1 破解方法

文章连接 : http://www.voidcc.com/content/staruml-301-crack


 主题目录

    欢迎关注本站公众号 开发小院