/Applications/StarUML.app/Contents/Resources
StarUML是用nodejs寫的。確切的說是用Electron前端框架寫的。新版本中所有的starUML源代碼是通過asar工具打包而成。確切的代碼位置在“%LOCALAPPDATA%\Programs\StarURML\resources\app.asar”或者“C:\Program Files\StarUML\resources”
我們可以通過asar工具解壓修改達到破解目的。具體操作如下:
1. 安裝asar
cnpm install -g asar
1
2. 解壓app.asar
asar extract app.asar app
1
3. 修改源代碼
通過命令行將程序解壓到app目錄下。真正的驗證license的代碼在app\src\engine\license-manager.js
這是個典型的javascirpt Promise。啟動后會調用validate函數檢查license。
checkLicenseValidity () { this.validate().then(() => { setStatus(this, true) }, () => { // 原來的代碼,如果失敗就會將狀態設置成false // setStatus(this, false) // UnregisteredDialog.showDialog() //修改后的代碼 setStatus(this, true) }) }
參照上面的代碼將reject的callback原代碼注釋掉。換成setStatus(this, true) 這樣無論你注冊與否都驗證成功。
4. 重新打包替換原來的app.asar
asar pack app app.asar