Skip to content
This repository has been archived by the owner on May 27, 2022. It is now read-only.

Commit

Permalink
refactor.
Browse files Browse the repository at this point in the history
  • Loading branch information
Mas0nShi committed Apr 30, 2021
1 parent 33b2bc3 commit 97f48fd
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 33 deletions.
44 changes: 25 additions & 19 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
import xxtea
import zlib
import os
import traveDir
from traveDir import depthIteratePath
from loguru import logger
import sys
import random
import zipfile
Expand Down Expand Up @@ -43,6 +44,7 @@ def style(**kwargs):
8 `888' 888 .oP"888 `"Y88b. 888 888 888 888
8 Y 888 d8( 888 o. )88b `88b d88' 888 888
o8o o888o `Y888""8o 8""888P' `Y8bd8P' o888o o888o
Running Start
\n"""

Expand Down Expand Up @@ -88,14 +90,14 @@ def print_white_text(content, end="\n"):
print("\033[1;37m %s \033[0m" % content, end=end),


def read_jsc_file(path):
def readJscFile(path):
f = open(path, "rb")
data = f.read()
f.close()
return data


def save_file(fileDir, outData):
def saveFile(fileDir, outData):
"""
保存解密文件
Expand Down Expand Up @@ -131,7 +133,7 @@ def decrypt(filePath, key):
"""
if len(key) < 16:
key += "".join("\0" * (16 - len(key))) # key填充
data = read_jsc_file(path=filePath)
data = readJscFile(path=filePath)
dec_data = xxtea.decrypt(data=data, key=key, padding=False)
if dec_data[:2] == b"PK":
fio = BytesIO(dec_data)
Expand All @@ -148,29 +150,33 @@ def decrypt(filePath, key):
return dec_data


def batch_decrypt(srcDir, xxtea_key):
def batchDecrypt(srcDir, xxteaKey):
"""
块解密
:param srcDir: 文件夹目录
:param xxtea_key: xxteaKey
:param xxteaKey: xxteaKey
:return: None
"""
if not os.path.exists(srcDir):
ColorPrinter.print_white_text("Error:FileNotFound")
exit(1)
rootDir = os.path.split(srcDir)[0]
outDir = rootDir
if outDir[-2:-1] != "\\":
outDir += "\\"
outDir += "out\\"
traveDir.deep_iterate_dir(srcDir)
files_list = traveDir.getfileslist()
for file_path in files_list:
ColorPrinter.print_green_text("Decrypting flie:{0}".format(file_path))
decData = decrypt(filePath=file_path, key=xxtea_key)
outFile = outDir + file_path[len(rootDir + os.path.split(srcDir)[1]) + 1:]
save_file(fileDir=outFile, outData=decData)
outDir = os.path.join(rootDir, "out")
if os.path.isfile(srcDir):
filesPathArr = [srcDir]
elif os.path.isdir(srcDir):
filesPathArr = depthIteratePath([".jsc"]).getDepthDir(srcDir)
else:
logger.error("UnknownError -> setPathExt")
exit(-1)

for filePath in filesPathArr:
ColorPrinter.print_green_text("Decrypting flie:{0}".format(filePath))
decData = decrypt(filePath=filePath, key=xxteaKey)
outFile = outDir + filePath[len(rootDir + os.path.split(srcDir)[1]) + 1:]
saveFile(fileDir=outFile, outData=decData)
print(" Save flie:{0}".format(outFile))


Expand All @@ -192,9 +198,9 @@ def main():
srcDir = sys.argv[3]
if instruct[1:2] == "d":
show_banner()
batch_decrypt(srcDir=srcDir, xxtea_key=xxtea_key)
ColorPrint.print_white_text("Running exit...\n")
batchDecrypt(srcDir=srcDir, xxteaKey=xxtea_key)
ColorPrint.print_white_text(" Running exit...\n")


if __name__ == "__main__":
main()
main()
30 changes: 16 additions & 14 deletions traveDir.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
import os

_files = []
_exts = [".jsc"]

def deep_iterate_dir(rootDir):
for lists in os.listdir(rootDir):
path = os.path.join(rootDir, lists)
if os.path.isdir(path):
deep_iterate_dir(path)
elif os.path.isfile(path):
ext = os.path.splitext(path)[1]
if ext in _exts:
_files.append(path)
class depthIteratePath:

def __init__(self, exts=[]):
self._files = []
self._exts = exts

def getfileslist():
return _files

def _deepIterateDir(self, rootDir):
for lists in os.listdir(rootDir):
path = os.path.join(rootDir, lists)
if os.path.isdir(path):
self._deepIterateDir(path)
elif os.path.isfile(path):
ext = os.path.splitext(path)[1]
if ext in self._exts:
self._files.append(path)

def getDepthDir(self, rootPath):
self._deepIterateDir(rootPath)
return self._files

0 comments on commit 97f48fd

Please sign in to comment.