DD工具使用

如果我们在固件分析中使用binwalk看到如下的分析结果

➜   binwalk wdr7660gv1-cn-up_2019-08-30_10.37.02.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
512           0x200           uImage header, header size: 64 bytes, header CRC: 0xDEFB3DA, created: 2018-09-05 07:32:57, image size: 48928 bytes, Data Address: 0x41C00000, Entry Point: 0x41C00000, data CRC: 0x2A36A3AD, OS: Firmware, CPU: ARM, image type: Standalone Program, compression type: lzma, image name: "U-Boot 2014.04-rc1-gdbb6e75-dirt]"
576           0x240           LZMA compressed data, properties: 0x5D, dictionary size: 67108864 bytes, uncompressed size: -1 bytes
66560         0x10400         LZMA compressed data, properties: 0x6E, dictionary size: 8388608 bytes, uncompressed size: 3869672 bytes
1422400       0x15B440        LZMA compressed data, properties: 0x5A, dictionary size: 8388608 bytes, uncompressed size: 7170 bytes
1423926       0x15BA36        LZMA compressed data, properties: 0x5A, dictionary size: 8388608 bytes, uncompressed size: 200 bytes
...

然后我们像提取0x10400位置的文件就需要用到DD工具,用dd命令提取,下面是它的命令解析:

bashbs=字节数      一次读写的比特数(默认:512);
count=块数     只将复制指定数量的输入块
ibs=字节数     一次读取的字节数(默认:512)
if=文件         从指定文件而非标准输入来进行读取
obs=字节数      一次写入指定字节数(默认:512)
of=文件         写入到指定文件而非标准输出
skip=块数       在输入开始处跳过指定的 ibs 大小的块数

对于这个情况下count的计算:1422400-66560=1355840

dd if=wdr7660gv1-cn-up_2019-08-30_10.37.02.bin of=ac7660.lzma bs=1 skip=66560 count=1355840
记录了1355840+0 的读入
记录了1355840+0 的写出
1355840字节(1.4 MB,1.3 MiB)已复制,3.98426 s,340 kB/s

参考:https://tttang.com/archive/1418/

猜你喜欢

转载自blog.csdn.net/kelxLZ/article/details/127513587
dd