X‘moe Project » 日志
SiglusEngine脚本解析手记
2014-2-25 13:01 /
Scene.pck就是对应的脚本封包文件,
加密和压缩延续了VA 一如既往的中二风格。
Scene.pck的封包的解析Azure前辈解析得够详细了,我不赘述。
但是唯一强调的是,Scene.pck的xorTable[256]一直在变,我知道的已经变了三次了。
压缩算法倒是一直没变。
接下来就是拆包后,单独的脚本文件了。
结构大致如下(只解析了关键部分):
总共的长度为0x84,
0x84之后就是StringTable表,每个String对应一个Pair(Offset,Count),
其中的长度就是StringTableCount对应的值。
解出来的字符串是加密了的,算法是xor,每个游戏有不同的key,
并且实际上解密用的key是和某个int值和真正的key相乘得到的,每个wchar_t为一个解密单位。
接下来就是去玩玩语音(koe)资源,其他的估计是玩不出来了(能力有限)。
VM的加密方式未知,如果以后要移植SiglusEngine相关的游戏,还是只能苦力。
等解出新的东西再挂上来吧233
该死的周一,不仅一下午都是高数课,而且晚上三节离散连堂,不玩爪机如何活?
加密和压缩延续了VA 一如既往的中二风格。
Scene.pck的封包的解析Azure前辈解析得够详细了,我不赘述。
但是唯一强调的是,Scene.pck的xorTable[256]一直在变,我知道的已经变了三次了。
压缩算法倒是一直没变。
接下来就是拆包后,单独的脚本文件了。
结构大致如下(只解析了关键部分):
typedef struct ScriptHdr{
DWORD ScriptHdrLen;
DWORD OperationOffset;
DWORD OperationCount;
DWORD StringTableOffset;
DWORD StringTableCount;
DWORD OriginalStringOffset;
DWORD OriginalStringCount;
DWORD Var1PairOffset;
DWORD Var1PairCount;
DWORD Var2PairOffset;
DWORD Var2PairCount;
DWORD VarArray[17];
DWORD Var3PairOffset;
DWORD Var3PairCount;
DWORD Var4PairOffset;
DWORD Var4PairCount;
};
总共的长度为0x84,
0x84之后就是StringTable表,每个String对应一个Pair(Offset,Count),
其中的长度就是StringTableCount对应的值。
解出来的字符串是加密了的,算法是xor,每个游戏有不同的key,
并且实际上解密用的key是和某个int值和真正的key相乘得到的,每个wchar_t为一个解密单位。
接下来就是去玩玩语音(koe)资源,其他的估计是玩不出来了(能力有限)。
VM的加密方式未知,如果以后要移植SiglusEngine相关的游戏,还是只能苦力。
等解出新的东西再挂上来吧233
该死的周一,不仅一下午都是高数课,而且晚上三节离散连堂,不玩爪机如何活?
#1 - 2014-2-25 13:06
星羽の夢
#1-1 - 2014-2-25 13:14
X‘moe Project
大小姐酱~~ 我只想砍死那个排课表的
#1-2 - 2014-2-27 23:01
星羽の夢
去吧不拦你(笑