Smartphone 程序汉化——文件数字签名问题的解决方法

| 分类 文档  | 标签 WM  汉化 

    完美的本地化系统里面看到不谐调 E 文,真不完美的感觉……

    动手吧,汉化……

    Smartphone 系统的运行的程序都必须经过数字签名,以确保文件不被篡改。任何对文件的丝毫改动都将导致程序无法运行。因此,汉化修改后回写数字签名成了必须解决的问题。

    要命的是,大部分的汉化工具在回写资源后,用M$的文件签名向导回写签名时,经常提示“文件签名失败”错误。经过一段时间的摸索,发现资源回写后,通常都会使文件大小减小,原本在文件末尾的签名信息不再可用(不管是否签名有效)。经过多次试验,发现只要从原始文件末尾截取部分数据,填充到汉化后的文件尾部,使其大小完全和原始文件一致,就可使用 SignCode 工具成功回写签名!(不保证一定成功,但我还没失败过:)

    为此我写了一个简单的小工具,SignFix,哈哈……问题搞定了……

    简单说说汉化的步骤:

  • 先到网上找到要汉化的软件的最新版本。

  • 在网上搜索最完美的汉化版本,如果已经是最新版且汉化得很完美,感谢这位仁兄,转跳到最后一步吧……

  • 汉化非标准资源,你可以用什么 CAXAT 什么的,具体名字忘了,总之我觉得非常难用,所自己写了一个 TransText,不过没有字符串提取功能,也懒得写说明,所以暂时放出来。如果你会 Crack,也放在这一步吧。

  • 找个本地化工具(强烈推荐 Passollo,Multilizer 也可以,不要用什么垃圾 Visual Localize,更不要用 exeScope 和 ResHacker 等小打小闹的辅助性的工具)。

  • 建立汉化工程,SP 上目标语言选择,简体中文,CodePage936,字体 宋体 9 号(而不是Windows 2K/XP 上的 Tahoma 8 号,否则巨难看)

  • 如果有历史工程,或者网上有现存的旧版本的汉化,则导入现有的成果——别说抄袭哈,这点东西有什么好保留的,不要这么小气嘛——用了你的成果的人越多,应该源有成就感……不过如果知道名字的话,在发布的时候不妨说明并感谢一下:)

  • 动手翻译,保证咬词正确,合理。

  • 更改部分对话框及其控件,因为有些地方文字放不下等等,E 文软件到中文系统下大多数都有这个问题……

  • 汉化结束后,回写资源。

  • 用 SignFix 修正签名。修正后,此时在资源管理器->文件属性上应该能看到原始的签名,但是此时已经失效了)。这就需要重写入签名——没什么不好的,趁机写入自己的签名。

  • 如果你有权威证书颁发机构的数字证书,那最好不过了,程序运行的时候连个警告都不会出现。如果没有,到 www.ca365.com 上去申请一个免费的吧(此时可能把IE ActiveX 安全级别调低)。先安装根证书,在申请你的证书,注意选择用途:代码签名。下载然后下载并安装你的证书(默认到“个人”证书中)。

  • 用附件中 M$ 的 SignCode.exe 文件签名向导,回写签名。这个工具是从 Visual Studio .NET 2003 简体中文版中提取的,很奇怪的是这个冬冬竟然是 Windows Console 的,尽管它有 GUI 界面。我把它的 PE 头部修改了一下,变成 Windows GUI 的了,省得出现黑黑的 DOS 窗口。

  • 小技巧:把文件拖动到 SignFix 即可,SignCode 也是,免得一步一步操作,挺麻烦的。

  • 搞定后,在 SP 上跑,会有个签名的警告,不过第二次就不会了(把你自己的证书安装在SP上应该就能信任而不会警告了,可是我不知道怎么安装,晕!)。

  • 没其它的了吧?……哦,要发布的话,记得搞得完美一点,SP 软件,最好是搞成“绿色”的。

    现在还没有一个权威一点的 SP 汉化发布平台,建议 Hanzify 来一个。(各个小论坛和其它网站上的 SP 汉化,质量良莠不齐呀……)

下载: SignFix & SignCode (包括SignFix的代码,要的话可以自己修改一下方便店)


上一篇     下一篇