当前位置: 首页 > news >正文

AFLNET lightftp项目报错解决方法

在学习AFLNET的时候,本人尝试对示例项目中的lightftp进行fuzz,而后出现如下报错:

AFLNet - the states hashtable should always contain an entry of the initial state

在github项目issue里看到了有人的问题和我一摸一样,Stack Overflow里也有人问题和我相同,但是始终没有找到解决办法:
在这里插入图片描述

作者的建议是去看一下AFLNET和服务端通信的流量是不是出什么问题了,于是用tcpdump截取流量查看了一下,的确发现了问题,我的种子文件是一段和lightftp服务端正常通信的流量:
在这里插入图片描述

但是抓取到的AFLNET与server的流量如下:
在这里插入图片描述

连接上服务端之后给出的信息不是ready二十表示连接已达到最大限制数量,所以导致没有任何有效状态返回给AFLNET,最后AFLNET爆出上图所示的错误。

随后在fftp.conf文件中找到最大登录用户数量限制:
在这里插入图片描述
默认为10,按理来说应该是够的,改成一百之后试了一下,错误仍然存在,没有得到解决。

于是阅读了一下lightftp的源码,查看其中的ftpserver.c文件:
在这里插入图片描述

通过搜索报错信息找到这里,然后发现应该是rv!=0导致的报错,后来增加了一句调试代码之后发现只打印了一次,那么就意味着不是maxuser不够用,而是出现了其他问题导致rv不是0,然后break之后执行了patch进去的两行代码,导致程序直接退出了。所以尝试将这两句注释掉

在这里插入图片描述
但是执行之后还是不行,此时发现,如果自己开一个server,然后去启动AFLNET是可以跑得,界面如下:
在这里插入图片描述

但是仍然有问题,total path那里一直是1,也就是说虽然AFLNET和服务端交互了,但是由于是自己启的服务端,所以并没有任何的覆盖率反馈和路径检测,虽然从启动的服务端能够看出来的确在fuzz,但是效率必定很差,并且能否检测出crash也说不好。继续对lightftp源码进行调试,既然问题出在pthread_create的返回值上,那么就将其返回值记录下来看看,继续对源码进行如下修改:
在这里插入图片描述

然后去查看log,发现返回值一直是11,并不是0,11表示的是线程已满,不能再继续新建线程,按理来说这种报错应该去pthread_join,但是对于作者给出的patch能够看出来,显然我们希望的形式是这个server每执行一次就关闭一次,所以按理来说这里的线程应该只有main里的一个和ftpmain里的一个,也就是最多两个线程才对,既然能走到这里,可以确定的是main里的线程是正确创建了的,为什么fftp这个程序连两个线程都创建不起来呢?

后来猜测也许和AFLNET的运行机制有关,AFLNET会通过fork的形式启动fftp,也就是服务端,猜想会不会是fork出来的进行对线程数量以后特殊要求呢?

既然如此,反正我们每次也只需要一个线程,那干脆将ftpmain里的线程去掉,直接去调用ftp_client_thread,不通过线程的方式,于是将源码修改成下面的形式:
在这里插入图片描述

这里注意已经将之前作者的patch又改回来了,即原作者的patch文件不作任何修改。

然后再去启动AFLNET,此时并不需要我们额外手动去开启服务端,直接就可以正常运行了

在这里插入图片描述
可以看到除了有些慢之外一切都已经正常了,并且也生成了较为漂亮的状态转换图:

在这里插入图片描述

看到这里其实已经明白,在使用AFLNET的时候无论是在fuzz ftp协议还是dns协议还是其他什么,出现开头那种报错的原因,很有可能是服务端采用了多线程的工作方式。

相关文章:

AFLNET lightftp项目报错解决方法

在学习AFLNET的时候,本人尝试对示例项目中的lightftp进行fuzz,而后出现如下报错: AFLNet - the states hashtable should always contain an entry of the initial state 在github项目issue里看到了有人的问题和我一摸一样,Stack Overflow里…...

av 146 003

121. 团队章程的目标是什么? A. 使团队正规化,以便能够清楚地了解资源分配和参与情况 B. 创造一个团队可以自我管理和自我指导的环境 C. 创造一个环境,使团队成员能够尽其所能地工作 D. 创造一种团队归属感,促进包容性和协作性的行为 12…...

干了1年“点点点”,自己辞职了,下一步是继续干测试还是转开发?

最后后台有个粉丝向我吐槽,不知道怎么选择了....下面就他的情况说说怎么选择? 目前已经提桶跑路,在大工厂里混了半年初级低级功能测试经验,并没有什么用。测试培训班来的。从破山村贫困户贫困专项出去的,学校上海的。…...

国产技术迎来突破,14nm芯片横空出世,低代码也有好消息

芯片,被称为工业时代的“粮食”,小到手机手环,大到飞机轮船,几乎各个行业都不离开芯片的支持,其重要性不言而喻。而我国在这一领域一直较为薄弱。 一、“芯片之路坎坷” 由于国内半导体芯片市场底子薄弱、没有主动权…...

使用clickhouse-backup工具备份clickhouse数据库

工具官网:https://github.com/AlexAkulov/clickhouse-backup/dockerhub工具官网:https://hub.docker.com/r/alexakulov/clickhouse-backup注意:这个工具只支持MergeTree 系列表引擎一、clickhouse在容器外的备份和恢复若clickhouse装在容器外…...

python cartopy绘制扇形区域图/cartopy绘制北极部分区域

问题 当绘图时,往往并不需要绘制整块区域,而是想聚焦于局部地区,此时我们需要绘制扇形图。 在cartopy中,只提供普通正方形的框架,如果我们需要其他,边界,需要自己去绘制,最常见的是…...

如何设置股票接口版交易软件的指标涨跌家数?

如何设置股票接口版交易软件指标涨跌家数?今天小编就以通达信为例给大家介绍一下,很多人其实不知道通达信里面有个很厉害的股票情绪的指标,叫做通达信涨跌家数,打开在通达信软件k线界面,然后输入880005就可以找到了。下…...

C++之lambda函数(匿名函数)

lambda函数简介lambda函数是C11标准新增的语法,也称为lambda表达式或匿名函数。lambda函数的特点是:距离近、简洁、高效和功能强大。优点声明式编程风格:就地匿名定义目标函数或函数对象,有更好的可读性和可维护性。简洁&#xff…...

WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第四步-模块的功能注释)

1写在前面 前面我们用WGCNA分析得到多个模块,其中有一些模块和我们感兴趣的表型或者临床特征是相关的。🥳 接着就是要做模块的富集分析了,帮助我们了解这些模块的基因都有哪些已知的功能,涉及到哪些通路,在哪些疾病中最…...

如何看待年轻人躺平式生活观?

theme: smartblue 如何看待年轻人躺平式生活观? 躺平:网络流行词。指无论对方做出什么反应,你内心都毫无波澜,对此不会有任何反应或者反抗,表示顺从心理。另外在部分语境中表示为:瘫倒在地,…...

JS 设计模式 - 怎么让你的代码提示一个档次

设计模式是我们在解决一些问题的时候 ,针对特定的问题给出的简介并且优化的处理方案 这篇文章说提及到的 JavaScript 设计模式将围绕着封装方法类来展开叙述 构造器模式 构造器模式本质就是我们平常在编码中常用的封装方法,重复利用构造函数 // 这是…...

遮挡贴图(Occlusion Map)和微表面贴图(Microsurface Map)

遮挡贴图(Occlusion Map) 在3D图形学中,遮挡(Occlusion)是指光被物体挡住。即便是在PBR中,环境光在某些应该被遮挡的地方,也会以古怪的方式被反射。遮挡贴图(Occlusion Map&#xff…...

【Vue】基本交互指令

Vue el挂载点 <div id"app">{{message}} </div> <script>var app new Vue({el:"#app",data:{message:"hello"}}) </script>Vue实例的作用范围&#xff1a;管理el选项命中的元素及其内部的后代元素使用其他的选择器&a…...

MySQL 中的 distinct 和 group by 哪个效率更高?

结论先说大致的结论&#xff08;完整结论在文末&#xff09;&#xff1a;在语义相同&#xff0c;有索引的情况下group by和distinct都能使用索引&#xff0c;效率相同。在语义相同&#xff0c;无索引的情况下&#xff1a;distinct效率高于group by。原因是distinct 和 group by…...

Spring 框架源码(六) Bean的生命周期全流程源码解析

Spring框架作为Java王国的地基&#xff0c;我觉得它包含了很多精妙的设计&#xff0c;例如Bean工厂设计、Bean的生命周期、tx、aop、web、mvc等&#xff0c;最核心基本的Bean设计是Spring 的框架的灵魂&#xff0c;本文就Bean的生命周期全流程做源码程度上的解析&#xff0c;欢…...

运维服务商低成本提升服务质量解决方案

在信息化高速发展的今天&#xff0c;网络建设的重要性不言而喻&#xff0c;更多客户选择将运维服务外包或托管给运维服务商&#xff0c;市场需求愈大竞争压力愈大&#xff0c;想要脱颖而出势必要优化自身提高服务质量&#xff0c;最好是低成本、大提升&#xff0c;nVisual助力渠…...

Raft 一致性算法

Raft Raft提供了一种在计算系统集群中分布状态机的通用方法&#xff0c;确保集群中的每个节点都同意一系列相同的状态转换。 一个Raft集群包含若干个服务器节点&#xff0c;通常为5个&#xff0c;这允许整个系统容忍2个节点的失效。每个节点处于以下三种状态之一&#xff1a; …...

驱动程序开发:基于EC20 4G模块自动拨号联网的两种方式(GobiNet工具拨号和PPP工具拨号)

目录一、EC20 4G模块简介二、根据移远官方文档修改EC20 4G模组驱动  1、因为EC20 4G模组min-pice接口其实就是usb接口&#xff0c;因此需要修改Linux内核源码drivers/usb/serial/option.c文件&#xff0c;如下图&#xff1a;  2、根据USB协议的要求&#xff0c;需要在drive…...

Web自动化测试——常见问题篇

文章目录一、什么是自动化测试二、为啥进行自动化测试&#xff08;优点&#xff09;三、Webdriver 的工作原理四、显示等待和隐式等待的区别五、什么样的项目适合做自动化六、自动化测试的流程七、如何分析生成的自动化测试报告一、什么是自动化测试 所谓的自动化测试就是使用…...

快速实现Modbus TCP转BACnet IP协议的方案

一、需求背景 BACnet是用于智能楼宇自控系统的主流通信协议&#xff0c;可用在暖通空调系统&#xff08;HVAC&#xff0c;包括暖气、通风、空气调节&#xff09;&#xff0c;也可以用在照明控制、门禁系统、火警侦测系统及其相关的设备。楼宇中的受控设备都通过BACnet协议连接到…...

大厂裁员潮下,软件人的“抗风险”能力清单

在当今科技行业&#xff0c;大厂裁员潮已成为不可忽视的现实。2025年至2026年间&#xff0c;多家头部企业为优化成本&#xff0c;纷纷缩减规模&#xff0c;导致软件测试从业者面临前所未有的职业挑战。裁员不仅源于经济压力&#xff0c;更反映了行业转型——基础手工测试正被自…...

FineBI连接MySQL实战:手把手教你从零搭建第一个学生数据分析看板

FineBI连接MySQL实战&#xff1a;从零构建学生数据分析看板 当教务系统的学生信息沉睡在MySQL数据库中时&#xff0c;FineBI能像魔法师一样将它们唤醒为生动的可视化图表。我曾为某高校搭建第一个招生分析看板时&#xff0c;仅用三小时就让校领导看到了历年录取数据的立体画像—…...

PyLink 实战技巧:从基础连接到高级调试

1. PyLink入门&#xff1a;从零搭建调试环境 第一次接触PyLink时&#xff0c;我也被各种专业术语弄得晕头转向。后来才发现&#xff0c;只要掌握几个关键步骤&#xff0c;就能快速搭建起嵌入式调试环境。PyLink本质上是个Python库&#xff0c;它像翻译官一样&#xff0c;把我们…...

免费降AI率和付费降AI率差距有多大?降论文ai率效果实测对比

免费降AI率和付费降AI率差距有多大&#xff1f;降论文ai率效果实测对比 “有没有免费的降AI率工具&#xff1f;” 这是毕业季被问得最多的问题之一。毕竟论文查重已经花了一笔钱&#xff0c;再加上降AI率的费用&#xff0c;对学生来说确实是一笔不小的开支。 但免费降AI率方案真…...

HunyuanVideo-Foley实战指南:FFmpeg后处理添加混响/均衡/压缩提升商用质量

HunyuanVideo-Foley实战指南&#xff1a;FFmpeg后处理添加混响/均衡/压缩提升商用质量 1. 引言&#xff1a;为什么需要音效后处理 在视频制作领域&#xff0c;专业级音效是提升作品质量的关键因素。HunyuanVideo-Foley生成的原始音效虽然已经具备良好的基础&#xff0c;但通过…...

不止于dhclient:深入理解Ubuntu网络初始化与127.0.0.1困局的系统级排查

不止于dhclient&#xff1a;深入理解Ubuntu网络初始化与127.0.0.1困局的系统级排查 当你在Ubuntu服务器上输入ifconfig&#xff0c;却发现除了lo接口外其他网卡全部"消失"&#xff0c;IP地址被锁定在127.0.0.1时&#xff0c;那种感觉就像被困在数字世界的孤岛。本文将…...

s2-pro多场景落地:法律文书语音宣读+重点条款强调音效添加

s2-pro多场景落地&#xff1a;法律文书语音宣读重点条款强调音效添加 1. 场景需求分析 在法律服务领域&#xff0c;文书宣读是一项高频且重要的需求。传统方式存在几个痛点&#xff1a; 人工宣读成本高&#xff1a;需要专业播音员录制&#xff0c;耗时耗力修改不便&#xff…...

终极OpenCV图像编解码实战指南:从模糊到清晰的格式选择技巧

终极OpenCV图像编解码实战指南&#xff1a;从模糊到清晰的格式选择技巧 【免费下载链接】opencv OpenCV: 开源计算机视觉库 项目地址: https://gitcode.com/gh_mirrors/opencv31/opencv OpenCV作为开源计算机视觉库&#xff0c;其强大的图像编解码能力是计算机视觉开发的…...

SDMatte抠图质量评估:Alpha Matte精度与PNG透明通道一致性

SDMatte抠图质量评估&#xff1a;Alpha Matte精度与PNG透明通道一致性 1. SDMatte模型概述 SDMatte是一款专注于高质量图像抠图的AI模型&#xff0c;特别擅长处理以下场景&#xff1a; 主体与背景的精细分离透明或半透明物体的提取复杂边缘的精修处理商品图片的背景去除 该…...

Qwen3-VL-8B快速原型开发:基于Typora风格输入实时生成图文并茂的技术文档

Qwen3-VL-8B快速原型开发&#xff1a;基于Typora风格输入实时生成图文并茂的技术文档 不知道你有没有过这样的经历&#xff1a;写一份技术方案或者产品文档&#xff0c;脑子里想法很多&#xff0c;但落到纸上就变得干巴巴的&#xff0c;总觉得缺几张图来说明&#xff0c;或者文…...