Sje.jhh

来自俄罗斯方块中文维基
该页面原文来自 Hard Drop Wiki,原页面链接:Sje.jhh

Sje.jhhTOJ 使用的资源包文件名。
部分流传于社区的 TOJ 客户端自带 Sje.jhh 的解包/打包工具。

文件格式

  • 索引区偏移量 - 4 字节
  • 索引区总长度 - 4 字节
  • [被加密的数据区]
  • [被加密的索引区]

索引区格式

  • 实体数量 - 4 字节
  • 路径字符串长度 - 4 字节
  • 字符串 - 路径
  • [条目]

条目区格式

  • 条目文件名长度 - 4 字节
  • 字符串 - 文件名
  • 条目数据偏移量 - 4 字节
  • 条目数总长度 - 4字节

索引区加密

索引区使用 Rc4 stream cipher 加密手段。

可通过 advapi32 Cript 加密或解密,设置如下:

password = "1111";
CryptAcquireContext(&hCryptProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, 0);
CryptCreateHash(hCryptProv, CALG_MD5, 0, 0, &hHash);
CryptHashData(hHash, (BYTE *) password, strlen(password), 0);
CryptDeriveKey(hCryptProv, CALG_RC4, hHash, 4, &hKey);

第一串密钥流如下:

BA 38 72 06 03 1D 16 65
77 D3 28 EE 9D 12 40 44
8A DB B7 00 1B 3D C5 93
81 16 E2 21 62 8D 34 8A
70 28 30 A3 41 C5 F9 25
B0 AA 84 2A 34 3F BC 45
2F 8E 7B 7F D3 9D 75 DB
3D 33 3E 71 2F DD ...

内容加密

Sje.jhh 的文本内容也被加密,使用的方法与索引相同,均为 Rc4 stream cipher。
内容区的加密密码为 "TOJ",而不是"1111"。
2010年6月14日,加密密码被改为"dkaghdkagh。
2010年6月15日,加密密码再次修改,如下:

93 FA 96 7B 8C EA 01 20 82 CC 31 0D 0A 01