Mac安装starUML

本文详细介绍了在Mac上如何安装和破解StarUML的步骤,包括使用npm和cnpm的区别、安装cnpm、node.js、asar工具,以及如何解压并修改app.asar文件来实现软件的破解。此外,还提供了解决软件损坏问题的方法,涉及GateKeeper和删除com.apple.quarantine标志。
摘要由CSDN通过智能技术生成

安装cnpm

npm和cnpm区别

摘自http://www.ydcss.com/archives/18#why

1、说明:因为npm安装插件是从国外服务器下载,受网络影响大,可能出现异常,如果npm的服务器在中国就好了,所以我们乐于分享的淘宝团队干了这事。来自官网:“这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。”;

2、官方网址:http://npm.taobao.org;

3、安装:命令提示符执行npm install cnpm -g --registry=https://registry.npm.taobao.org; 注意:安装完后最好查看其版本号cnpm -v或关闭命令提示符重新打开,安装完直接使用有可能会出现错误;

注:cnpm跟npm用法完全一致,只是在执行命令时将npm改为cnpm(以下操作将以cnpm代替npm)。

先安装node

  • node的下载地址:http://nodejs.cn/download/
  • 安装完成后测试一下,在终端输入:node -v ,这时候就可以看到安装的node版本号
  • 再输入:npm -v ,这时候就会看到npm的版本号了

用npm安装cnpm

sudo npm install -g cnpm --registry=https://registry.npm.taobao.org
安装完后可以输入:cnpm -v 查看cnpm版本

安装starUML

sudo cnpm install -g asar
  • 解压app.asar文件
    安装完starUML后,找到app.asar文件:
    一般在/Applications/StarUML.app/Contents/Resources/app.asar
    mac的app包文件
    app.asar文件位置
  • 解压app.asar文件
asar extract /Applications/StarUML.app/Contents/Resources/app.asar/app.asar app

使用asar解压和打包文件
$ #asar extract 压缩文件 解压目录
$ asar extract app.asar app(将app.asar压缩到当前目录下的app目录)
$ #asar pack 压缩文件夹 压缩路径含文件名
$ asar pack app app.asar(将app打包成当前目录下的app.asar文件)

  • 修改源码
    解压完成后,输出目录就会出现app目录,找到相关js文件进行修改(文件路径:\app\src\engine\license-manager.js)
    在这里插入图片描述
    以下是已修改完后的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)
        // 1. 注释掉
        /* 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)
                }
              })
          }
        // 2. 注释掉
        // }
      }
    } catch (err) {
      reject(err)
    }
  })
}

checkLicenseValidity () {
  this.validate().then(() => {
    setStatus(this, true)
  }, () => {
    // setStatus(this, false)
    // UnregisteredDialog.showDialog()
    // 3. 上面两行注释掉,修改为以下
    setStatus(this, true)
  })
}
  • 打包文件
asar pack app app.asar
  • 替换文件
    把app.asar替换掉就好了

electron的asar文件查看、打包、解包工具,asar文件解密加密
在electron中,asar是个特殊的代码格式。asar包里面包含了程序猿编写的代码逻辑。

默认情况下,这些代码逻辑,是放置在resource/app目录下面的,明文可见,这样的话,也就有了代码加密。

electron用到一种asar的打包文件格式,压缩工具都不支持这个,只能在node.js的命令行里搞,不能直接查看文件列表,不能编辑,很不方便。

其实asar的文件头就是一个JSON字符串,然后他在前面记录了JSON的长度,然后他以用一个数值记录了长度的长度,然后他又用一个数值记录了长度的长度的长度。当然,有用的数值是最后一个,取出JSON的长度再把JSON读出来,JSON里记录了所有文件的偏移量和文件大小,跟tar完全是两种不同的解决问题的思路。
原文源自:https://lostphp.com/blog/1010.html

软件损坏解决办法

在这里插入图片描述
原因:
苹果系统有一个GateKeeper保护机制(自 OSX 10.5 加入)。从互联网上下载来的文件,会被自动打上com.apple.quarantine标志,翻译过来就是免疫隔离,系统根据这个附加属性对这个文件作出限制。

sudo xattr -r -d com.apple.quarantine /Applications/StarUML.app

其中-d就表示删除扩展属性的意思,-r 表示遍历文件夹中的文件,若权限控制符中有@也会去掉。域名com.apple.quarantine为想要删除的相关信息。

参考:
https://blog.csdn.net/qq_37834488/article/details/106927758

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值