新年礼物——我家云原版dtb文件
本帖最后由 zgm1996 于 2021-2-14 14:33 编辑春节假期,闲来无事,整理文件的时候发现了两份我家云的原版固件,一份在其它大佬分享的网盘下的,另一份是我自己的我家云里备份的。
之前看到各位大神都在努力适配我家云的dtb,想着在Linux视万物为文件,那么dtb作为一份文件也必然以某种形式存在于备份出来的固件里,就用一种静态的方法,在固件无root权限且不运行的情况下尝试提取,现将过程与大家分享!
首先感谢分享 “我家云出厂系统.7z” 的前辈,SHA-256:86C56BF4F366878C62B9181D9FAF2D25C571E8C5524F2BD6F0860F86CDC1471E
解压固件文件名为:“0_15273600_Chainedbox.IMG”。
环境:任一种Linux系统(我用了VMWare+kali 2020);
工具:binwalk、dtc;
原料:我家云原版固件。
前期虚拟机和kali都超出了矿渣的范围,就不在此说了,原版固件拖进虚拟机。
1、使用binwalk在原版固件中搜索dtb
binwalk 0_15273600_Chainedbox.IMG
重点在其中这两行:
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
……
26216448 0x1900800 device tree image (dtb)
26326528 0x191B600 PC bitmap, Windows 3.x format,, 654 x 258 x 8
……
说明binwalk已经识别到了dtb在镜像中的位置,接下来就把dtb文件从固件中切出来。
2、使用linux dd命令截取dtb所在位置:
先说dd命令语法:
dd if=【输入文件】 bs=【读入/输出的块大小(字节)】 count=【读入/输出的块】 skip=【读取前跳过的块数】 of=【输出文件名】
首先计算目标dtb文件大小(字节):26326528-26216448=110080
bs取512字节,计算成块为:110080/512=215,就是count的值
计算skip:26216448/512=51204
所以用到的dd命令如下:
dd if=0_15273600_Chainedbox.IMG bs=512 count=215 skip=51204 of=wojiayun.dtb
执行后再用file查看以下是不是dtb文件。
到此,这个dtb文件就是已经编译的二进制设备树文件。如果要修改,就要反编译回设备树描述文件dts。
3、反编译dtb为dts文件:
需要在Linux中安装dtc工具:
sudo apt installdevice-tree-compiler
执行:
dtc -I dtb -O dts wojiayun.dtb > wojiayun.dts
输出的一堆都没关系。
这样就可以使用vim等文本编辑工具打开并进行编辑了。
最后附上已经提取的两份反编译过的dts文件,祝大家新年快乐!
谢谢分享 原版的系统掉盘吗? 路过支持 就是爱折腾 发表于 2021-2-15 10:17
原版的系统掉盘吗?
原版系统貌似不掉 原版的系统掉盘吗? wh1tequartz 发表于 2021-2-18 12:44
原版系统貌似不掉
原系统掉得最厉害,不然局域网原系统备份照片视频看电影还蛮好用的 大家谁刷机了吗
谢谢分享