yaffs2 image逆向工具

转载时请注明出处和作者联系方式
文章出处:http://www.limodev.cn/blog
作者联系方式:李先静 <xianjimli at hotmail dot com>

这 两天在分析yaffs2文件系统,花了几天时间把yaffs2的代码通读了几遍,基本脉络差不多搞清楚了。在网上找到一些资料,对我的阅读有很大帮助,不 过它们介绍得不太完整。接下来有时间的话,我会写一个yaffs2源代码分析的系列。一方面进一步加深对yaffs2的理解,另外一方面也希望对分析 yaffs2的朋友有所帮助。

昨天写了一个叫xyaffs2的yaffs2 image逆向工具,它可以把yaffs2 image中的内容解到一个目录中。这里大概介绍一下它的原理:

mkyaffs2image 生成的yaffs2 image是最理想的状态,文件和目录按层次递归存放,文件数据处于连续状态。整个image由N个chunk(page)+tag组成,每个chunk 为2048字节大小,tag为64字节大小(但只用了前面一部分)。每个对象(文件,目录,设备节点和链接等)占用一个chunk用于存放对象信息(类 型,名字和时间等),如果是文件,后面则紧跟着文件内容。

对于使用过的image(比如删除过文件),目录和文件存放就不会那么规则了,不过yaffs2会在其中写入checkpoint数据,通过这些数 据可以得到整个文件系统的层次结构。如果因为断电等原因,文件系统处于不一致状态,需要重新扫描整个image才能构建文件系统的层次结构。

xyaffs2目前只能处理mkyaffs2image生成的image,以后有时间再改进吧。有兴趣的朋友请到这里下载。


欢迎到Linux mobile development上交流

你可能感兴趣的:(linux,image,mobile,工具,代码分析)