新增以下提交

1.自动判断bin文件是否需要解密
2.添加下载指定ram.bin的功能,支持命令行交互
3.去除手动指定上传还是下载的命令选项
This commit is contained in:
ranchuan
2024-10-17 16:14:50 +08:00
parent 9a40af3319
commit fbda160e9a
4 changed files with 140 additions and 52 deletions

View File

@@ -214,6 +214,18 @@ def img_header_check(data:bytearray):
return "V0"
return ""
# 判断是不是加密了
def pkt_encrypt_check(data:bytearray):
magic_data=data[12:16]
pat=magic_data[0]
for i in range(len(magic_data)):
magic_data[i]=magic_data[i]^pat
magic=(magic_data[0]<<24)|(magic_data[1]<<16)|(magic_data[2]<<8)|(magic_data[3])
if (magic==_PKT_HEADER_MAGIC_NO):
if(pat!=0):
return True
return False
# 转化为hex文本
def bin_to_hex(bin:bytearray,f,oem_file=None):
@@ -261,11 +273,11 @@ def bin_to_hex(bin:bytearray,f,oem_file=None):
return kunlun
def bin_to_hex_file(bin_file_name:str,hex_file_name:str,enc=0):
def bin_to_hex_file(bin_file_name:str,hex_file_name:str):
with open(bin_file_name,mode='rb') as f:
bin=bytearray(f.read())
if(enc):
myprint("start decrypt")
if(pkt_encrypt_check(bin)):
myprint("start decrypt:")
pat=(bin[12]^0x00)&0xff
myprint(f"decrypt image:{hex(pat)}({_PatternType.get(pat,'unknown')})")
for index in range(len(bin)):
@@ -291,7 +303,7 @@ def bin_file_decrypt(bin_file:str):
with open(bin_file,mode='rb') as f:
bin=bytearray(f.read())
# 自动判断是否需要解密
if ((bin[12]==bin[13])and(bin[12]!=0x00)):
if (pkt_encrypt_check(bin)):
pat=(bin[12]^0x00)&0xff
myprint(f"decrypt image:{hex(pat)}({_PatternType.get(pat,'unknown')})")
for index in range(len(bin)):
@@ -313,8 +325,4 @@ def clear_tmp():
# bin_to_hex.py input_file
if __name__ == "__main__":
if(len(sys.argv)>=3):
enc=1
else:
enc=0
bin_to_hex_file(sys.argv[1],"work/"+sys.argv[1]+".txt",enc)
bin_to_hex_file(sys.argv[1],"work/"+sys.argv[1]+".txt")