Linux系统下AFL++ IoT固件模糊测试失败求助
解决AFL++ IoT固件模糊测试中的core_pattern错误问题
修正环境变量传递方式:
用sudo执行命令时,普通用户的环境变量不会自动继承,之前添加的AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES没生效就是这个原因。试试以下两种写法:- 直接在sudo后声明环境变量:
sudo AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1 QEMU_LD_PREFIX=./squashfs-root/ ../AFLplusplus/afl-fuzz -Q -i input-xml/ -o output-xml/ -- ./squashfs-root/usr/sbin/xmlparser1 -f @@ - 先导出变量再用
-E参数保留环境变量:export AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1 sudo -E QEMU_LD_PREFIX=./squashfs-root/ ../AFLplusplus/afl-fuzz -Q -i input-xml/ -o output-xml/ -- ./squashfs-root/usr/sbin/xmlparser1 -f @@
- 直接在sudo后声明环境变量:
直接修改core_pattern(支持临时/永久生效):
如果不想用忽略崩溃的环境变量,直接修改内核参数更彻底:- 临时生效(重启后失效):
sudo sh -c 'echo core > /proc/sys/kernel/core_pattern' - 永久生效:
编辑/etc/sysctl.conf文件,添加一行:
然后执行kernel.core_pattern = coresudo sysctl -p让配置立即生效。
- 临时生效(重启后失效):
检查文件权限:
确保固件文件系统和目标二进制有足够权限,避免AFL++无法正常运行目标程序:sudo chmod -R 755 ./squashfs-root/
内容的提问来源于stack exchange,提问作者saman naz
相关产品推荐
相关产品推荐

