mirror of
https://github.com/Mas0nShi/typoraCracker.git
synced 2023-07-10 13:41:20 +08:00
fix #32.
This commit is contained in:
33
typora.py
33
typora.py
@@ -11,7 +11,7 @@ from base64 import b64decode, b64encode
|
||||
from jsbeautifier import beautify
|
||||
from jsmin import jsmin
|
||||
from os import listdir, urandom, makedirs
|
||||
from os.path import isfile, isdir, join as pjoin, split as psplit, exists
|
||||
from os.path import isfile, isdir, join as pjoin, split as psplit, exists, abspath
|
||||
from loguru import logger as log
|
||||
from masar import extract_asar, pack_asar
|
||||
from shutil import rmtree
|
||||
@@ -31,10 +31,14 @@ else:
|
||||
AES_KEY = struct.pack("<4Q", *[0x4B029A9482B3E14E, 0xF157FEB4B4522F80, 0xE25692105308F4BE, 0x6DD58DDDA3EC0DC2])
|
||||
|
||||
|
||||
def _newDir(_path):
|
||||
if exists(_path):
|
||||
rmtree(_path)
|
||||
makedirs(_path)
|
||||
def _mkDir(_path):
|
||||
if not exists(_path):
|
||||
makedirs(_path)
|
||||
else:
|
||||
if _path == psplit(__file__)[0]:
|
||||
log.warning("plz try not to use the root dir.")
|
||||
else:
|
||||
log.warning(f"May FolderExists: {_path}")
|
||||
|
||||
|
||||
def decScript(b64: bytes, prettify: bool):
|
||||
@@ -53,13 +57,18 @@ def decScript(b64: bytes, prettify: bool):
|
||||
|
||||
def extractWdec(asarPath, path, prettify):
|
||||
"""
|
||||
:param prettify: bool
|
||||
:param asarPath: asar out dir
|
||||
:param path: out dir
|
||||
:return: None
|
||||
"""
|
||||
# try to create empty dir to save extract files
|
||||
path = pjoin(path, "typoraCrackerTemp")
|
||||
_newDir(path)
|
||||
|
||||
if exists(path):
|
||||
rmtree(path)
|
||||
_mkDir(path)
|
||||
|
||||
log.info(f"extract asar file: {asarPath}")
|
||||
# extract app.asar to {path}/*
|
||||
extract_asar(asarPath, path)
|
||||
@@ -69,7 +78,10 @@ def extractWdec(asarPath, path, prettify):
|
||||
# construct the save directory {pathRoot}/dec_app
|
||||
outPath = pjoin(psplit(path)[0], "dec_app")
|
||||
# try to create empty dir to save decryption files
|
||||
_newDir(outPath)
|
||||
if exists(outPath):
|
||||
rmtree(outPath)
|
||||
_mkDir(outPath)
|
||||
|
||||
log.info(f"set Directory: {outPath}")
|
||||
# enumerate extract files
|
||||
fileArr = listdir(path)
|
||||
@@ -109,14 +121,17 @@ def packWenc(path, outPath, compress):
|
||||
:param compress: Bool
|
||||
:return: None
|
||||
"""
|
||||
# check out path
|
||||
if isfile(outPath):
|
||||
log.error("plz input Directory for app.asar")
|
||||
raise NotADirectoryError
|
||||
|
||||
_newDir(outPath)
|
||||
_mkDir(outPath)
|
||||
|
||||
encFilePath = pjoin(psplit(outPath)[0], "typoraCrackerTemp")
|
||||
_newDir(encFilePath)
|
||||
if exists(encFilePath):
|
||||
rmtree(encFilePath)
|
||||
_mkDir(encFilePath)
|
||||
|
||||
outFilePath = pjoin(outPath, "app.asar")
|
||||
log.info(f"set outFilePath: {outFilePath}")
|
||||
|
||||
Reference in New Issue
Block a user