DIY之替换字符教程( 二 )


1 ) 。在 BIN 中查找 Chinese Dance 的 16 进制代码,这时我们就需要 UT8 点睛文本编码了 。在 UT8 字符转换器中输入 Chinese Dance (注意大小写不要搞错了,空格也不能漏掉哦!)下面就会显示它的 UT8 码:
把 UT8 字符转换器中 UTF — 8 里的内容复制出来,
2 ) 。在 Hex Workshop 的 BIN 文件里找这段代码:

3 ) 。在然后 Hex Workshop 会找到 4368696E6573652044616E6365 这段代码所在的地址,一共有 3 个,经验证 E318 只要改找到的第二个地址的 UTF8 码就行了,其它型号的手机你可以自己验证,不怕麻烦都改也行 。以下图是第二段的地址,
看到软件右边的一栏的内容了吗?那就是内置铃声的所有名字哦!!!你想要改所有歌名都在这里哦!!哈哈 。
4 ) 。继续使用 UT8 字符转换器,在里面输入“分飞”,
5 ) 。然后返回 Hex Workshop 找到的那个第二个地址 。然后把那段代码改成“分飞”的 UTF8 码就可以了 。后面不足的部分以 0000 代替(注意:这个 0000 代替必须输入的,这个 0000 是起到文件字节分割作用的,以能让手机能正确识别文件的内容)
这样一个歌名就改完了,其它的可以依此类推,改完以后把文件另存备用 。

II.上面的方法比较简单,但只能替换小于等于内置字符的名字,而要改比内置大的字符就必须使用指针偏移,原则上这种方法是支持无限长的字符的 。

以 E318 内置第三首铃声 Harp Concerto 为例,一共是 13 个字符,如果你把它替换为“一起开始的旅程”,一起开始的旅程七个字在 BIN 中占 21 个字符,比原名字大 。步骤如下:
1 ) 。使用 UT8 字符转换器,在里面输入“一起开始的旅程”,
把 UT8 字符转换器中 UTF — 8 里的内容复制出来,
2 ) 。找到 BIN 文件中的空白地址,即连续的大片的 FFFF 内容的地址,经过查找,发现 E318ZCDF5 — B 版本的大片的 FFFF 内容的开始地址是 01CF0020 (经发现 E318ZCDF5 — B 的 BIN 文件空白连续地址有 6 处之多,所以我只取了其中的一处,大家也可以在其他空白地址找) 。
然后选择工具栏中的编辑——特殊粘贴 。

选择第三项“ CF TEXT ”然后按“粘贴”按钮,软件会出现一个“警告”框,我们只要按“确定”按钮就可以了 。
那“一起开始的旅程”的那段 UT8 代码就写到 BIN 文件里去了 。
因为 BIN 文件内的内容都是以 2 位 2 位 16 进制文件形式显示的,所以同样为了能让手机正确识别文件,替换后的内容结尾同样要以 0000 结束 。

看到上面两张图片的区别了把 。嘿嘿!一定要记得加 0000 用来分割字符内容哦!!!
3 ) 。名字改好了,下一步就是让手机知道原第三首的名字已经改到 01CF0020 这个地址了,所以还要找到原来字符的指针,然后偏移到这儿来就行了 。把原理先说一下吧,我们现在要先找到原字符的指针,然后把这个指针指向你刚才改的地址就可以了 。
一、先找原字符的指针 。用 UT8 字符转换器查看 Harp Concerto 的 utf8 码,把它复制下来,然后用 Hex 的编辑——查找功能找到这段地址,同样是只找第二个 。
然后找到这个内容的地址 。看下图上的红线框框,这就是名字的地址 00812BE0。
但这个并不是它的指针,要按照从高位到低位的原则把它倒过来看,这里就是 E02B81 了,这个才是指针!!!这类指针一般适用于三星 AGERE 系统机型,如 S300 、 E608 等,但三星 SYSOL 系统手机指针是直接找到的就是他的指针,不用倒置,如 X608 、 E808 、 E708 等就是这样,你如果也去从高位到低位的倒着看,那你就永远找不到了,所以这就是我在文章开头所说的这两个系统的手机的替换内置字符的差别所在,其余都是一样的,仅此差别,嘿嘿 。

推荐阅读