效果图

image-20230105212144543

先决条件

  1. 清醒且爱思考的大脑
  2. 已安装官方typora软件的ubuntu系统
  3. 流畅且无限制的网路环境

编译环境搭建

  1. 无需root权限,执行下面命令

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
  2. 在弹出界面中输入 1 即可自动安装rust环境

  3. 用以下命令校验是否安装成功

    ❯ rustc --version  
    rustc 1.66.0 (69f9c33d7 2022-12-12)
    
    ❯ cargo --version
    cargo 1.66.0 (d65d197ad 2022-11-15)
    

编译

  1. 克隆以下两个项目

    git clone https://github.com/DiamondHunters/NodeInject.git
    git clone https://github.com/DiamondHunters/NodeInject_Hook_example.git
    
  2. NodeInject_hooke_example项目中hook.js 复制到 NodeInject项目中并替换hooklog.js

    cp NodeInject_Hook_example/hook.js ./NodeInject/src
    mv hook.js hooklog.js
    
  3. 进入NodeInject目录并编译项目

    cd NodeInject
    cargo build
    
  4. 将编译出的可执行文件复制到typora安装目录中并运行

    sudo cp ./target/debug/node_inject /usr/share/typora
    cd /usr/share/typora
    sudo ./node_inject
    
    • 输出以下结果为成功

      ❯ sudo ./node_inject
        extracting node_modules.asar
        adding hook.js
        applying patch
        packing node_modules.asar
        done!
      
  5. 进入NodeInject_hooke_example项目license-gen目录中编译软件

    cd NodeInject_hooke_example/license-gen
    cargo build
    
  6. 运行以下命令生成激活秘钥

    ./target/debug/license-gen
    
  7. 启动typora输入激活秘钥、邮箱任意填写即可。大功告成,尽情享用吧。

笔者环境

  • ubuntu 22.04
  • typora 1.4.7

鸣谢

  • DiamondHunters 提供的思路以及实现代码