IOT Fuzz 两种思路

本文介绍了物联网(IoT)设备的两种模糊测试(Fuzz)方法,包括基于Qiling框架和afl++的跨平台二进制模糊测试,以及利用BooFuzz进行网络协议黑盒模糊测试。Qiling作为高级二进制模拟框架,简化了跨平台模糊测试的准备工作,而BooFuzz则专注于网络协议的模糊测试。
摘要由CSDN通过智能技术生成

IOT Fuzz 两种思路

代码和测试用例

基于Qiling框架和afl++进行跨平台二进制Fuzz

Qiling框架

https://docs.qiling.io/en/latest/
https://github.com/qilingframework/qiling

Qiling是一个基于Unicorn后端的高层次的二进制模拟框架,它有如下特性

跨平台: Windows,MacOS,Linux,BSD,UEFI,DOS
跨架构: X86,X86_64,ARM,ARM64,MIPS,8086
多种文件格式: PE,MachO,ELF,COM
支持Linux内核模块,Windows驱动,MacOS内核
在独立的环境中模拟,沙盒化机器代码
支持跨平台,跨架构的调试功能
提供高层次的API用于设置沙盒
允许多个不同层次的Hook(指令级,基本块级,内存访问级,错误处理,系统调用,IO,等等)
允许动态打包的文件
基于Python

Qiling 比较 Unicorn 的优势

Unicorn只是一个纯粹的cpu模拟器,只专注于考虑理解模拟器的虚拟内存,在内存空间之上的
高级别上下文,类似动态库,系统调用,I/O处理,或其他可执行格式像PE,Mach0或者ELF,它
都不关心,没有操作系统相关的上下文。

Qiling是在高层次上设计的框架,不仅可以发挥Unicorn模拟CPU指令的能力,还能理解操作系统,
和许多可执行文件格式,甚至动态链接,所以Qiling在不需要原生操作系统的层面上,执行二进制
文件。

比方说平常要用unicorn模拟一个.so文件,可能还需要考虑好内存映射的问题,手动把.so按照
Linux的ELF的解析方式映射到unicorn的内存中.Qiling就把这个过程简单化了,它能够按照
文件格式正确映射可执行文件。这在配合IDA等软件做分析时很方便。

尽管可能想要一个框架一把梭,自动化把所有平台都模拟起来不太现实,毕竟IOT这块还有许多硬件
特定相关的API。但是通过qiling至少已经能把起步的一些轮子问题解决了,剩下就能专注去处理
一些硬件特定问题也方便。

基于Qiling做二进制fuzz

Fuzz是目前自动化测试比较流行的方法,白盒的Fuzz可以直接用一些现成的框架做测试。但是正对二进制

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值