固件分析工具--Binwalk
测试环境:windows+centos 7
1、基于centos7安装方法:
git clone https://github.com/devttys0/binwalk
cd binwalk
python setup.py install
在第一步中如果centos中未安装Git,需要先安装Git工具,安装方法如下:
# 安装
yum install -y git
# 查看版本
git version
2、Binwalk的提取与分析
2.1、固件扫描
命令:binwalk firmware.bin 通过扫描能够智能地发现目标文件中包含的所有可识别的文件类型。
2.2、提取文件
命令:binwalk -e firmware.bin 选项“-e"和“--extract"用于按照定义的配置文件中的提取方法从固件中提取探测到的文件系统。
命令:binwalk -Me firmware.bin 选项“-M"和“--matryoshka"用于根据magic签名扫描结果进行递归提取,仅对"-e"和“--dd"选项有效。
命令:binwalk -Me -d 5 firmware.bin 选项“-d"和“--depth="用于限制递归提取深度,默认深度为8,仅当“-M"选项存在时有效。
命令 dd if=(原文件名) of=(提取文件名)skip=数据地址 bs=1
2.3、显示完整的扫描结果
命令:binwalk -I firmware.bin 选项"-I"和“--invalid"用于显示扫描的所有结果(即使是扫描过程中被定义为“invalid“的项)。当我们认为binwalk错把有效的文件当成无效文件时,可以通过该选项来检查。
绛旓細binwalk鏄竴娆剧敤浜庨潤鎬鍒嗘瀽鍥轰欢鍜屽祵鍏ュ紡璁惧鐨宸ュ叿锛屽畠鍙互瑙f瀽骞舵彁鍙栧叾涓殑鏂囦欢銆佸浐浠跺拰鍏朵粬鏁版嵁銆傝繖涓伐鍏锋渶鍒濇槸鐢盋raig Heffner杩欎綅瀹夊叏鐮旂┒鍛樺垱閫犵殑锛岀幇鍦╞inwalk宸茬粡鎴愪负浜嗘笚閫忔祴璇曞拰鏁板瓧鍙栬瘉浜哄憳鐨勬爣閰嶄箣涓銆俠inwalk鍏锋湁鍚勭寮哄ぇ鐨勭壒鎬э紝鍙互鐢ㄤ簬鏌ユ壘宓屽叆寮忚澶囧拰鍥轰欢鐨勬枃浠剁郴缁熴佽В鏋愬浐浠朵腑鐨勭紪璇戜唬鐮併佹彁鍙栧叾...
绛旓細binwalk鏄竴涓己澶х殑宸ュ叿锛屼富瑕佺敤浜庨潤鎬鍒嗘瀽鍥轰欢鍜屽祵鍏ュ紡璁惧銆傚畠鑳借В鏋愬苟鎻愬彇鍏朵腑鐨勫悇绉嶆暟鎹紝鏃犺鏄枃浠躲佸浐浠惰繕鏄叾浠栫被鍨嬬殑鏁版嵁銆傝繖涓伐鍏锋渶鍒濈敱瀹夊叏鐮旂┒鍛楥raig Heffner寮鍙戯紝鐜板湪宸叉垚涓烘笚閫忔祴璇曞拰鏁板瓧鍙栬瘉浜哄憳鐨勫繀澶囧伐鍏蜂箣涓銆俠inwalk鍏峰澶氱寮哄ぇ鐨勭壒鎬э紝濡傛煡鎵惧祵鍏ュ紡璁惧鍜屽浐浠剁殑鏂囦欢绯荤粺銆佽В鏋愬浐浠朵腑鐨...
绛旓細python setup.py install 鍦ㄧ涓姝ヤ腑濡傛灉centos涓湭瀹夎Git锛岄渶瑕佸厛瀹夎Git宸ュ叿锛屽畨瑁呮柟娉曞涓嬶細瀹夎 yum install -y git 鏌ョ湅鐗堟湰 git version 2銆Binwalk鐨勬彁鍙栦笌鍒嗘瀽 2.1銆鍥轰欢鎵弿 鍛戒护锛binwalk firmware.bin 閫氳繃鎵弿鑳藉鏅鸿兘鍦板彂鐜扮洰鏍囨枃浠朵腑鍖呭惈鐨勬墍鏈夊彲璇嗗埆鐨勬枃浠剁被鍨嬨
绛旓細</ 鍦ㄧ綉缁滃畨鍏ㄧ殑鎺㈢储涓紝Binwalk锛屼竴娆惧鍙楃灘鐩殑Linux绯荤粺鍛戒护琛宸ュ叿锛岀敤浜庢繁鍏鍒嗘瀽鍜岄嗗悜宸ョ▼鍥轰欢闀滃儚锛屾浘鍥犱竴涓弗閲嶇殑婕忔礊鑰屽紩鍙戝叧娉ㄣ侰VE-2022-4510锛屼竴涓珮鍗辩骇鍒殑璺緞閬嶅巻婕忔礊锛屼娇鐢ㄦ埛鍦ㄤ娇鐢ㄦ彁鍙栨ā寮(-e option)澶勭悊鎭舵剰鏂囦欢鏃讹紝闈复娼滃湪鐨勮繙绋嬩唬鐮佹墽琛岄闄┿傜劧鑰岋紝涓庝箣鐩告瘮锛孎oremost鍒欎互涓嶅悓鏂瑰紡...
绛旓細鐢╓inSCP宸ュ叿灏嗘彁鍙栧嚭鐨勫浐浠朵笂浼犲埌ubuntu绯荤粺涓紱鍦╱buntu绯荤粺涓畨瑁呭搴旂殑鍥轰欢鍒嗘瀽宸ュ叿锛firmware-mod-kit銆binwalk銆乴zma銆乻quashfs-tools绛夛級锛涚敤杩欎簺鍒嗘瀽宸ュ叿杩涜鍒嗘瀽锛屽垎鏋愬嚭鏉ュ悗锛岃В鍘嬪搴旂殑鏁版嵁鍖咃紝鎻愬墠瀵瑰簲鐨勫叧閿ф暟鎹繘琛屽垎鏋愩傛寜浠ヤ笂姝ラ鍙互瀹炵幇瀵硅矾鐢卞櫒鐨勫垎鏋愩
绛旓細鍦ㄥ畬鎴愪笂杩颁袱涓皟鏁翠箣鍚庯紝闇瑕佸皢鍥轰欢閲嶆柊鎵撳寘骞剁儳褰曡嚦 Flash 涓傜敱浜 linux 鍚姩鑴氭湰鍦 binwalk 鎻愬彇鐨 squashfs 鏂囦欢绯荤粺涓紝鎵浠ユ垜浠渶瑕佺敤 SDK 涓殑 mksquashfs 宸ュ叿锛岄噸鏂版墦鍖 squashfs 鏂囦欢绯荤粺锛屽叿浣撴柟娉曞湪鑳栫尨涓撻涔嬪墠鐨勫叧浜庢捣搴疯悿鐭宠澶鍒嗘瀽鐨勬枃绔犱腑浠嬬粛杩囷紝杩欓噷灏变笉鍐嶈禈杩般傚畬鎴愪互涓婂伐浣滃悗锛岀粰璁惧...