前几天在研究通过RIL_GetCellTowerInfo的API获取CellID的问题,当时发现了一些机型没法直接通过这个API来获取CellID的问题,在网上查了一些资料如何使用C#在Windows mobile裝置上擷取CellID 说可以直接从内存直接读取这些信息,我这两天验证了一把,这里给大家share一下,这个方法的缺点就是我们每个机型都要一个个分析,但是可行:)!
首先我们需要下载一个开源的工具包 ,主要是把机器当时的内存信息给导出来,然后通过WinHEX工具分析导出来的内存信息,找到MCC,因为国内的MCC是460,各个国家的MCC可以网上查到。
我的环境:
VS2008 + WM6 SDK + P800(多普达真机) + C#/C++
首先需要说明的一点需要得到该信息需要对程序进行签名,要不然直接会出现访问异常:),刚开始写了C#版本的一直报异常,最后加上签名就OK了!
首先我们先分析:
下载到工具后进入CMD到解压的目录,看一下内存的map: