内容发布更新时间 : 2024/11/2 21:43:19星期一 下面是文章的全部内容请认真阅读。
是不是很罗嗦?呵呵,技术工作就是这么个东西,不能不严谨,有可能不严谨会侥幸没出问题,但是如果你的技术工作是关系到重要系统或重要事件,等你出问题了就太晚了,要养成严谨的习惯。
后来我有空的时候,又从3E24:1900开始扫描,到6724:F900结束,这一段没有扫到可读内存。再后来我就没继续扫下去了。
经过上述过程,我通过扫描得到的可读内存区间段如下: [重要数据]
共三段(没有扫完,只扫了0000:0000到6724:F900的部分,因为我觉得后面的内存肯定没啥用)
第一段可读内存: 起始地址:01DF2B00 结束地址:02685300
总字节数:8988672 bytes(10进制) 第二段可读内存: 起始地址:17AEB100 结束地址:17B26700
总字节数:243200 bytes(10进制) 实际导出时在17B266E0处结束 实际字节数:243168 bytes(10进制) 第三段可读内存: 起始地址:17B28A00 结束地址:17FCCB00
总字节数:4866304 bytes(10进制)
(这一段我忘记是否全部导出了,反正不会相差太多,因为我的扫描步长是256字节,已经足够精确了。)
特别注意:关于扫描内存,我走过弯路,感谢maxpda论坛的1007给我解答,请大家务必注意——新版本的ROM限制了内存扫描操作,请使用老版本ROM,否则你会发现无法进行。(我用的是9530AllLang_PBr4.7.0_rel140_PL4.0.0.125_A4.7.0.99) [A-1]导出可读内存,存为.bin文件
大家可以根据各自情况选择CDMA Workshop、UniCDMA、CDMA Universal工具中的一个,将上述可读内存全部导出;我用的是CDMA Workshop 3.3.5。 [操作步骤]
[A-2]在内存镜像文件中搜索ESN、MEID
有了这3个.bin文件,我们就可以找ESN和MEID了; [操作步骤]
打开UltraEdit,并依次用16进制编辑方式打开.bin文件,并在该文件中搜索16进制的内容(9530手机自身的MEID和ESN),注意,搜索的内容需要“按字节反序”,例如: MEID是A0 00 00 0D F1 E2 D3 ESN是80 1A 2B 3C
则我们需要搜索的实际上分别是: D3 E2 F1 0D 00 00 A0 3C 2B 1A 80
友情提醒:其实你可以搜索两、三个字节,即可。
如下图所示,我们在第一个.bin文件中,在0086ebdf-0086ebe6这个位置搜索到了第一个MEID:
由于第一个.bin文件实际上是从01DF2B00开始的,因此,我们找到的这个MEID实际上在内存中的位置是:0×01DF2B00 + 0×0086ebdf = 0×026616DF。 以此类推,你需要从所有的文件中找出所有的MEID和ESN。
下面是我找到的所有地址记录(我的9530用的是.99的ROM,你的可能跟我的不太一样): [重要数据]
先说MEID,共3处(看绝对地址就行): 起始地址:0×01DF2B00 偏移地址:0×0086ebdf 绝对地址:0x026616DF 起始地址:0×17B28A00 偏移地址:0×0011dbb8 绝对地址:0×17C465B8 起始地址:0×17B28A00 偏移地址:0×0029fe10 绝对地址:0×17DC8810
还有两个地址,有时候会用来存放MEID: 0×17DC88E0 0×17DD1960
我觉得它们只是缓存,临时用的内存地址,不需要关注。 此外还有个特殊地址0×17FCB20D,请见ESN内存部分的描述。
接着说ESN,ESN比较不确定,我找到10余处,有些地址会永远都是ESN码,有些地址却有时候会变化。不多说,列在这里:
[重要数据] 0x02663F1C
0x02663F33(以上这两个地址非常重要,我们可以称它们为第一组ESN地址)
注:第一组ESN地址会发生变化,根据我最近操作过的所有记录来看,我一共发现过三组这样的ESN地址,其规律就是都在0×0266:0000至0×0266:FFFF这一段内存空间中。另外两组分别是0×02664042和0×02664059,以及0×0266405A和0×02664071。你也会有一组这样的ESN地址。 0x17AEB8A4 0x17B0FCDC 0x17B1C244 0x17B9F0B8 0x17C4613C
以上5个ESN地址也很重要,我们可以称它们为第二组ESN地址,目前我实验过N次,这些地址没有发生过变化。
下面还有几个地址,有时候会存放ESN,大部分时候是0,可以适当关注: 0x17C46214 0x17C4C8A0 0x17C5AC2C
还有一个特殊的地址: 0x17FCB20D
第一次研究的时候,发现该地址有时候是ESN,有时候是00000000;在本文刚写成的时候,在我修改esn成功的那一次,它还变成过MEID;在本文v1.1版本修订过程中,可以确定该地址为QXDM的command缓存地址,事实上可以不用关注。
这样,我们一共找到11处ESN,有些是会变的,大家记住这一点就行了,反正我们在操作过程中对这些地址进行多次检查,注意不要遗漏即可。 [B]正式开战
本部分包括如下操作:
1、用QXDM Memory Viewer改内存中的MEID,共3处,全部改为0;
2、用QXDM Memory Viewer改内存中的ESN,共7-10处左右(不一定每个都是必须,但为