写在前面
最近下回了最新版的StarUML(6.1),使用老版本的破解方法发现虽然能够正常画图但无法导出图片了,毕竟这玩意儿看起来是基于Web的,就开了一下调试工具发现他在导出的时候获取了激活信息的Object,由于这个Object他是null,访问成员会导致错误,因此导致图片无法导出。直接上步骤。
步骤
1. 安装Node.js与npm
到Node.js官网 https://nodejs.org/en/download/current 下载并安装Node.js,具体可以自己找教程
2. 安装asar
打开cmd或者powershell(当然如果是Linux的话就是bash/zsh啥的),输入命令 npm i -g asar
3. 找到对应的资源文件并解压
来到你StarUML的安装目录,默认为C:\Program Files\StarUML\resources,找到app.asar,如下图。
我们找一个顺眼的目录,将其复制到对应的目录下,并打开cmd或powershell将工作目录切过去,执行asar e app.asar app。
我们就得到了一个app文件夹,打开我们的惯用IDE,开始patch咯。
4. Patch对应的文件
还是老样子要patch的文件为license-manager.js,我们找到app/src/engine/license-manager.js。
打开这个文件,我们找到LicenseManager这个类的checkLicenseValidity方法,内容直接改成setStatus(this, true);,如下图。
然后我们还需要额外做一个工作,也是解决6.1版本无法导出图片的罪魁祸首。
我们再看到getLicenseInfo这个方法,内容如下图。
licenseType写PRO,其他地方随便写应该没问题。
5. 重新打包,将文件丢回去
还是那个执行解包的工作目录,再执行asar p app app.asar,然后将新的app.asar丢回去就好了。
效果如下图,我们也能正常导出图片了。