Start UML 4.1.6 破解記錄


前言

正所謂,工欲善其事必先利其器,UML作為唯一的標准的建模語言,在推廣上,有不可置疑的地位,那么我們需要有一款好用的建模工具。

貢獻榜

  • Node.js##nmp工具包
  • 工具下載
    Node.js: 在 Windows 操作系統,我們需要 npm 命令安裝 asar 工具. 如果你已安裝 asar 工具,可忽略此步驟.
    官網下載: https://nodejs.org/zh-cn/
    
    百度雲:
    鏈接:https://pan.baidu.com/s/1_k2QHotAJe5wxV4fFAZS2g?pwd=6666 
    提取碼:6666
    
    
    StarUML: UML 建模工具.
    官網下載: https://staruml.io/download
    
    百度雲: StarUML_4.1.6版本的破解版。請根據根目錄下的 ReadMe.md 文件提示操作
    鏈接:https://pan.baidu.com/s/1QXl1ry_Qk2KJcDXBxURdnQ?pwd=6666 
    提取碼:6666
    
    目錄

  • StarUML_4.1.6安裝

  • Asar工具安裝

  • StarUML_4.1.6破解
  • StarUML_4.1.6安裝

    在下載StarUML安裝包后,在本地應該有一個StarUML Setup x.x.xexe可執行文件,雙擊安裝包后會自動安裝在本地的C:/Program Files/StarUML目錄。

    StarUML安裝成功本地文件夾-示例

    StarUML.exe是建模工具的可執行文件,正常打開后需要注冊才能正常的使用。
    StarUML未注冊界面-示例

    Asar工具安裝

    Windows操作系統中,安裝Asar工具包是需要借助Node.js工具的功能的,在下載Node.js后,本地有node-vx.x.x-x64.msi的安裝包,雙擊打開后一直Next即可。

    安裝成功后打開CMD窗口輸入npm -v命令驗證,返回 x.x.x版本信息即表示安裝成功了。
    Node.js安裝成功-示例

    在成功安裝Node.js工具后,我們使用Node.js工具包中的npm命令安裝aras命令。在CMD窗口輸入npm install -g asar命令安裝就好了。

    這里應該是直接安裝成功的,但我看到提示說有新版本npm的包使用,讓我輸入 npm install -g npm@9.2.0更新。你可以直接忽略此信息。到這里,我們的准備環境都做好了,可以開始我們的正經工作了。
    aras安裝成功-示例

    StarUML_4.1.6破解

    StarUML的執行的源碼就是包含在app.aras文件,所以我們破解的原理就是改動注冊部分的代碼。

    想象以下,程序員X在設計注冊功能的時候,不管它如何設計,在源碼中都應該會有驗證成功和失敗的處理,我們管它的實現是怎么回事,我們只需要將注冊驗證成功的代碼copy到驗證失敗的地方就可以了不是。

    當然,破解的方案有很多種,而我們選擇最簡單、粗暴的方案而已。畢竟我們的需求就很簡單、粗暴,嘿嘿嘿~~~

    好的,我們理論上就說完了,那么就整理一下需要做的事情。
    1.將app.aras文件從C:/Program Files/StarUML/resources復制到桌面,避免在C盤目錄下存在權限問題,導致我們操作失敗的情況。
    2.在桌面打開CMD。輸入asar extract app.asar app_dir命令將app.asar文件解壓到app_dir目錄。
    3.在{work_dir}/app_dir/src/engine/license-manager.js文件修改注冊驗證部分的代碼。
    4.將修改好的app_dir目錄壓縮成app.aras文件,壓縮命令是 asar pack app_dir app.asar,並且拷貝到C:/Program Files/StarUML/resources目錄即可。

      // {work_dir}/app_dir/src/engine/license-manager.js
      checkLicenseValidity () {
        if (packageJSON.config.setappBuild) {
          setStatus(this, true)
        } else {
          this.validate().then(() => {
            setStatus(this, true)
          }, () => {
            setStatus(this, false)
            UnregisteredDialog.showDialog()
          })
        }
      }
      //將上面 checkLicenseValidity() 的代碼改成以下代碼
        checkLicenseValidity () {
        if (packageJSON.config.setappBuild) {
          setStatus(this, true)
        } else {
          this.validate().then(() => {
            setStatus(this, true)
          }, () => {
            // 驗證失敗的代碼段
            setStatus(this, true)
          })
        }
      }
      //---------------------------分割-----------------------------
      /**
       * Check the license key in server and store it as license.key file in local
       *
       * @param {string} licenseKey
       */
      register (licenseKey) {
        return new Promise((resolve, reject) => {
          $.post(app.config.validation_url, {licenseKey: licenseKey})
            .done(data => {
              var file = path.join(app.getUserPath(), '/license.key')
              fs.writeFileSync(file, JSON.stringify(data, 2))
              licenseInfo = data
              setStatus(this, true)
              resolve(data)
            })
            .fail(err => {
              setStatus(this, false)
              if (err.status === 499) { /* License key not exists */
                reject('invalid')
              } else {
                reject()
              }
            })
        })
      }
      //將上面的 register (licenseKey) 代碼改成以下代碼
      register (licenseKey) {
        return new Promise((resolve, reject) => {
          $.post(app.config.validation_url, {licenseKey: licenseKey})
            .done(data => {
              var file = path.join(app.getUserPath(), '/license.key')
              fs.writeFileSync(file, JSON.stringify(data, 2))
              licenseInfo = data
              setStatus(this, true)
              resolve(data)
            })
            .fail(err => {
              // 注冊失敗的代碼段
              setStatus(this, true)
            })
        })
      }
    

    完成以上的操作步驟后,我們再次打開StarUML.exe后就沒有那個需要注冊的彈窗了。開始你的建模之旅吧~~
    StarUML破解成功-示例


    免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM