如题:
继台服后,渠道服也要关了,虽然官服还正常,不清楚还能活多久
astc档案有找到解密脚本如下:(台服的,国服也适用)
import os
byte_0 = bytes([
0x11, 0x2B, 0x65, 0x78, 0x17, 0x0C, 0x0D, 0x17, 0x15, 0x35, 0x62,
0x65, 0x7B, 0x62, 0x15, 0x7F, 0x11, 0x2C, 0x63, 0x17, 0x4D, 0x57,
0x0C, 0x59, 0x0B, 0x20, 0x65, 0x21, 0x20, 0x63, 0x0C, 0x7F, 0x12
])
byte_33 = bytes([
0x75, 0x04, 0x0A, 0x0C, 0x7B, 0x15, 0x10, 0x21, 0x36, 0x37, 0x1B,
0x23, 0x65, 0x64, 0x0B, 0x0F, 0x47, 0x2F, 0x5A, 0x24, 0x11, 0x59,
0x41, 0x4C, 0x5B, 0x21, 0x66, 0x5A, 0x31, 0x40, 0x51, 0x7E, 0x0D
])
byte_66 = bytes([
0x15, 0x43, 0x2D, 0x27, 0x58, 0x51, 0x0F, 0x57, 0x15, 0x13, 0x24,
0x14, 0x0E, 0x2B, 0x25, 0x16, 0x1F, 0x0E, 0x4E, 0x0E, 0x3F, 0x29,
0x42, 0x52, 0x10, 0x29, 0x0F, 0x69, 0x65, 0x49, 0x1C, 0x20, 0x42
])
byte_99 = bytes([
0x54, 0x22, 0x3D, 0x4A, 0x07, 0x37, 0x4D, 0x11, 0x63, 0x69, 0x65,
0x13, 0x4A, 0x2D, 0x2D, 0x4B, 0x41, 0x59, 0x0E, 0x73, 0x24, 0x4E,
0x15, 0x62, 0x77, 0x10, 0x32, 0x3C, 0x46, 0x50, 0x5A, 0x64, 0x6E
])
def decrypt_yf(filepath):
with open(filepath, "rb") as f:
data = bytearray(f.read())
if len(data) < 16 or data[:2] != b'AB':
print(f"文件 {filepath} 無需解密")
return
v5 = (data[13] | (int.from_bytes(data[2:4], 'big') << 16)) & 0xFFFF00FF | (data[12] << 8)
v6 = data[15] | (data[14] << 8)
v7 = int.from_bytes(data[10:12], 'big') | (int.from_bytes(data[4:6], 'big') << 16)
v8 = v7 - (v7 // v6) * v6 + v7
v9 = v5 % 3 if (v8 & 3) != 0 else 3
v10 = min(v8, len(data))
if v5 + v10 + 16 >= len(data):
print(f"文件 {filepath} 不符合解密條件")
return
start_offset = v5 + 16
end_offset = start_offset + v10
if v9 == 0:
key_segment = byte_0
key_name = "byte_0"
elif v9 == 1:
key_segment = byte_33
key_name = "byte_33"
elif v9 == 2:
key_segment = byte_66
key_name = "byte_66"
else:
key_segment = byte_99
key_name = "byte_99"
print(f"使用的密鑰段:{key_name}")
print(f"解密範圍:{start_offset} 到 {end_offset}")
for i in range(start_offset, end_offset):
key_index = (i - start_offset + v5) % 33
data[i] ^= key_segment[key_index]
decrypted_filepath = filepath + ".dec"
with open(decrypted_filepath, "wb") as f:
f.write(data[16:])
print(f"解密完成: {decrypted_filepath}")
for filename in os.listdir("."):
if filename.endswith(".astc"):
decrypt_yf(filename)
astc.zip (1.0 MB)
但bin档案不适用
。看看有没有人有备份脚本或知道bin档案如何解密的
spines-atlas.zip (1.5 MB)