程序员的资源宝库

网站首页 > gitee 正文

Typora1.3.6 记录 typora常用

sanyeah 2024-03-29 17:57:46 gitee 10 ℃ 0 评论

目录
  • 1.解包app.asar
  • 2.分析main.node模块
    • 定位main
    • main-->加载解密atom.js
    • 解密atom.js
    • 修改package.json
    • 运行、排错
      • main_1800AF230-->处理未定义错误
  • 修改atom.js

1.解包app.asar

  • 安装node.js

npm install asar -g

  • 解包:

asar extract xxx.asar xxx_dir

  • 打包 :

asar pack xxx_dir xxx.asar

2.分析main.node模块

定位main

main-->加载解密atom.js




AES_256_CBC

解密atom.js

'''
import base64
import os
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad,pad
'''
#version 1.3.6
aeskey=[0x78, 0x18, 0xB7, 0x7E, 0x5F, 0xB1, 0x4D, 0x40, 0x52, 0x11, 0x43, 0xE2, 0xAC, 0x5A, 0x15, 0xC1,
0x7A, 0x48, 0x97, 0x00, 0x41, 0x43, 0x1F, 0xF7, 0x6E, 0x6E, 0xA7, 0xD5, 0x7C, 0x66, 0x94, 0xA1]
aesiv=[0x79, 0xD9, 0xA0, 0x9F, 0x39, 0xF9, 0xBA, 0x2F, 0xE4, 0x25, 0xF7, 0x9A, 0x66, 0x21, 0xC5, 0x86]
def decrypto_file(fname:str):
    enc_b64=b''
    with open(fname, 'rb') as f:
        enc_b64=f.read()
    with open(fname+'2.out','wb') as f:
        dec_bs=base64.b64decode(enc_b64)
        # dec_bs=pad(dec_bs,16,'pkcs7')
        xpad=len(dec_bs)%16
        if xpad:
            dec_bs=dec_bs[:-xpad]
        aesdecrypto = AES.new(key=bytes(aeskey), mode=AES.MODE_CBC, iv=bytes(aesiv) )
        bs=aesdecrypto.decrypt(dec_bs)
        bs=unpad(bs,16, 'pkcs7')
        f.write(bs)

修改package.json

修改package.json中main选项,直接指向atom.js,以后不再需要app.asar,删除app.asar(或者修改后缀)

Typora1.3.6\resources\package.json
"main": "app/atom.js",
Typora1.3.6\resources\app\ package.json
"main": "atom.js",

运行、排错

运行程序 报错未定义
“scheme”、“entry”
继续分析main.node获悉,解密atom.js后调用napi_set_named_property处理了未定义

main_1800AF230-->处理未定义错误


set_undef_180023520

修改atom.js

接下来就可以充分发挥想象力了

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表