typora问题解决:This beta version of Typora is expired

1:背景描述

从2021年11月份开始,我们习惯使用的Markdown工具Typora正式进入了收费模式,当时用的是beta版最新的,因为收费所以原来的文档都打不开了,页面报错
This beta version of Typora is expired, please download and install a newer version。
因为原有数据被锁,可以通过nodepad++来打开,但是很不习惯,临时找了网上的教程,下载旧版本的(也是beta系列的),然后一用就再免费用了半年,但是最近旧版的也面临了同样的问题,导致我的Markdown文件又被锁死了,所以寻找了永久的‘续命’方法。

2:永久解决方案

查找了网上各种资源,亲自试过后,下面的解决方法能够完美解决。

步骤1:环境准备

首先需要本地的windows环境下有python环境,推荐python3的环境,python2因为很多第三方包没有维护,官方也不在更新,亲测工具有些依赖无法下载。如果本地windows环境中没有python环境,或者只有python2环境,推荐跳转本人的其他blog:https://blog.csdn.net/qq_21583139/article/details/125881382

步骤2:github上下载工具

感谢博主开源了工具,链接如下所示,可以直接下载压缩包本地再解压,或者git clone到本地

https://github.com/WittonBell/typoraCracker

在这里插入图片描述
例如我下载的位置是(或者放置在你想要放置的位置,注意路径下不要有中文

C:\Users\leel\typoraCracker-master

步骤3:进入路径,进入正题

执行命令win + R进入windows的终端,然后进入当前的工具环境下cd C:\Users\leel\typoraCracker-master注意windows环境进入某个路径和linux环境不一样,首先先C:进入c盘,如果是D:先进入D盘,然后再cd到指定路径下
此时假设你已经做好了环境准备(python3)
按照我的那篇https://blog.csdn.net/qq_21583139/article/details/125881382所介绍那样,这里我使用python2和python3 共存的环境来演示,执行如下命令,(这里注意,如果只有python3的环境或者python2的话,直接使用pip install -r requirements.txt即可,pip3是本人做了py2和py3共存的处理

pip3 install -r requirements.txt

结果如下:(注意,如果没有修改pip下载源的话,就会很慢,或者失败,但是可以反复执行这条安装命令,因为会断点续传,失败多试几次就会成功

C:\Users\leel\typoraCracker-master>pip3  install -r requirements.txt
Collecting jsbeautifier==1.14.0
  Using cached jsbeautifier-1.14.0.tar.gz (73 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting jsmin==3.0.0
  Using cached jsmin-3.0.0.tar.gz (11 kB)
  Preparing metadata (setup.py) ... done
Collecting loguru==0.5.3
  Using cached loguru-0.5.3-py3-none-any.whl (57 kB)
Collecting pycryptodome==3.11.0
  Downloading pycryptodome-3.11.0-cp35-abi3-win_amd64.whl (1.8 MB)
     ---------------------------------------- 1.8/1.8 MB 17.1 kB/s eta 0:00:00
Collecting six>=1.13.0
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting editorconfig>=0.12.2
  Downloading EditorConfig-0.12.3-py3-none-any.whl (16 kB)
Collecting colorama>=0.3.4
  Downloading colorama-0.4.5-py2.py3-none-any.whl (16 kB)
Collecting win32-setctime>=1.0.0
  Downloading win32_setctime-1.1.0-py3-none-any.whl (3.6 kB)
Using legacy 'setup.py install' for jsmin, since package 'wheel' is not installed.
Building wheels for collected packages: jsbeautifier
  Building wheel for jsbeautifier (pyproject.toml) ... done
  Created wheel for jsbeautifier: filename=jsbeautifier-1.14.0-py3-none-any.whl size=91951 sha256=75dfef07a0d2880aaed6f6efb5f2e2b3e22a5e4d7443da41141906e0d61c9f6f
  Stored in directory: c:\users\luowenhao\appdata\local\pip\cache\wheels\41\76\91\43d0eb201fc1adc727a88dbd3e7ab6c77894c453c0abac9bd7
Successfully built jsbeautifier
Installing collected packages: jsmin, editorconfig, win32-setctime, six, pycryptodome, colorama, loguru, jsbeautifier
  Running setup.py install for jsmin ... done
Successfully installed colorama-0.4.5 editorconfig-0.12.3 jsbeautifier-1.14.0 jsmin-3.0.0 loguru-0.5.3 pycryptodome-3.11.0 six-1.16.0 win32-setctime-1.1.0

安装好依赖后,执行如下指令,运行脚本typora.py
这里需要注意的是,“C:Users\leel\AppData\Local\Program Files\Typora\resources\app.asar”,是你原来的无法使用了的typora的安装路径,要用双引号标注,请自行确定好。且注意这里我用的python3,和上面pip3一样,下文不再赘述。

python3 typora.py "C:\Users\leel\AppData\Local\Programs\Typora\resources\app.asar" .

执行后的效果如下

2022-07-19 14:01:35.998 | INFO     | __main__:extractWdec:56 - extract asar file: C:\Users\leel\AppData\Local\Programs\Typora\resources\app.asar
2022-07-19 14:01:36.025 | SUCCESS  | __main__:extractWdec:59 - extract ended.
2022-07-19 14:01:36.028 | INFO     | __main__:extractWdec:61 - read Directory: .\tmp_app
2022-07-19 14:01:36.031 | INFO     | __main__:extractWdec:66 - set Directory: .\dec_app
2022-07-19 14:01:36.034 | INFO     | __main__:extractWdec:73 - open file: atom.js
2022-07-19 14:01:36.037 | SUCCESS  | __main__:extractWdec:81 - decrypt and save file: atom.js
2022-07-19 14:01:36.040 | INFO     | __main__:extractWdec:73 - open file: Desktop.js
2022-07-19 14:01:36.044 | SUCCESS  | __main__:extractWdec:81 - decrypt and save file: Desktop.js
2022-07-19 14:01:36.046 | INFO     | __main__:extractWdec:73 - open file: Dict.js
2022-07-19 14:01:36.048 | SUCCESS  | __main__:extractWdec:81 - decrypt and save file: Dict.js
2022-07-19 14:01:36.050 | INFO     | __main__:extractWdec:73 - open file: DocumentController.js
2022-07-19 14:01:36.051 | SUCCESS  | __main__:extractWdec:81 - decrypt and save file: DocumentController.js
2022-07-19 14:01:36.052 | INFO     | __main__:extractWdec:73 - open file: Downloader.js
2022-07-19 14:01:36.053 | SUCCESS  | __main__:extractWdec:81 - decrypt and save file: Downloader.js
2022-07-19 14:01:36.054 | INFO     | __main__:extractWdec:73 - open file: Env.js
2022-07-19 14:01:36.055 | SUCCESS  | __main__:extractWdec:81 - decrypt and save file: Env.js
2022-07-19 14:01:36.056 | INFO     | __main__:extractWdec:73 - open file: FilesOp.js
2022-07-19 14:01:36.057 | SUCCESS  | __main__:extractWdec:81 - decrypt and save file: FilesOp.js
2022-07-19 14:01:36.060 | INFO     | __main__:extractWdec:73 - open file: License.js
2022-07-19 14:01:36.061 | SUCCESS  | __main__:extractWdec:81 - decrypt and save file: License.js
2022-07-19 14:01:36.063 | INFO     | __main__:extractWdec:73 - open file: main.node
2022-07-19 14:01:36.064 | DEBUG    | __main__:extractWdec:78 - skip file: main.node
2022-07-19 14:01:36.067 | SUCCESS  | __main__:extractWdec:81 - decrypt and save file: main.node
2022-07-19 14:01:36.069 | INFO     | __main__:extractWdec:73 - open file: menu.js
2022-07-19 14:01:36.071 | SUCCESS  | __main__:extractWdec:81 - decrypt and save file: menu.js
2022-07-19 14:01:36.072 | INFO     | __main__:extractWdec:73 - open file: package.json
2022-07-19 14:01:36.076 | DEBUG    | __main__:extractWdec:78 - skip file: package.json
2022-07-19 14:01:36.077 | SUCCESS  | __main__:extractWdec:81 - decrypt and save file: package.json
2022-07-19 14:01:36.079 | INFO     | __main__:extractWdec:73 - open file: Setting.js
2022-07-19 14:01:36.080 | SUCCESS  | __main__:extractWdec:81 - decrypt and save file: Setting.js
2022-07-19 14:01:36.082 | INFO     | __main__:extractWdec:73 - open file: updater.js
2022-07-19 14:01:36.083 | SUCCESS  | __main__:extractWdec:81 - decrypt and save file: updater.js
2022-07-19 14:01:36.084 | INFO     | __main__:extractWdec:73 - open file: WindowController.js
2022-07-19 14:01:36.086 | SUCCESS  | __main__:extractWdec:81 - decrypt and save file: WindowController.js
2022-07-19 14:01:36.087 | SUCCESS  | __main__:main:147 - Done!

执行完脚本后会发现当前的工具下会多出来一个文件夹,名为dec_app,进入当前的文件夹,然后找到License.js的文件,通过记事本或者nodepad++等其他工具打开后,使用搜索功能,找到如下的一行

This beta version of Typora is expired, please download and install a newer version.

这里我使用pycharm打开,因为更符合用户观看,将下图中4个时间戳改为4102329600000。替换后,保存退出。感兴趣的可以在时间戳转换器上看看这两个时间戳的日期。
在这里插入图片描述
随后执行如下命令

python3 typora.py -u dec_app/ .

结果如下

2022-07-19 14:07:42.181 | INFO     | __main__:packWenc:109 - set outFilePath: .\app.asar
2022-07-19 14:07:42.184 | INFO     | __main__:packWenc:119 - open file: atom.js
2022-07-19 14:07:42.186 | SUCCESS  | __main__:packWenc:124 - encrypt and save file: atom.js
2022-07-19 14:07:42.187 | INFO     | __main__:packWenc:119 - open file: Desktop.js
2022-07-19 14:07:42.188 | SUCCESS  | __main__:packWenc:124 - encrypt and save file: Desktop.js
2022-07-19 14:07:42.189 | INFO     | __main__:packWenc:119 - open file: Dict.js
2022-07-19 14:07:42.190 | SUCCESS  | __main__:packWenc:124 - encrypt and save file: Dict.js
2022-07-19 14:07:42.191 | INFO     | __main__:packWenc:119 - open file: DocumentController.js
2022-07-19 14:07:42.193 | SUCCESS  | __main__:packWenc:124 - encrypt and save file: DocumentController.js
2022-07-19 14:07:42.194 | INFO     | __main__:packWenc:119 - open file: Downloader.js
2022-07-19 14:07:42.205 | SUCCESS  | __main__:packWenc:124 - encrypt and save file: Downloader.js
2022-07-19 14:07:42.206 | INFO     | __main__:packWenc:119 - open file: Env.js
2022-07-19 14:07:42.208 | SUCCESS  | __main__:packWenc:124 - encrypt and save file: Env.js
2022-07-19 14:07:42.209 | INFO     | __main__:packWenc:119 - open file: FilesOp.js
2022-07-19 14:07:42.210 | SUCCESS  | __main__:packWenc:124 - encrypt and save file: FilesOp.js
2022-07-19 14:07:42.211 | INFO     | __main__:packWenc:119 - open file: License.js
2022-07-19 14:07:42.214 | SUCCESS  | __main__:packWenc:124 - encrypt and save file: License.js
2022-07-19 14:07:42.215 | INFO     | __main__:packWenc:119 - open file: main.node
2022-07-19 14:07:42.222 | SUCCESS  | __main__:packWenc:124 - encrypt and save file: main.node
2022-07-19 14:07:42.224 | INFO     | __main__:packWenc:119 - open file: menu.js
2022-07-19 14:07:42.226 | SUCCESS  | __main__:packWenc:124 - encrypt and save file: menu.js
2022-07-19 14:07:42.228 | INFO     | __main__:packWenc:119 - open file: package.json
2022-07-19 14:07:42.229 | SUCCESS  | __main__:packWenc:124 - encrypt and save file: package.json
2022-07-19 14:07:42.230 | INFO     | __main__:packWenc:119 - open file: Setting.js
2022-07-19 14:07:42.234 | SUCCESS  | __main__:packWenc:124 - encrypt and save file: Setting.js
2022-07-19 14:07:42.237 | INFO     | __main__:packWenc:119 - open file: updater.js
2022-07-19 14:07:42.241 | SUCCESS  | __main__:packWenc:124 - encrypt and save file: updater.js
2022-07-19 14:07:42.245 | INFO     | __main__:packWenc:119 - open file: WindowController.js
2022-07-19 14:07:42.256 | SUCCESS  | __main__:packWenc:124 - encrypt and save file: WindowController.js
2022-07-19 14:07:42.260 | INFO     | __main__:packWenc:126 - ready to pack
2022-07-19 14:07:42.283 | SUCCESS  | __main__:packWenc:128 - pack done
2022-07-19 14:07:42.285 | SUCCESS  | __main__:main:147 - Done!

此时会在当前目录下生成一个新的文件,名字叫app.asar
在这里插入图片描述
最后,我们将它替换typora的安装目录下的同一个文件就完成了,C:\Users\leel\AppData\Local\Programs\Typora\resources\app.asar
然后就能继续使用typora,自己的文件也可以解锁了。

3:后记

当然,本文只是学习交流使用,希望大家有余力的话支持正版。

其实是否可以使用他人的这个经过pojie后的app.asar文件直接替换不清楚,不过相信每个经过自己亲自去实践的乐趣会更多,成就感更多。
想要直接替换的,不走自己实践过程的请移步这个链接:
https://blog.csdn.net/weixin_45954454/article/details/125817182

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值