无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 1159|回复: 14
打印 上一主题 下一主题

[分享] Resource Tuner 代碼頁文件分析

  [复制链接]
跳转到指定楼层
1#
发表于 2023-11-26 19:56:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hsm570911 于 2023-11-26 21:04 编辑

前题:之前 chishingchan 前辈曾分析过 langpack.dat 语言包文件头的部份

工具:
ZlibUIN.exe:langpack.dat 解压工具
langpack.exe:查看 langpack.dat 的语言结构

Resource Tuner 2.20 语言包的秘密
http://bbs.c3.wuyou.net/forum.php?mod=viewthread&tid=417579

如何编辑:
解压 langpack.dat,保存为 langpack.txt,其编码为 ANSI (內部為 Unicode)。使用 UltraEdit 打开,在文件头加上 FF FE (成为文本文件格式)后保存。
使用 Notepad++ 开启  langpack.txt  后才不会变成乱码或是每字之间都有空格的情况,此时才能正常编辑。

各语言字符串文件的实际长度计算:
1.可将各个语言字符串从 langpack.txt 复制,另存为 Unicode 编码的文件。
2.以英文 English_94684.txt 为例:范围从 Englishaddrf0="Add Resource" 到 splash9="%0:s Website:" 下一行 Dutch 最前面以包含换行 ( 0D 00 0A 00)
点选 English_94684.txt ,右键菜单选择属性,此时文件大小 94700 字节,
实际的 English_94684.txt 文件大小应该是 94700-2-14 = 94684 字节。(addrf0="Add Resource" 到 splash9="%0:s Website:" + 换行 )
不包含文件头的 FF FE,2 字节。
不包含英文语言名称 English (7*2=14) 的长度,14 字节。

不过 chishingchan 前辈只解析前半部的文件头,可以简化掉不需要的语言字符串文件

至于后面的代码页部份好像没有分析,这次分享一下自己分析后的心得,分析的不好的地方请见谅。

  1. 第一段:28 种语言代码
  2. 第一段总长度  8*16=128
  3. -----------------------------------------------
  4. 1C 00 00 00 80 00 00 00 B0 02 00 00 30 03 00 00               
  5. 09 00 00 00 01 00 00 00 03 00 00 00 05 00 00 00               
  6. 06 00 00 00 07 00 00 00 08 00 00 00 0A 00 00 00
  7. 0B 00 00 00 0C 00 00 00 0D 00 00 00 0E 00 00 00
  8. 10 00 00 00 13 00 00 00 14 00 00 00 15 00 00 00
  9. 16 00 00 00 19 00 00 00 1B 00 00 00 1D 00 00 00
  10. 1F 00 00 00 24 00 00 00 2D 00 00 00 04 04 00 00
  11. 11 04 00 00 12 04 00 00 04 08 00 00 16 08 00 00
  12. -----------------------------------------------
  13. 1C 00 00 00 28种语言
  14. 80 00 00 00 第一段总长度  8*16=128
  15. B0 02 00 00 第二段总长度 43*16=688
  16. 30 03 00 00 第一段+第二段总长度 128+688=816

  17. 第二段:172 个代码页引用 (此段是固定的)
  18. 第二段总长度 43*16=688
  19. -----------------------------------------------
  20. 00 00 00 00 36 04 00 00 1C 04 00 00 01 14 00 00               
  21. 01 3C 00 00 01 0C 00 00 01 08 00 00 01 2C 00 00
  22. 01 34 00 00 01 30 00 00 01 10 00 00 01 18 00 00
  23. 01 20 00 00 01 40 00 00 01 04 00 00 01 28 00 00
  24. 01 1C 00 00 01 38 00 00 01 24 00 00 2B 04 00 00
  25. 2C 08 00 00 2C 04 00 00 2D 04 00 00 23 04 00 00
  26. 45 04 00 00 1A 20 00 00 1A 14 00 00 02 04 00 00
  27. 03 04 00 00 04 0C 00 00 04 14 00 00 04 08 00 00
  28. 04 10 00 00 04 04 00 00 1A 04 00 00 1A 10 00 00
  29. 05 04 00 00 06 04 00 00 65 04 00 00 13 08 00 00
  30. 13 04 00 00 09 0C 00 00 09 28 00 00 09 10 00 00
  31. 09 24 00 00 09 18 00 00 09 20 00 00 09 14 00 00
  32. 09 34 00 00 09 1C 00 00 09 2C 00 00 09 08 00 00
  33. 09 04 00 00 09 30 00 00 25 04 00 00 38 04 00 00
  34. 29 04 00 00 64 04 00 00 0B 04 00 00 0C 08 00 00
  35. 0C 0C 00 00 0C 04 00 00 0C 14 00 00 0C 18 00 00
  36. 0C 10 00 00 62 04 00 00 2F 04 00 00 56 04 00 00
  37. 37 04 00 00 07 0C 00 00 07 04 00 00 07 14 00 00
  38. 07 10 00 00 07 08 00 00 08 04 00 00 47 04 00 00
  39. 0D 04 00 00 39 04 00 00 0E 04 00 00 0F 04 00 00
  40. 21 04 00 00 5D 08 00 00 3C 08 00 00 10 04 00 00
  41. 10 08 00 00 11 04 00 00 4B 04 00 00 3F 04 00 00
  42. 57 04 00 00 12 04 00 00 40 04 00 00 26 04 00 00
  43. 27 04 00 00 6E 04 00 00 3E 08 00 00 3E 04 00 00
  44. 4C 04 00 00 3A 04 00 00 81 04 00 00 7A 04 00 00
  45. 4E 04 00 00 7C 04 00 00 50 04 00 00 61 04 00 00
  46. 6C 04 00 00 14 04 00 00 14 08 00 00 63 04 00 00
  47. 15 04 00 00 16 04 00 00 16 08 00 00 46 04 00 00
  48. 6B 04 00 00 6B 08 00 00 6B 0C 00 00 18 04 00 00
  49. 17 04 00 00 19 04 00 00 3B 24 00 00 3B 10 00 00
  50. 3B 14 00 00 3B 0C 00 00 3B 04 00 00 3B 08 00 00
  51. 3B 20 00 00 3B 18 00 00 3B 1C 00 00 4F 04 00 00
  52. 1A 0C 00 00 1A 1C 00 00 1A 08 00 00 1A 18 00 00
  53. 1B 04 00 00 24 04 00 00 0A 2C 00 00 0A 40 00 00
  54. 0A 34 00 00 0A 24 00 00 0A 14 00 00 0A 1C 00 00
  55. 0A 30 00 00 0A 44 00 00 0A 10 00 00 0A 48 00 00
  56. 0A 0C 00 00 0A 08 00 00 0A 4C 00 00 0A 18 00 00
  57. 0A 3C 00 00 0A 28 00 00 0A 50 00 00 0A 04 00 00
  58. 0A 38 00 00 0A 20 00 00 41 04 00 00 1D 04 00 00
  59. 1D 08 00 00 5A 04 00 00 49 04 00 00 44 04 00 00
  60. 4A 04 00 00 1E 04 00 00 32 04 00 00 1F 04 00 00
  61. 22 04 00 00 20 04 00 00 43 08 00 00 43 04 00 00
  62. 2A 04 00 00 52 04 00 00 34 04 00 00 35 04 00 00
  63. -----------------------------------------------        
  64.                                  
  65. 第三段:28国语言代码页文件
  66. 第三段总长度 14*16=224
  67. -----------------------------------------------                                          
  68. 10 04 00 00 F6 16 00 00 06 1B 00 00 6E 12 00 00         
  69. 74 2D 00 00 D6 0F 00 00 4A 3D 00 00 46 14 00 00   
  70. 90 51 00 00 BA 10 00 00 4A 62 00 00 36 13 00 00   
  71. 80 75 00 00 CA 12 00 00 4A 88 00 00 80 10 00 00   
  72. CA 98 00 00 BE 10 00 00 88 A9 00 00 2E 11 00 00   
  73. B6 BA 00 00 36 10 00 00 EC CA 00 00 34 10 00 00   
  74. 20 DB 00 00 9E 11 00 00 BE EC 00 00 52 11 00 00   
  75. 10 FE 00 00 04 11 00 00 14 0F 01 00 8A 12 00 00   
  76. 9E 21 01 00 6E 10 00 00 0C 32 01 00 36 13 00 00   
  77. 42 45 01 00 B0 13 00 00 F2 58 01 00 40 12 00 00   
  78. 32 6B 01 00 8E 11 00 00 C0 7C 01 00 82 13 00 00   
  79. 42 90 01 00 A2 12 00 00 E4 A2 01 00 46 0A 00 00   
  80. 2A AD 01 00 BE 0C 00 00 E8 B9 01 00 9A 0A 00 00   
  81. 82 C4 01 00 F6 09 00 00 78 CE 01 00 AE 10 00 00   
  82. -----------------------------------------------
复制代码
  128+688+224=1040(10 04 00 00)                     English 5878(F6 16 00 00)
        1040+5878=6918(06 1B 00 00)                      Arabic 4718(6E 12 00 00)
     6918+4718=11636(74 2D 00 00)                     Catalan 4054(D6 0F 00 00)
   11636+4054=15690(4A 3D 00 00)                       Czech 5190(46 14 00 00)
   15690+5190=20880(90 51 00 00)                       Swahili 4282(BA 10 00 00)
   20880+4282=25162(4A 62 00 00)                     German 4918(36 13 00 00)
   25162+4918=30080(80 75 00 00)                        Greek 4810(CA 12 00 00)
   30080+4810=34890(4A 88 00 00)                     Spanish 4224(80 10 00 00)
   34890+4224=39114(CA 98 00 00)                       Finnish 4286(BE 10 00 00)
   39114+4286=43400(88 A9 00 00)                       French 4398(2E 11 00 00)         
   43400+4398=47798(B6 BA 00 00)                      Hebrew 4150(36 10 00 00)
   47798+4150=51948(EC CA 00 00)                  Hungarian 4148(34 10 00 00)
   51948+4148=56096(20 DB 00 00)                         Italian 4510(9E 11 00 00)
   56096+4510=60606(BE EC 00 00)                         Dutch 4434(52 11 00 00)
   60606+4434=65040(10 FE 00 00)                   Norwegian 4356(04 11 00 00)
   65040+4356=69396(14 0F 01 00)                          Polish 4746(8A 12 00 00)
   69396+4746=74142(9E 21 01 00)                 Portuguese 4206(6E 10 00 00)
   74142+4206=78348(0C 32 01 00)                      Serbian 4918(36 13 00 00)
   78348+4918=83266(42 45 01 00)                        Slovak 5040(B0 13 00 00)
   83266+5040=88306(F2 58 01 00)                      Swedish 4672(40 12 00 00)
   88306+4672=92978(32 6B 01 00)                        Turkish 4494(8E 11 00 00)
   92978+4494=97472(C0 7C 01 00)                   Slovenian 4994(82 13 00 00)
  97472+4994=102466(42 90 01 00)                      Basque 4770(A2 12 00 00)
102466+4770=107236(E4 A2 01 00)        Chinese (Taiwan) 2630(46 0A 00 00)
107236+2630=109866(2A AD 01 00)                   Japanese 3262(BE 0C 00 00)
109866+3262=113128(E8 B9 01 00)                       Korean 2714(9A 0A 00 00)
113128+2714=115842(82 C4 01 00)            Chinese (PRC) 2550(F6 09 00 00)
115842+2550=118392(78 CE 01 00)                Portuguese 4270(AE 10 00 00)

左侧是偏移地址,右侧是文件内容的长度。可以把简,繁文件内未翻译的部份补全,再按照文件的长度修改偏移地址和长度即可。
注:这28个文本文件的文件头包含 FF FE,文件尾包含换行 0D 00 0A 00。

依照此分析可以简化语言代码页文件。删除多余的。

点评

辛苦了  发表于 2024-4-17 20:56

评分

参与人数 2无忧币 +7 收起 理由
yyz2191958 + 2 赞一个!
chishingchan + 5 我后面的没研究!也没看懂!谢谢分析!

查看全部评分

2#
发表于 2023-11-26 20:08:04 | 只看该作者
谢谢分享
回复

使用道具 举报

3#
发表于 2023-11-26 20:12:41 | 只看该作者
谢谢分享
回复

使用道具 举报

4#
发表于 2023-11-26 20:31:34 | 只看该作者
感谢大佬分享
回复

使用道具 举报

5#
发表于 2023-11-26 21:12:55 | 只看该作者
谢谢楼主,技术啊
回复

使用道具 举报

6#
发表于 2023-11-26 21:51:24 | 只看该作者
我也只阴差阳错的弄好了一个英中语言包。后面随意改再整合就出错了!后面忙其他的把这给搁下了。
回复

使用道具 举报

7#
发表于 2023-11-26 23:33:13 | 只看该作者
学习一下
回复

使用道具 举报

8#
发表于 2023-11-27 09:51:46 | 只看该作者
谢谢分享
回复

使用道具 举报

9#
发表于 2023-11-27 11:12:53 | 只看该作者
谢谢分享
回复

使用道具 举报

10#
发表于 2023-11-27 11:39:25 | 只看该作者

谢谢分享
回复

使用道具 举报

11#
发表于 2024-2-7 13:19:22 | 只看该作者
谢谢分享
回复

使用道具 举报

12#
发表于 2024-2-7 13:36:55 | 只看该作者
牛逼
有没有现成的分享
回复

使用道具 举报

13#
发表于 2024-4-16 04:31:43 来自手机 | 只看该作者
谢谢分享
回复

使用道具 举报

14#
发表于 2024-4-17 18:29:28 | 只看该作者
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-11 06:55

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表