一. 介紹

StarUML是一款開放源碼的UML開發工具,是由韓國公司主導開發出來的產品,可以直接到StarUML網站下載。StarUML是一個開源項目之一發展快、靈活、可擴展性強(zj).

● 可繪制9款UML圖:用例圖、類圖、序列圖、狀態圖活動圖、通信圖、構件圖、部署圖以及復合結構圖等。

● 完全免費:StarUML是一套開放源碼的軟件,不僅免費自由下載,連代碼都免費開放。

● 多種格式影像文件:可導出JPG、JPEG、BMP、EMF和WMF等格式的影像文件。

二. 破解

還未破解前提示如下,接下來就對此工具進行破解操作吧。StarUML是用nodejs寫的。確切的說是用Electron前端框架寫的。新版本中所有的starUML源代碼是通過asar工具打包而成。

image-20201110230452349

Windows 破解方式

工具:ASARwjg.exe

1> 安裝完成后,找到app.asar文件一般默認路徑:C:\Program Files\StarUML\resources

image-20201110232632071

2> 打開asar編輯工具,將app.asar拖進工具進行解壓,asar文件解壓包項,修改輸出目錄,提取全部文件(工具編輯按理說可以字節編輯保存,但是老是錯誤信息,故此只有多走點彎路了)

image-20201110233527618

3> 提取完成后,輸出目錄就會出現app目錄,找到相關js文件進行修改(文件路徑:\app\src\engine\license-manager.js)

image-20201110233930810

源碼如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/**
* 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)
})
}

4> 把解壓出來的目錄,打包成asar文件,一樣的可以把當前目錄直接拖進工具

image-20201110234710119

5> 替換app.asar文件即可,把最終打包好的文件替換掉官方的

image-20201110234923447

6> 啟動StarUML無提示,破解成功

MAC 破解方式

  • 可以直接把編譯好的app.asar文件拿去替換(簡單方式)

  • 通過工具類似,以上的方式【解壓->編輯js文件->打包】操作一遍,流程簡單如下

    1> 安裝asar工具

    1
    cnpm install -g asar

    2> 解壓app.asar文件

    1
    asar extract app.asar app

    3> 修改源碼(如上所示)

    4> 打包文件(最后替換)

    1
    asar pack app app.asar

最后更新: 2021年04月01日 11:03

原始鏈接: https://www.lmaye.com/2020/11/10/20201111000508/

 

 

 

window10 解壓后的文件夾拖動到ASARwjg.exe界面,沒反應。解決: 右鍵ASARwjg.exe - 屬性 - 兼容性 - 勾選 以兼容模式運行這個程序:window8