StarUML是用nodejs寫的。確切的說是用 Electron前端框架寫的。新版本中所有的starUML源代碼是通過 asar工具打包而成。確切的代碼位置在“%LOCALAPPDATA%\Programs\StarURML\resources\app.asar”
我們可以通過asar工具解壓修改達到破解目的。
StarUML安裝
官網:http://staruml.io
安裝NodeJs
1,HomeBrew安裝
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew -V
2,Nodebrew安裝
brew install nodebrew
nodebrew -v
3,Nodejs安裝
$ nodebrew ls-remote
如果出現以下異常
Fetching: https://nodejs.org/dist/v7.10.0/node-v7.10.0-darwin-x64.tar.gz
Warning: Failed to create the file
Warning: /Users/whoami/.nodebrew/src/v7.10.0/node-v7.10.0-darwin-x64.ta
Warning: r.gz: No such file or directory
curl: (23) Failed writing body (0 != 941)
download failed: https://nodejs.org/dist/v7.10.0/node-v7.10.0-darwin-x64.tar.gz
需要創建文件夾
mkdir -p ~/.nodebrew/src
$ nodebrew install-binary latest
4,Nodejs有效化
$ nodebrew ls
$ nodebrew use v7.1.0
5,環境變量設置
$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bash_profile
$ node -v
提取 app.asar
StarUML右鍵顯示包內容
進入Contents/Resources/
把app.asar復制出來
解壓app.asar
asar extract app.asar app
修改解壓出來的app/src/engine/license-manager.js
checkLicenseValidity
函數,
將
setStatus(this,false)
改成
setStatus(this,true)
,
並注釋
UnregisteredDialog.showDialog()
重新打包放回目錄
asar pack app app.asar
將app.asar放回Contents/Resources/