StarUML 3.x 完美优化<PJ>的思路

    选择打赏方式

背景

在昨天我发布了一篇又长又臭的StarUML 3.x 完美PJ方案

然后今天早上一起床就想到啊~好麻烦啊!能不能让完美再简单点?

好的然后我又开始了折腾(真丶生命在于折腾

我的想法

这一次我要先从about-dialog.js开始分析

about-dialog.js路径:解压app.asarapp/src/dialogs/about-dialog.js

正所谓:你要什么我就给什么才是最方便的

正文

下面开始正式分析破解

找出关于中要显示的信息的数据来源

首先我们要找出要在关于中显示的信息来源

about-dialog.js中第 45-71 行:

// set license infoif (app.licenseManager.getStatus() === true) {
    var info = app.licenseManager.getLicenseInfo()
    var licenseTypeName = 'Unknown'    switch (info.licenseType) {
    case 'PS':
      licenseTypeName = 'Personal'      break    case 'CO':
      licenseTypeName = 'Commercial'      break    case 'ED':
      licenseTypeName = 'Educational'      break    case 'CR':
      licenseTypeName = 'Classroom'      break    }
    $license.html('Licensed to ' + info.name)
    $licenseType.html(licenseTypeName + ' License')
    $quantity.html(info.quantity + ' User(s)')
    $crackedAuthor.html('Cracked by ' + info.crackedAuthor)
  } else {
    $license.html('UNREGISTERED')
  }
  return dialog
}

可以看出它首先会先调用license-manager.js中的getStatus()方法判断程序的注册状态。那现在我们去license-manager.js看一下getStatus()这个方法:

/**
 * Get Registration Status
 * home.php?mod=space&uid=155549 {string}
 */getStatus () {
  return status
}

嗯......很简单的一个方法我是试过直接在这里设置"true"(注意!这里是返回字符串)但是没什么用我就没改这里了。那么这里到底有什么用呢?大家看它返回的那个变量:status这是我们唯一从这里得到的信息我们全文搜索一下status可以找到一个setStatus(...)的方法。我修改了一下让它总是设置为true代码如下:

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

好了现在我们可以进入那个if语句了

var info = app.licenseManager.getLicenseInfo()

可以看出它调用了license-manager.js中的getLicenseInfo()方法获取所需数据我们去看一下getLicenseInfo()方法:

getLicenseInfo () {
    return licenseInfo
}

嗯.....还是那么简洁但是从昨天的文章我们已经知道这个licenseInfo的数据内容格式他要的数据也是licenseInfo的数据。那么我们直接模拟licenseInfo的数据即可:

getLicenseInfo () {
  licenseInfo = {
          name: "Reborn",          product: "Reborn product",          licenseType: "PS",          quantity: "Reborn Quantity",          timestamp: "1529049036",          licenseKey: "It's Cracked!!",          crackedAuthor: "Reborn"        };
  return licenseInfo
}

好了模拟成功about-dialog.js那边应该能获取到licenseInfo的数据了。但是仅仅是这样还不行哦!还有最重要的一点你们别忘了&mdash;&mdash;我们还没破解!

破解注册

破解注册很简单直接修改license-manager.js中的checkLicenseValidity()这个方法就好了。

修改后的代码如下:

checkLicenseValidity () {
  this.valIDAte().then(() => {
    setStatus(this, true)
  }, () => {
    // 原来的代码,如果失败就会将状态设置成false//       setStatus(this, false)//       UnregisteredDialog.showDialog()    //修改后的代码    setStatus(this, true)
  })
}

注册成功!!

完成以上流程后应该就能成功直接破解不用输入注册码并且这种方法破解后同样能在关于显示你自定义的破解信息!!一样完美~

版权声明:若无特殊注明,本文皆为《 小徐 》原创,转载请保留文章出处。
本文链接:StarUML 3.x 完美优化<PJ>的思路 http://hnhyls.com/zqzb/144.html
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻大笑可怜吃惊害羞调皮鄙视示爱大哭开心偷笑嘘奸笑委屈抱抱愤怒思考日了狗胜利不高兴阴险乖酷滑稽

评论信息框

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!