so文件汉化心得【整理】

这篇是我对 @布加迪20 在安智写的一篇<汉化so文件的心得>中的技术附件做的简洁性整理,原来的看起来不是很方便。一起分享学习..
正文

SO文件汉化心得

--By布加迪20   2014/08

我自己也是新手,研究了好久,网上也找不到相关教程,所以决定写一个比较详细的教程,教程是关于汉化so文件时出现的字符串长度不够的问题,后面还有做字库的简单教程,相关文件都在文章结尾处,如果出现排版问题,建议在手机上用WPS看,选适应手机就好了。

汉化so修改偏移

IDA在电脑上用,HE是安卓上的十六进制编辑器HexEditor。以“浮游生物2:孢子的世界”(版本1.0.1.1)为例。手机上用HE打开libcocos2dcpp.so,找到“MostDepth:"如图:

(libcocos2scope.so可以用Xplore管理器导出,长按安装包,选以zip方式打开,在lib里)记下M的位置为004eea07。

“START”和“Most Depth:”对应游戏中位置,如下图:

可以看到,“Most Depth:"前面的“START"要汉化成“开始”位置不够(一个汉字抵三个字母,每个词前后都要有00隔开),而后面的“Most Depth:"可以改成“MostDepth:"也可以汉化为“最深处:”,也就可以在“START"后面移出一个空格,正好可以汉化为“开始”,如图:

记下这时M的位置为004eea08。但是这时侯“START”偏移没变,“MostDepth:"的偏移变了,游戏里是显示不出的:

以上在手机上完成,电脑上可以用其它十六进制编辑器,推荐UE32。

这时候就需要用到IDA,用IDA打开电脑上的so文件,在“查找”里选“文本”,输入“Most Depth:"(我电脑里的还是原文件),找到这里

记下198112 。然后打开一个十六进制计算器,用之前“Most Depth:"里M的位置减去198112,即“4eea07-198112”,得到3568f5,这时候要用HE在so文件里搜索f56835(要反过来),找到了。

我们要改的就是这个,之后用改过的“MostDepth:"里M的位置减198112,即“4eea08-198112",得3568f6,之后要做的就是把“f56835"改成“f66835",如图:

接下来保存文件,打开游戏测试吧

可以看到,“MostDepth:"已经显示出来了。

做字体库汉化

当然,要汉化这个游戏还需要做字库,以下附简单教程。字库我是用hiero做的。游戏里的字库都在assests/fonts里:

 

有7种字,每种都要做一个,打开hiero,以segoe_ui-16_0.png和segoe_ui-16.fnt为例:

选微软雅黑(我觉得和游戏字体挺像),在右边的“Sample Text"里输入“开始”,并选定字号为16,选“Glyph cache",把宽高都设为2048(方便以后字多了可以一张图解决)。

软件有点问题,所以Rendering里没有显示字体,不过不管它,点File→Save BMF on files (text)...,文件名就写“segoe_ui-16_0.fnt",点保存就会生成两个文件“segoe_ui-16_0.fnt”和“segoe_ui-16_0.png",注意之后把“segoe_ui-16_0.fnt”改成“segoe_ui-16.fnt”。

其他字体以相同的方式生成,然后替换assests/fonts里的字体(教程里的只增加了“开始”两个字)。然后用HE打开so文件,我们刚刚在“START"后面增加了一个空格,可以改成“开始”了,用HE搜索到“START ”,并查到“开始”的十六进制为“e5 bc 80 e5 a7 8b”,替换掉原来的。

打开游戏看看效果:

可以看到汉化成功了“开始”。

借助“空位”汉化so

这是我自己的汉化心得,拿出来分享一下,这个教程只是简单介绍一下增加字符串长度的一种方法,适用于前后有多余的空位(通常是汉化其它语句留下来的),不过要是前后都没有空位,就要用另一种方法

这种方法其实也是修改偏移,看这里的字符串:

一大堆挤在一起,汉化成中文位置根本不够,但是我们可以看到so文件里有很多空白的地方,比如这里:

看这里有这么大一片空白,足够我们改了!随便从哪里开始,比如我想把“Game Over”改成“游戏结束”,

就在把任意位置的空字符串替换成“e6b8b8 e6888f e7bb93 e69d9f”

(别忘了在字库里添加新的字,不然会出现两种情况:1.显示不出字;2.进游戏直接卡死。)

接着按照上面的方法把“Game Over”的偏移修改到“游戏结束”的位置,就可以了。

注意

1、不是哪里的空白位置都可以改,这个叫空白数据段,通常像这种前后都有字符串而中间空出来的一般就是了。(好像有寻找exe或dll数据段位置的工具,但是so的好像没有,所以不清楚是不是空白数据段时,可以自己修改试试)

2、每一次修改一定记得备份,改这种十六进制的东西特别容易出错,如果没备份的话,后果很严重。。。。。。

有关下载

下面是一些相关工具的链接,很多版本都低了,不过也没什么影响

浮游生物:孢子的世界

http://pan.baidu.com/share/link?shareid=3428872989&uk=3324813120

Hex editor

http://pan.baidu.com/share/link?shareid=3434074993&uk=3324813120

IDA

http://pan.baidu.com/share/link?shareid=3454802130&uk=3324813120

Hiero

http://pan.baidu.com/share/link?shareid=3495231926&uk=3324813120

Hiero(已有java环境的直接用)

http://pan.baidu.com/share/link?shareid=3510464528&uk=3324813120

Xplore文件管理器

http://pan.baidu.com/share/link?shareid=3543020754&uk=3324813120

原文完。谢谢所有技术的无私分享,交流才有有进步...
时间: 2024-11-05 11:57:23

so文件汉化心得【整理】的相关文章

Xml文件汉化准备

如何提取xml文件中的字符串,是汉化的前提. Passolo中的解析器不能正确解析文件,此时可以采用Text Parser进行解析. 通过自定义规则,可以相对完整的把字符串提取出来. 一张图片就能说明很多问题: 注意最后三行,使用了正则表达式. 本人对于正则表达式并不熟悉,所以利用在线测试工具进行测试: http://tool.oschina.net/regex 源文件 汉化文件 原文地址:https://www.cnblogs.com/myzw/p/8448466.html

Xml文件汉化后改变代码页

源Xml文件代码页为ansi,汉化后要转换为UTF-8,在网上搜素了以下结果,但解释的不都清楚,我找了好一阵才找到相应的操作. 为防止自己以后忘了,补充如下: 经过这样的设置,生成的汉化xml文件代码页就成了UTF-8了,从而能保证中文字符被正确识别. 原文地址:https://www.cnblogs.com/myzw/p/8448474.html

so文件成品评论【整理】

这是我的 @布加迪20 AZ在一篇文章中写道:<汉化so文件的心得>中的技术附件做的简洁性整理.原来的看起来不是非常方便.一起分享学习.. 正文 SO文件汉化心得 --By布加迪20   2014/08 我自己也是新手.研究了好久.网上也找不到相关教程.所以决定写一个比較具体的教程.教程是关于汉化so文件时出现的字符串长度不够的问题,后面还有做字库的简单教程.相关文件都在文章结尾处,假设出现排版问题.建议在手机上用WPS看,选适应手机就好了. 汉化so改动偏移 IDA在电脑上用.HE是安卓上的

2016.3.1(转载)如何汉化Eclipse

如何汉化eclipse 原帖地址:http://titanseason.iteye.com/blog/1449201 要汉化eclipse,通常有3种办法,由于在线安装的方法操作起来比较麻烦而且慢,我们就只介绍两种最简单的方法.汉化所有版本的eclipse方法都类似.这两种方法都需要先下载好汉化包,然后再进行其他操作. 如果大家不想在线看如何汉化,或者感觉Iteye的博客编辑的是在是难看,附件里面有word格式的汉化说明,可以下载以后看 下载汉化包 <1> 登陆https://babel.ec

[原创汉化]linux前端神器 WebStorm8 汉化

只汉化了linux版本 因为linux的工具没win多 不过汉化应该都通用的,自行尝试下. 汉化的不是很完全.有时间放出完全版本来.汉化是个体力活 转载随易,汉化不易,且转且注明 截图: http://www.jetbrains.com/webstorm/ 下载官方版本 提供一组序列号用户名:EMBRACE注册码:===== LICENSE BEGIN =====24718-1204201000001h6wzKLpfo3gmjJ8xoTPw5mQvYYA8vwka9tH!vibaUKS4FIDI

LoadRunner安装+汉化+破解

因为工作需要要用到LoadRunner,找个好几个版本,换了两台电脑(公司的win7折腾了好久装不上去),耗时两天终于搞定了,分享给需要的小伙伴们,避免大家踩更多的坑~ 一.安装前的准备 Win10电脑(我用的win10) LoadRunner11+破解文件+汉化文件+删除注册表工具,大约4.1G,可以到我的百度云盘下载,下载地址: 二.安装过程 1.以解压包的方式打开[性能测试工具LR11.00].loadrunner-11.iso文件,运行“setup.ext”(花费时间较长) 2.点击安装

LoadRunner11的安装流程+破解+汉化+下载

LoadRunner11的安装流程+破解+汉化+下载 一.安装前的准备: http://yunpan.cn/cyFpcSIfywDYw  访问密码 9218  可以云盘中下载所有的安装包(b)(包括LoadRunner11+破解文件+汉化文件+删除注册表工具,大约4.1G) 二.安装过程 1:以解压包的方式打开loadrunner-11.iso文件,运行"setup.exe"(花费时间较长) 安装过程可能会缺少文件C++0.5的文件,可以在文件中找到该文件:请注意 2:点击安装,跳出窗

pfSense用户界面汉化翻译教程

pfSense用户界面汉化翻译教程 来源 https://blog.51cto.com/fxn2025/2087182 为了记录自己的汉化过程,同时也为了方便网友自己制作汉化版本,我把自己汉化pfSense2.32的过程在此分享. 一.汉化的方法和步骤 1.取得语言文件 首先要开启系统的shell端口,用浏览器登陆PFSENSE管理界面,在System→Advanced→Admin Access →  Secure Shell Server 勾上(Enable Secure Shell)这个选项

Defraggler2.15.742汉化单文件(磁盘碎片整理)

Defraggler2.15.742汉化单文件(磁盘碎片整理工具)由Black Hawk 汉化软件语言,绿色单文件版,去掉菜单在线帮助,软件下方在线帮助.检查更新.Defraggler中文版是一个轻量级的整理工具,但它可以快速高效的整理某个磁盘.文件夹甚至一个文件.也可以对硬盘进行查错,Defraggler对系统资源占用极小.无需添加系统服务,用起来也实在是太简单. 百度下载:http://pan.baidu.com/s/1o6wS8Bo 百度指导:http://dwz.cn/spjIn