weiruming 发表于 2014-05-31 22:12

firmware.bin提取根文件系统"/"

本帖最后由 weiruming 于 2014-05-31 22:12 编辑

求助大神:提取firmware.bin根文件系统"/"
我分析整个个firmware.bin固件很久了,由于水平有限,一直无法提取出它的根文件系统。哪位大神,能试手相救一下?
1.        自己做的一些工作和经验:
用binwalk查看固件的结果
DECIMAL         HEX             DESCRIPTION
---------------------------------------------------------------------------
524544          0x80100         uImage header, header size: 64 bytes, header CRC: 0xDF196F57, created: Thu Jul4 11:33:56 2013, image size: 7695598 bytes, Data Address: 0x8000, Entry Point: 0x8000, data CRC: 0x98E2E427, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: gzip, image name: Linux Kernel Image
524608          0x80140         gzip compressed data, from Unix, NULL date: Wed Dec 31 16:00:00 1969, max compression
13631744      0xD00100      uImage header, header size: 64 bytes, header CRC: 0xDF196F57, created: Thu Jul4 11:33:56 2013, image size: 7695598 bytes, Data Address: 0x8000, Entry Point: 0x8000, data CRC: 0x98E2E427, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: gzip, image name: Linux Kernel Image
13631808      0xD00140      gzip compressed data, from Unix, NULL date: Wed Dec 31 16:00:00 1969, max compression
28016640      0x1AB8000       JFFS2 filesystem, little endian
提取出binwalk可以相应识别的文件
root@ubuntu:/home/weiruming/router/zte# ls -l 1AB8000.jffs2 80140 D00140
-rw-r--r-- 1 root root5537792 May 31 06:48 1AB8000.jffs2
-rw-r--r-- 1 root root 10219984 May 31 06:48 80140
-rw-r--r-- 1 root root 10219984 May 31 06:48 D00140
Jffs2文件系统可以通过类似如下的方式挂载读出文件
root@ubuntu:/home/weiruming/router/zte/flashData/fs# modprobe mtdblock
root@ubuntu:/home/weiruming/router/zte/flashData# modprobe mtdram total_size=20000 erase_size=16
root@ubuntu:/home/weiruming/router/zte/flashData# cat /proc/mtd
dev:    size   erasesizename
mtd0: 01388000 00004000 "mtdram test device"
root@ubuntu:/home/weiruming/router/zte/flashData# dd if=42000.jffs2 of=/dev/mtdblock0
31416+0 records in
31416+0 records out
16084992 bytes (16 MB) copied, 0.503373 s, 32.0 MB/s
root@ubuntu:/home/weiruming/router/zte/flashData# mount -t jffs2 /dev/mtdblock0 fs
root@ubuntu:/home/weiruming/router/zte/flashData# cd fs
root@ubuntu:/home/weiruming/router/zte/flashData/fs# ls -l -R
.:
total 2
drwxr-xr-x 2 root root   0 1999-12-31 16:00 cfg
---------- 2 root root 320 1999-12-31 17:50 highlow_cfg
-rw-rw-rw- 1 root root   0 1999-12-31 16:00 HLTLog.txt
---------- 2 root root 320 1999-12-31 17:50 paramtag
-rwxrwxrwx 1 root root   8 2013-07-04 10:45 writeprotect_cfg

./cfg:
total 652
-rw-rw-rw- 1 root root 303104 1999-12-31 17:32 db_backup_cfg.xml
-rwxr-xr-x 1 root root      0 1999-12-31 16:00 db_default_cfg.xml
-rw-rw-rw- 1 root root 304432 1999-12-31 17:32 db_user_cfg.xml
---s-wxr-- 1 root root    112 1999-12-31 16:00 envfile
-rw-r--r-- 1 root root   28 1999-12-31 16:00 flag_usrfs
---------- 1 root root58804 1999-12-31 16:00 log
2.        分析当前情况并提出问题:
现在的情况是,可以提出它的一些配置文件信息。
知道u-boot传递给内核的参数是:
/ # cat /proc/cmdline
console=ttyS0,115200,1 root=/dev/ram0 rw load_ramdisk=1 rdinit=/sbin/init mv_net
_config=0 mem=127M
由上可知,它应该是用了类似initrmfs的文件系统,并把数据集写入/dev/ram0,之后把它挂载到“/”。
可是这个Initrd是在falsh地址上的那些数据?它是个怎么启动的过程?哪位大神,能通过我附件里的固件,找出它的initrd.img的地址,并读出类似/etc之类的文件,不胜感激,拜谢!


weiruming 发表于 2014-05-31 22:24

由于附件firmware.bin大于15M无法上传。有意向的Q我150063676,我单独发送。或到我360云盘下载:http://yunpan.cn/QTwwHDVVFzNRF访问密码 a9b9。
页: [1]
查看完整版本: firmware.bin提取根文件系统"/"