通过网盘分享的文件:DungeonWithin-v0.1.13-full-apkvision.rar
链接: 百度网盘 请输入提取码 提取码: 2g8c
–来自百度网盘超级会员v5的分享
文件也不大,直接dump内存切一下。通过网盘分享的文件:decrypted.zip
链接: 百度网盘 请输入提取码
1 个赞
安卓游戏可以内存转储吗![]()
要静态分析的话,分析 SeekableAesStream 相关函数,前面的准备流程就不赘述。libil2cpp.so蛮大的,加载费时间
。
脚本主体
#!/usr/bin/env python3
PASSWORD = "DUNGEONWITHIN_SECURE_KEY"
SALT = bytes.fromhex("1A2B3C4D5E6F7A8B9C0D1E2F3A4B5C6D")
def derive_key(password: str, salt: bytes, iterations: int = 100, key_len: int = 16) -> bytes:
data = password.encode("utf-8") + salt
for _ in range(iterations):
data = hashlib.sha1(data).digest()
return data[:key_len]
def build_keystream(length: int, key: bytes) -> bytes:
bs = 16
out = b""
nblocks = (length + bs - 1) // bs
for i in range(nblocks):
ctr = struct.pack("<Q", i + 1) + b"\x00" * 8
out += AES.new(key, AES.MODE_ECB).encrypt(ctr)
return out[:length]
def decrypt(ciphertext: bytes) -> bytes:
key = derive_key(PASSWORD, SALT)
ks = build_keystream(len(ciphertext), key)
return bytes(c ^ k for c, k in zip(ciphertext, ks))
