当前位置:首页 > 手机资讯 > 正文

BinWalk安装和命令参数详解v i v o 手机「BinWalk安装和命令参数详解」

BinWalk安装和命令参数详解v i v o 手机「BinWalk安装和命令参数详解」

本周一分享的工具为。
是一款快速、易用,用于分析,逆向工程和提取固件映像的工具。简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,还重要一点的是可以轻松地扩展。
在CTF的MISC类题型和IOT安全的固件解包分析中广泛应用,可以大大提高效率。该工具对linux支持较好,对于windows功能支持较差,有条件的童鞋可以在linux上使用练习该神器。

github项目:https://github.com/ReFirmLabs/binwalk
的wiki:https://github.com/devttys0/binwalk/wiki
是一款编写的工具,目前和都较好的支持,不过在中运行速度更快。在里面已经预装了,在其他发行版中安装也很简单,不过在上会稍微繁琐一些。
下的安装和使用方法可以参考大表哥的方法https://www.cnblogs.com/pcat/p/5256288.html。
上对于安装使用已经说的非常详细了。建议英文好的童鞋可以直接看官方的资料。网上资料也很多,这里就简单的翻译总结一下。
这里使用演示(基于Debian的linux发行版开发的一个渗透数字取证的系统)
注意: 如果原来系统已经安装了旧版,这里建议先卸载再安装新版本,以防止出现不兼容和API冲突等问题。

 

如果执行命令的中途出现了,执行下面命令:

 

还需要安装一些依赖项,具体的大家可以去上查看,如果是源代码里已经给了一键自动安装依赖项的脚本,运行命令:

 

安装IDA插件

还可以安装插件,这个功能对于做固件逆向的功能是非常方便的。安装:

 

卸载:

 
 

显示binwalk帮助输出(`-h, --help)

 

扫描固件

的主要功能 - 也是迄今为止最受欢迎的功能。
可以扫描许多不同嵌入式文件类型和文件系统的固件映像,只需给它一个要扫描的文件列表:

 

文件提取()

这个功能也是一个常用的功能,在CTF中很多文件分解的都可以使用提高效率相对于使用这类工具。
可以使用选项提取它在固件映像中找到的任何文件。

 

签名分析()

对目标文件执行签名分析,如果未指定其他分析选项,则这是默认值。
如果希望将签名分析与其他分析器(例如 - 熵)结合使用,请使用此选项:

 

熵分析()

对输入文件执行熵分析,打印原始熵数据并生成熵图。
熵分析可以与–signature,-- raw或–opcodes结合使用,以便更好地理解目标文件。
用于识别签名扫描可能遗漏的有趣数据部分:

 

与–verbose选项结合使用时,将打印为每个数据块计算的原始熵:

 

注意: 如果是使用调用熵分析,需要禁用图形(–nplot)以防止脚本过早退出。

保存熵图为PNG文件并不显示()

 

搜索字符串()

搜索字符串包括转义的八进制和/或十六进制值。
需要搜索自定义的原始字节序列时,可以使用此选项:

 

搜索各种CPU架构常见的可执行操作码()

可以在指定文件中搜索各种CPU架构常见的可执行操作码。注: 某些操作码签名很短,因此容易产生误报结果。
当需要在文件中找到可执行代码时,如果需要确定可执行文件的体系结构时,可以使用此选项:

 

搜索签名的自定义魔术签名文件()

加载备用魔术签名文件而不是默认文件。

 

禁用“智能”签名匹配()

智能签名匹配可能导致错过其他有效签名时(例如,通过jump-to-offset关键字),可以使用:

 

显示所有包括误标记为无效结果()

binwalk将有效结果误标记为无效结果,并产生大量垃圾输出,可以使用:

 

签名排除过滤器()

不过滤被过滤器匹配的签名,过滤器是小写的正则表达式; 可以指定多个过滤器。第一行与指定过滤器匹配的魔术签名根本不会被加载; 因此,使用此过滤器可以帮助减少签名扫描时间。用于排除不需要或不感兴趣的结果:

 

签名过滤器()

过滤被过滤器匹配的签名,过滤器是小写的正则表达式; 可以指定多个过滤器。只会加载第一行与指定过滤器匹配的魔术签名; 因此,使用此过滤器可以帮助减少签名扫描时间。仅搜索特定签名或签名类型时很有用:

 

识别反汇编代码的CPU体系结构()

使用反汇编程序识别文件中包含的可执行代码的CPU体系结构。
使用此扫描指定将另外打印反汇编的指令。
通常比执行的简单签名分析更健壮,但支持更少的体系结构:

 

设置反汇编结果的最小连续指令数()

将–disa结果的最小连续指令数设置为有效。默认值为500条指令:

 

反汇编结果连续执行()

指示 - disa不会停在第一个结果:

 

忽略–entropy生成的熵图中的图例()

 

禁止对图形熵地块–entropy扫描()

 

设置上升沿熵触发电平()

仅在与–entropy一起使用时有效。指定的值应介于0和1之间:

 

设置下降沿熵触发电平()

仅在与–entropy一起使用时有效。指定的值应介于0和1之间:

 

十六进制字节彩色输出()

绿色 - 所有文件中的这些字节都相同
红色 - 这些字节在所有文件中都不同
蓝色 - 这些字节在某些文件中只有不同
可以任意数量的任意文件; 其他有用的选项是–block, - offset, - length和–terse:

 

注意: 如果您需要页面输出安装most实用程序,因为它更好地支持彩色输出的分页。
仅在–hexdump期间显示包含字节的行:

 

仅在–hexdump期间显示包含字节的行:

 

仅在–hexdump期间显示包含字节的行:

 

提取签名扫描期间识别的文件()

提取 - 签名扫描期间识别的文件。可以指定多个–dd选项。
type是签名描述中包含的小写字符串(支持正则表达式)
ext是保存数据磁盘时使用的文件扩展名(默认为none)
cmd是在将数据保存到磁盘后执行的可选命令
默认情况下,文件名是找到签名的十六进制偏移量,除非在签名本身中指定了备用文件名。
以下示例演示如何使用–dd选项指定提取规则,该选项将提取包含文件扩展名为“zip”的字符串“zip archive”的任何签名,然后执行“unzip”命令。此外,PNG图像按原样提取,带有’png’文件扩展名。
请注意使用’%e’占位符。执行unzip命令时,此占位符将替换为解压缩文件的相对路径:

 

签名扫描期间递归扫描提取的文件()

只有有效使用时–extract或–dd。

 

设置提取数据的输出目录()

默认值:当前工作目录
仅适用与使用时–extract或–dd选项:

 

限制–matryoshka递归深度()

限制–matryoshka递归深度。默认情况下,深度设置为8。
仅在与–matryoshka选项一起使用时才适用:

 

限制从目标文件中分割出的数据大小()

默认情况下,没有大小限制。
只有有效使用时–extract或–dd。
请注意,此选项不限制外部提取实用程序提取/解压缩的数据大小。
从具有有限磁盘空间的大型文件中雕刻或提取数据时非常有用:

 

清除无法处理的零文件和文件()

只有有效使用时–extract或–dd。
用于清除在提取期间从目标文件的误报文件:

 

刻录数据但不自动提取/解压缩该数据()

只有有效使用时–extract或–dd。

 

暴力识别原始deflate压缩数据流()

用于从具有损坏/修改/缺少标头的文件中恢复数据。可以与–lzma结合使用。
此扫描可能很慢,因此使用–offset和/或–length限制扫描区域非常有用:

 

暴力识别原始LZMA压缩数据流()

用于从具有损坏/修改/缺少标头的文件中恢复数据。可以与–deflate结合使用。
由于LZMA压缩选项的数量不同,此扫描可能非常慢,因此使用–offset和/或–length限制扫描区域非常有用:

 

常见压缩选项搜索压缩流()

可以显着提高–lzma扫描的速度:

 

在扫描到第一个结果停止()

与–lzma和/或–deflate选项一起使用时,这将在显示第一个结果后停止扫描:

 

设置目标文件中要分析的字节数()

 

设置起始偏移量()

设置开始分析目标文件的起始偏移量。还可以指定负偏移(距文件结束的距离):

 

设置所有打印偏移的基址()

此值将添加到所有打印结果的原始文件偏移量中:

 

设置分析期间使用的块大小()

设置分析期间使用的块大小(以字节为单位)。
与 - 熵一起使用时,这决定了在熵分析期间分析的每个块的大小。
与–hexdump一起使用时,它设置十六进制输出中每行显示的字节数。

 

扫描之前反转n个字节()

 

扫描结果记录到指定的文件()

除非指定了–csv,否则保存到日志文件的数据将与终端中显示的数据相同。
即使指定了–quiet,数据也将保存到日志文件中:

 

日志数据以CSV格式保存()

如果与–cast或–hexdump一起使用,则忽略此选项。
仅在与–log选项结合使用时才有效:

 

格式输出适应终端窗口宽度()

使输出更具可读性:

 

禁用输出到stdout()

与–log或verbose扫描一起使用时最方便,例如–entropy:

 

启用详细输出,包括目标文件MD5和扫描时间戳()

如果指定了两次,如果还指定了–extract,则将显示外部提取实用程序的输出:

 

扫描名称与给定正则表达式字符串匹配的文件()

当与组合–matryoshka和–extract

 

不要扫描名称与给定正则表达式字符串匹配的文件()

当与组合–matryoshka和–extract

 

指定的端口号上启用状态服务器()

状态服务器仅侦听localhost并打印出与当前扫描状态相关的人类可读ASCII数据。您可以使用telnet,netcat等连接到它。

 

总结

有话要说...

最新文章