so和样本.rar (7.6 MB)
游戏下载地址 https://hyrzmygsfb.cmge.com/20250711/hyrzmygs_cmgeV2_online_cmge_9120_250711.apk
文件头有部分是相同的,好像不是常见的XXTEA或者简单异或,看不出是什么加密,望大佬指点
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
感谢,![]()