[关闭]
@paynev 2019-06-19T05:42:06.000000Z 字数 1586 阅读 761

StarUML 3 破解

技巧



StarUML是用nodejs写的。确切的说是用Electron前端框架写的。新版本中所有的starUML源代码是通过asar工具打包而成。确切的代码位置在%LOCALAPPDATA%\Programs\StarURML\resources\app.asar
我们可以通过asar工具解压修改达到破解目的。

安装npm

打开Node.js官网
找到合适的版本下载,我这里选的是长期支持版

安装asar

命令行里输入:

  1. sudo npm install -g asar

注意: 如果提示-bash: npm: command not found,则需要手动添加环境变量 终端输入export
PATH=/usr/local/bin:$PATH即可

破解StarUML

简单来说,主要以下几个步骤:

  1. 提取Contents/Resources/中的app.asar

  2. 解压app.asar

  3. 修改解压出来的app/src/engine/license-manager.js中的checkLicenseValidity函数,将setStatus(this,false)改成setStatus(this,true),并注释UnregisteredDialog.showDialog()

  4. 重新打包,放回即可

提取 app.asar

下载的StarUML,右键显示包内容
进入Contents/Resources/
app.asar复制出来

解压app.asar

  1. asar extract app.asar app

修改解压出来的app/src/engine/license-manager.js

我们全文搜索一下status,可以找到一个setStatus(...)的方法。我修改了一下让它总是设置为true

  1. function setStatus (licenseManager, newStat) {
  2. if (status !== newStat) {
  3. status = newStat
  4. licenseManager.emit('statusChanged', 'true') // status修改为'true',注意要带单引号
  5. }
  6. }

查找getLicenseInfo()函数

  1. getLicenseInfo () {
  2. return licenseInfo
  3. }
  4. // 改为
  5. getLicenseInfo () {
  6. licenseInfo = {
  7. name: "PayneV",
  8. product: "PayneV product",
  9. licenseType: "PS",
  10. quantity: "PayneV Quantity",
  11. timestamp: "1529049036",
  12. licenseKey: "It's Cracked!!",
  13. crackedAuthor: "PayneV"
  14. };
  15. return licenseInfo
  16. }

找到checkLicenseValidity函数
false改成true,并注释或删掉下面一行

  1. checkLicenseValidity () {
  2. this.valIDAte().then(() => {
  3. setStatus(this, true)
  4. }, () => {
  5. // 原来的代码,如果失败就会将状态设置成false
  6. // setStatus(this, false)
  7. // UnregisteredDialog.showDialog()
  8. // 修改后的代码
  9. setStatus(this, true)
  10. })
  11. }

重新打包

  1. asar pack app app.asar

将app.asar放回Contents/Resources/

done!

转载文章的作者:Mrrr橙子,吾名空白

著作权归原作者所有,个人只是整理总结。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注