日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

so文件成品评论【整理】

發布時間:2024/4/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 so文件成品评论【整理】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這是我的 @布加迪20 AZ在一篇文章中寫道:<漢化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、每一次改動一定記得備份。改這樣的十六進制的東西特別easy出錯,假設沒備份的話。后果非常嚴重。。。。。。


有關下載

以下是一些相關工具的鏈接,非常多版本號都低了。只是也沒什么影響

浮游生物:孢子的世界

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


原文完。謝謝全部技術的無私分享,交流才有有進步...


版權聲明:本文博主原創文章,博客,未經同意不得轉載。

轉載于:https://www.cnblogs.com/gcczhongduan/p/4852704.html

總結

以上是生活随笔為你收集整理的so文件成品评论【整理】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。