一款火影忍者游戏解密求助

so和样本.rar (7.6 MB)

游戏下载地址 https://hyrzmygsfb.cmge.com/20250711/hyrzmygs_cmgeV2_online_cmge_9120_250711.apk

文件头有部分是相同的,好像不是常见的XXTEA或者简单异或,看不出是什么加密,望大佬指点

。。。过于简单,几分钟就出来了,另外,没事别用32位的so

import struct

def tea_dec(v, k):
    v0, v1 = v
    k0, k1, k2, k3 = k
    d = 0x9E3779B9
    sv = 0xC6EF3720 
    for _ in range(32):
        v1 = (v1 - (((v0 << 4) + k2) ^ (v0 + sv) ^ ((v0 >> 5) + k3))) & 0xFFFFFFFF
        v0 = (v0 - (((v1 << 4) + k0) ^ (v1 + sv) ^ ((v1 >> 5) + k1))) & 0xFFFFFFFF
        sv = (sv - d) & 0xFFFFFFFF
    return v0, v1

key = list(struct.unpack('>IIII', bytes([0x4B, 0x3C, 0x6F, 0x70, 0x4D, 0x2E, 0x1A, 0x7D, 0x8F, 0x9E, 0x3C, 0x1B, 0x2A, 0x4D, 0x6F, 0x8E])))
with open('04eb7901-25c2-4f55-aafe-82709ed0cf3c.png', 'rb') as f:
    _ = f.read(4) # sign
    enc = f.read()
dec = bytearray()
for i in range(0, len(enc), 8):
    v = tea_dec(struct.unpack('>II', enc[i:i+8]), key)
    dec.extend(struct.pack('>II', v[0], v[1]))
with open('dec.bin', 'wb') as f:
    f.write(dec)


另外你都有so了直接塞进ida里面一会就能找到,就那几个关键函数,上下xref总能找到点东西吧

AppDelegate::applicationDidFinishLaunching
cocos2d::Image::initWithImageData

感谢,:smiley: