防 Dump 的 WP ROM 的原理和应对方法
几天前 HD7 Deepshining Windows Phone 7.8 的 ROM 放出,有人发现这个 ROM 用 OSBuilder 无法直接解开,就来找我帮忙。我也先进行尝试,得到以下提示:
Compression library does not support compression type
其实,这也是我第一次处理这种 ROM,以前都是用 WP 之家的 ROM 修改成自己的风格。所幸,不负所托,没多久就搞定了,所以决定把思路写下来。
首先是大胆假设——这个 ROM 是用 OSB 制作的,后被动手脚,当然,我认为 OSB 已经很完善了,不太可能冒出一种 OSB 不支持的新的压缩算法;然后思考——它能正常刷机,但 OSB 说压缩类型不支持,这说明 ROM 的压缩格式被人改了;接着根据经验——一般的 HTC ROM 都是用 XPH 压缩算法的;开始尝试——在 ROM 里果真找不到任何压缩算法的标志,说明压缩标志已经被抹除了。
为了了解 ROM 的压缩算法标志的文件位置,我用 Reflector 逆向了 OSB,迷迷糊糊看了点,大概搞明白了……结论是先用 OSB 的 HTC NBH Extractor 解出 os.nb,再把 os.nb 的 0x011469EB - 0x011469ED 这三个字节,改回 XPH,然后解包 os.nb。