Sagas of Exoworld相关

邮件里看到的。。。

甚至还没改分类还在待发布的游戏
又是国内制作给国外的AI游戏。。。
草草看了眼应该是cocos引擎使用的lua脚本
但是逆向libTerransForce.so
甚至没发现AppDelegate
libvlcjni.so应该是视频播放的
由于游戏只有安卓版本我没有安卓手机模拟器hook会崩溃 :clown_face:
望大佬能hook文件读取逆向出解密代码
附上游戏链接与资源文件链接
wb

游戏链接

资源文件链接 2025/12/06

http://c1.yes-n.com/android/zipsource/1.1.42/test.zip

资源包url生成规则
获取http://c1.yes-n.com/android/check.xml
使用current指定的版本如1.1.42
包名使用defaultzip指定的名字例如test - > test.zip
合成http://c1.yes-n.com/android/zipsource/版本号/资源包文件名.zip

mp4是异或C,然后删除前4个字节

import struct
import zlib
import sys
import lz4.block


def decrypt(p):
    with open(p, "rb") as f:
        enc = bytearray(f.read())
    if enc[0] != 0xF8 or enc[1] != 0x8B:
        return
    s = enc[2]
    if s == 0x2D:
        # gzip +xor
        lp = len(enc) - 3
        ll = 20 if lp >= 20 else lp
        enc[1] = 0x1F
        enc[2] = 0x8B
        cs = ll
        for i in range(3, 3 + ll):
            o = enc[i]
            k = cs % 45
            enc[i] = o ^ k
            cs = k + o
        return  zlib.decompress(enc[1:], zlib.MAX_WBITS | 16)
    elif s == 0x2B:
        return lz4.block.decompress(
            bytes(enc[7:]), uncompressed_size=struct.unpack("<I", enc[3:7])[0]
        )
    else:
        return None


if __name__ == "__main__":
    with open("dec", "wb") as f:
        f.write(decrypt(sys.argv[1]))

很像某个约会大作战游戏呢,体力的图标都一模一样

有一些图片头部是4D 4E 47
可以看下sub_323C5C和sub_32394C,前者是判断图片头部确定格式,后者是initWithImageData


还比较恶心
所有png文件解出来是MNG实际上是alpha分离的一张图+alpha图合并在一起的文件
提取出来是pvr格式或者.webp(大部分)还需要使用TexturePacker转png再合并alpha

求助下 这种文件名 要如何还原回去呢。 能看看这个帖子吗 用这个能解出来 但是文件名能还原一下吗