转贴 备份MPX200 ROM的方法
备份MPX200的ROM是改造MPX200 ROM的第一步,呵呵
备份MPX200的ROM应当是极其安全的,没有任何风险(至少我没有发现)。
目前有两种方法可以备份MPX200 ROM。一种方法是利用xda-developers提供的itsutils中的pmemdump.exe来转储内存;另外一种方法是直接利用MPX200的bootloader来转存flash。
(1)pmemdump方法
这个方法是利用itsutils中的itsutils.dll来直接读取指定地址的内存。速度快,缺点是需要安装一些软件。
首先你需要安装Microsoft SMARTPHONE 2003 SDK.msi,这个软件可以到微软下载。我们主要是利用它来签名itsutils中的itsutils.dll这个动态链接库。具体如何签名,可以参考“Getting Started with Windows Mobile A Practical Guide to the Smartphone Application Security and Code Signing Model for Developers”。
步骤很简单,首先开启你的MPX200,打开ActiveSync,运行C:\Program Files\Windows CE Tools\wce420\SMARTPHONE 2003\Tools下面的spdps /device /create。然后运行C:\Program Files\Windows CE Tools\wce420\SMARTPHONE 2003\Tools下面的signcode.exe,按照提示签名你的itsutils.dll。
签名之后,利用ActiveSync或者itsutils中的pput.exe将itsutils.dll拷贝到MPX200的\windows目录下面即可。
备份的时候只需要执行pmemdump.exe -p 0x0 0x2000000 dump.raw就可以了,完毕之后,内存的映像就保存在文件dump.raw中。
dump.raw最开始的地方就是MPX200的bootloader。
(2)bootloader方法
通过分析bootloader的代码以及Motorola Mobile Update Wizard相关的代码,我们可以有第二种备份Flash的方法。
MPX200的Flash主要划分为三大块:
80000000~80400000为OEM块
82020000~82C00000为一大块
82C00000~83C00000为smartphone块
一般的更新只更新这三大块,不会涉及到bootloader。换句话说,如果试验失败,应当还有机会将德国版本刷回去
MPX200的刷机软件与MPX200之间是通过modem协议通信的。于是我想到第二种方法,就是直接利用Windows XP的超级终端来备份。
1、关闭你的MPX200
2、按住向左的方向键与power键
3、杀掉ActiveSync进程
4、将MPX200连接到PC上,应当会有一个Smartphone 2002 Wireless USB Modem的设备
5、打开附件->通信->超级终端,建一个连接,注意选择Smartphone 2002 Wireless USB Modem这个设备,其他随便
6、在主窗口内输入“at+ver=?”,然后回车。注意是输入引号中的内容,输入的时候是没有显示的,盲打。看看显示是不是“Beethoven Bootloader ver. 1.13”字样?那就表示你已经成功地与MPX200连接了
7、选中窗口上面的“传送”->“捕获文字”,将后面截获的文件保存到一个文件中,启动捕获
8、在主窗口内输入“at+dumpm0=addr,length”。其中addr是需要读取的地址,length是需要读取的数据,都是十六进制格式。目前需要保存上面说到的三大块数据。因此输入:
at+dumpm0=80000000,400000回车,或者at+dumpm0=82020000,BE0000回车,或者at+dumpm0=82C00000,1000000回车。每保存一块数据,建议停止捕获数据,在一个新文件里面捕获下一块数据。
不知道是何原因,有时候捕获的数据是有问题的,表现在有些行的长度不够80个字符,这时候需要重新捕获这一部分内容,以后用文本编辑器替换错误的部分。
9、捕获数据需要相当长的时间。完毕之后,应当有三个文本文件。这些就是MPX200 flash主要部分的映像,是以motoral S-Record格式保存的。可以利用xda-developers的dumprom中的srec.pl工具转换为纯二进制格式。
然后可以利用dumprom进行分析。
另外bootloader方法也可以导出bin格式,但是超级终端无法正确处理,所以可能还需要程序在读取才行。
经过比对,两种方法导出来的flash内容是一致的。相比之下,第一种方法速度快、包含bootloader、稳定可靠,缺点是不知道里面存储器的划分。第二种方法只导出flash的主要部分,针对性很强,缺点就是极慢,而且可能出错。但是可以通过校验码的形式进行校验,而且数据一定是最真实的。
获得这些数据之后,就可以开启IDA pro进行分析了。相信不久的将来,就会出现MPX200专用的ROM download/backup工具了,甚至会有ROM editor
关于MPX200 ROM的刷机软件
目前导出来的数据不能直接用来刷机的!!千万注意,如果强行刷机,可能会报废机器的~~
我看了一下Motorola Mobile Update Wizard的软件,这个家伙一旦发现你的bootloader是ver. 1.11版本以上,就只能用img格式(就是加密格式)的ROM来刷机。如果你的bootloader不是ver. 1.11或者以上版本,那它就可能可以用BIN格式的ROM来刷机。所以有两种方法:
(1)是xx刷机软件,让它认为你的MPX200 bootloader版本比较低,不支持加密的rom格式,而只支持普通的BIN格式。这样就绕开了img格式的加密机制;
(2)分析bootloader程序,看看img的加密到底是如何进行的。然后做一个加解密的工具就可以了。
附件: 您所在的用户组无法下载或查看附件