so文件成品评论【整理】

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

SO文件汉化心得

--By布加迪20   2014/08

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

汉化so改动偏移

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemloYW8yMDEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

(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里:

 

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemloYW8yMDEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

有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”。替换掉原来的。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemloYW8yMDEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

打开游戏看看效果:

能够看到汉化成功了“開始”。

借助“空位”汉化so

这是我自己的汉化心得。拿出来分享一下,这个教程仅仅是简介一下添加字符串长度的一种方法。适用于前后有多余的空位(一般是汉化其他语句留下来的),只是要是前后都没有空位,就要用还有一种方法

这样的方法事实上也是改动偏移,看这里的字符串:

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

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

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

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

)

接着依照上面的方法把“Game Over”的偏移改动到“游戏结束”的位置,就能够了。

注意

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

2、每一次改动一定记得备份。改这样的十六进制的东西特别easy出错,假设没备份的话。后果非常严重。。。。。。

有关下载

以下是一些相关工具的链接,非常多版本号都低了。只是也没什么影响

浮游生物:孢子的世界

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

Hex editor

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

IDA

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

Hiero

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

shareid=3495231926&uk=3324813120">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-12-10 09:51:57

so文件成品评论【整理】的相关文章

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

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

浅析RAC下SPFILE文件修改之整理三篇文章

关于RAC下spfile浅析_整理于_2014.4.17 第一篇:RAC下SPFILE文件修改 在RAC下spfile位置的修改与单节点环境不完全一致,有些地方需要特别注意,否则可能修改会失败. 下面用一个例子说明:SPFILE放在ASM中一个不正确的目录(+ARCH)中,现在想把它放在另外一个目录(+DBSYS)下. 以下是具体步骤: 1. 原spfile位置 SQL> show parameter spfile NAME TYPE VALUE ------------------------

springMVC 获取本地项目路径 以及上传文件的方法整理

String path=request.getSession().getServletContext().getRealPath("upload/img/product"); //二进制上传 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; //获取文件 CommonsMultipartFile fpic=(CommonsMultipartFile) multipa

day 10 字符编码和文件处理 细节整理

pycharm是文本编辑器. 1 .字符编码: 字符====== (翻译过程)=======>数字. utf-8是unicode的变种,是万国编码.  2. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的,断电后数据丢失 因而需要保存到硬盘上,点击保存按钮,就从内存中把数据刷到了硬盘上. 在这一点上,我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字

文件流重新整理-20151113

问题1 File和FileInfo的关系 System.IO包含另一个类File,它的功能与FileInfo一样,不过不同的是,File类成员为静态.所以,使用File代替FileInfo就不必实例化一个新FileInfo对象.那么为什么有时还使用FileInfo呢?因为每次通过File类调用某个方法时,都要占用一定的cpu处理时间来进行安全检查,即使使用不同的File类的方法重复访问同一个文件时也是如此.而,FileInfo类只在创建FileInfo对象时执行一次安全检查. //两行代码意义是

EBS预置文件作用收集整理

http://blog.csdn.net/rfb0204421/article/details/7589514 在EBS之中,有很多的配置选项(profile),系统管理员只需要对它们做一些简单的配置,就可以达到控制流程开关.安全访问.个人喜好等等方面的要求. 以HR: Security Profile为例,该profile是控制在HR系统之中,登录人所能够看到的organization.position.payroll等等信息. 使用System Administrator这个职责登陆系统之后

评论整理——第一期:中国彩虹5无人机首飞成功,中国网友热评

中国彩虹5无人机首飞成功,中国网友热评 原标题:中国量产型彩虹5大型无人机首飞 远远领先俄罗斯 据全球无人机网7月15日报道,下翼展21米.一身灰色的量产型彩虹五无人机在河北某机场跑道上滑行起飞,成功完成首次试飞.这标志着自2016年珠海航展上首次亮相后,我国自主研发的中高端大型"察打一体"无人机彩虹五正式进入批量生产阶段,为后续产品交付和合同签订奠定了良好的基础. 看到这则报道与俄罗斯无人机对比,有网友指责不厚道: macise[湖北省武汉市网友] 怎么不说远超美国呢?俄罗斯这方面有

jQuery整理笔记文件夹

jQuery整理笔记文件夹 jQuery整理笔记一----jQuery開始 jQuery整理笔记二----jQuery选择器整理 jQuery整理笔记三----jQuery过滤函数 jQuery整理笔记四----jQuery操作DOM jQuery整理笔记五----jQuery事件 jQuery整理笔记六----jQuery动画 jQuery整理笔记七----几个经典表单应用 jQuery整理笔记八----jQuery的Ajax jQuery整理笔记九----功能性表格开发

怎样将图片整理转换成一个pdf文件

有时候为了方便查看管理扫描形成的图片,会将这些图片放到一起,合成一个文档,将图片放到pdf中对图片的质量都不会有任何影响,所以一般都是将图片转为PDF格式文件,那么图片如何转PDF呢? 在将图片转成PDF文档之前需要整理图片,将需要的图片都放到一个文件夹中,如果图片是无序的,那么就安照顺序给图片命名标记一下. 将图片转PDF,比较常见的有两种方法,一种是通过工具直接进行转换,另一种则是通过word先编辑好,再转为PDF文件. 用工具转换需要安装对应的转换工具,之后打开,选择图片转PDf.选择转换