关于字库加密的另类解决办法(无招中的绝招!)

sln3618

普通会员
2005-11-04
139
0
0
声明:本文中所指的方法并非绝对可行,只能给各位同行一个参考,在没招的情况下可以测试一下。
也当是起抛砖引玉的作用。也希望各位同行可以举一反三,在实际维修中的点点滴滴经验共
享出来。本人也不是什么高手,更不懂手机字库里面的程序是怎么一回事,所以在本文中所
说的仅代表本人的想法,当然可能有些不对的地方,更请各位高手多多指教。
以下内容跟帖回复才能看到
==============================

前些日子有位朋友用96编程器写了几台南方高科的机子,字库型号是am29dl323dt,写了同一个资料(这个资料是从一台好的机里面读出来的),但是奇怪的是,写到不同的机子里面去,所出现的故障是各种各样。有一开机就闹钟且关不了机的、有不显示电池、有信号打不出电话、串号变成乱码等等。
虽然知道这是典型的手机软件加密,但我还是就觉得奇怪呀,为什么同一个字库资料,写进不同的手机,会出现不同的故障呢?莫非是加密位问题?可是这是AMD的字库,没有带加密位的功能呀?莫非机板上还有其它的存储器来进行校验,可找来找去,除了一个FLASH,再也看不到其它的存储器。到底是为什么呢?这使我细心看了一个字库里面的资料。
先用96将完全正常的手机的字库资料读出来,再按编辑会出现下面的图。先是拉着右边的滚动条看看缓冲区里面的资料,哇,乱七八糟也不知道是什么,到了最后,也就是图中所示地址:3FFF10的地方,开始有些不同了。在地址3FFF10到3FFF32的这段数据里,是有实际数据的,而除了这段之外,缓冲区的头尾位置,所看到的都是FF,也就是数据都为空。之后我读了几个字库,发现都是同样的情况,都在3FFF10这里开始到3FFF32这一段有数据,而且每一台手机的数据都是不同的。呵呵,聪明的你应该想到一些端倪了吧!!

没有错了,这里应该就是手机软件加密的部分了。我先将这些数据改掉为(在键盘直接输入FF,直把所有数据改变FF为止)再写进手机,发现几部手机都能正常开机打电话,串号也正常了。到了后来研究发现,这些数据是跟串号有关系的,因为每一部手机都有一个串号,这些串号也是加密过的数据,一旦串号是乱的,手机也就不能正常使用了。
说明一下这里清为FF的理由。把所有数据都清为FF,字库装进手机运行时,这里的数据是空的,那么手机的CPU就会往这里写一些初值。所以就能正常使用。 当然这属于"乱来"的伎俩。

技巧:以我的观点看,设计任何一个程序都是一样的,如果在将一些用户标志写到一个特定的存储器里面去,一般都会写到最后面。因为前面是整机的运行程序,而整机的运行程序不可以比FLASH的容量还要大,这样就会有一些空间留在尾部,所以用尾部空间来存储用户标志是很合理的。
但是,我还是搞不懂,即然是一个CPU,同一个板,同一个字库资料,没有其它存储器他又拿什么来判断才能对手机软件进行加密呢?当然,很有可以在CPU里面。这个答案还是等高手来回答吧。

==============================

[ 本帖最后由 sln3618 于 2007-2-6 04:13 PM 编辑 ]