本周一分享的工具为。
是一款快速、易用,用于分析,逆向工程和提取固件映像的工具。简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,还重要一点的是可以轻松地扩展。
在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冲突等问题。
如果执行命令的中途出现了,执行下面命令:
还需要安装一些依赖项,具体的大家可以去上查看,如果是源代码里已经给了一键自动安装依赖项的脚本,运行命令:
还可以安装插件,这个功能对于做固件逆向的功能是非常方便的。安装:
卸载:
的主要功能 - 也是迄今为止最受欢迎的功能。
可以扫描许多不同嵌入式文件类型和文件系统的固件映像,只需给它一个要扫描的文件列表:
这个功能也是一个常用的功能,在CTF中很多文件分解的都可以使用提高效率相对于使用这类工具。
可以使用选项提取它在固件映像中找到的任何文件。
对目标文件执行签名分析,如果未指定其他分析选项,则这是默认值。
如果希望将签名分析与其他分析器(例如 - 熵)结合使用,请使用此选项:
对输入文件执行熵分析,打印原始熵数据并生成熵图。
熵分析可以与–signature,-- raw或–opcodes结合使用,以便更好地理解目标文件。
用于识别签名扫描可能遗漏的有趣数据部分:
与–verbose选项结合使用时,将打印为每个数据块计算的原始熵:
注意: 如果是使用调用熵分析,需要禁用图形(–nplot)以防止脚本过早退出。
搜索字符串包括转义的八进制和/或十六进制值。
需要搜索自定义的原始字节序列时,可以使用此选项:
可以在指定文件中搜索各种CPU架构常见的可执行操作码。注: 某些操作码签名很短,因此容易产生误报结果。
当需要在文件中找到可执行代码时,如果需要确定可执行文件的体系结构时,可以使用此选项:
加载备用魔术签名文件而不是默认文件。
智能签名匹配可能导致错过其他有效签名时(例如,通过jump-to-offset关键字),可以使用:
binwalk将有效结果误标记为无效结果,并产生大量垃圾输出,可以使用:
不过滤被过滤器匹配的签名,过滤器是小写的正则表达式; 可以指定多个过滤器。第一行与指定过滤器匹配的魔术签名根本不会被加载; 因此,使用此过滤器可以帮助减少签名扫描时间。用于排除不需要或不感兴趣的结果:
过滤被过滤器匹配的签名,过滤器是小写的正则表达式; 可以指定多个过滤器。只会加载第一行与指定过滤器匹配的魔术签名; 因此,使用此过滤器可以帮助减少签名扫描时间。仅搜索特定签名或签名类型时很有用:
使用反汇编程序识别文件中包含的可执行代码的CPU体系结构。
使用此扫描指定将另外打印反汇编的指令。
通常比执行的简单签名分析更健壮,但支持更少的体系结构:
将–disa结果的最小连续指令数设置为有效。默认值为500条指令:
指示 - disa不会停在第一个结果:
仅在与–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递归深度。默认情况下,深度设置为8。
仅在与–matryoshka选项一起使用时才适用:
默认情况下,没有大小限制。
只有有效使用时–extract或–dd。
请注意,此选项不限制外部提取实用程序提取/解压缩的数据大小。
从具有有限磁盘空间的大型文件中雕刻或提取数据时非常有用:
只有有效使用时–extract或–dd。
用于清除在提取期间从目标文件的误报文件:
只有有效使用时–extract或–dd。
用于从具有损坏/修改/缺少标头的文件中恢复数据。可以与–lzma结合使用。
此扫描可能很慢,因此使用–offset和/或–length限制扫描区域非常有用:
用于从具有损坏/修改/缺少标头的文件中恢复数据。可以与–deflate结合使用。
由于LZMA压缩选项的数量不同,此扫描可能非常慢,因此使用–offset和/或–length限制扫描区域非常有用:
可以显着提高–lzma扫描的速度:
与–lzma和/或–deflate选项一起使用时,这将在显示第一个结果后停止扫描:
设置开始分析目标文件的起始偏移量。还可以指定负偏移(距文件结束的距离):
此值将添加到所有打印结果的原始文件偏移量中:
设置分析期间使用的块大小(以字节为单位)。
与 - 熵一起使用时,这决定了在熵分析期间分析的每个块的大小。
与–hexdump一起使用时,它设置十六进制输出中每行显示的字节数。
除非指定了–csv,否则保存到日志文件的数据将与终端中显示的数据相同。
即使指定了–quiet,数据也将保存到日志文件中:
如果与–cast或–hexdump一起使用,则忽略此选项。
仅在与–log选项结合使用时才有效:
使输出更具可读性:
与–log或verbose扫描一起使用时最方便,例如–entropy:
如果指定了两次,如果还指定了–extract,则将显示外部提取实用程序的输出:
当与组合–matryoshka和–extract
当与组合–matryoshka和–extract
状态服务器仅侦听localhost并打印出与当前扫描状态相关的人类可读ASCII数据。您可以使用telnet,netcat等连接到它。
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://zleialh.tongchengxian.cn/news/2768.html
有话要说...