LLMs are All You Need? Improving Fuzz Testing for MOJO with Large Language Models

该文章提出了首个针对MOJO语言的零样本学习环境下的LLM驱动模糊测试框架MOJOFuzzer,解决了MOJO缺乏测试框架和LLM训练语料导致的模型幻觉问题,显著提升了测试有效性并发现了13个未知漏洞。

一、文章主要内容总结

  1. 研究背景
    • MOJO作为融合Python易用性与C/C++效率的AI编程语言,虽能提升AI模型扩展性,但缺乏成熟测试框架和LLM训练语料。
    • 现有LLM模糊测试工具依赖大量领域数据,在MOJO这类新兴语言的零样本场景中,易生成语法正确但语义错误的代码,导致测试效果差。
  2. MOJOFuzzer框架设计
    • 初始化阶段:从MOJO官方GitHub和文档收集数据,清洗后得到约300个漏洞报告和1500个语法样本,用于构建提示库(Prompt Bank)和种子库(Seed Bank),并采用CoT和角色提示技术优化提示质量。
    • 变异阶段:基于变异评分(API调用数+代码复杂度)将种子分为高、低优先级,分别执行半变异(代码级修改)和全变异(提示级修改),提升测试多样性。
    • 微调阶段:分两阶段微调LLAMA2 13B模型,先学习MOJO语法规则,再学习历史漏洞模式,减少模型幻觉。
  3. 实验结果
    • 性能指标:MOJOFuzzer的API覆盖率达77
Mojo编程实战八:泛型与编译期元编程 本章系统讲解Mojo的泛型与编译期元编程,核心是通过方括号[]实现类型与编译期值参数化,结合comptime、where约束、conforms_to及std.reflection,在编译期完成类型检查、代码生成与结构解析。关键在于区分[](编译期)与()(运行时),确保零运行成本的单态化,实现“一份代码、多类实例、性能如手写”。虽无宏,但组合已足够构建高效通用库,如序列化、调试打印等。 阅读详情

相关推荐

Mojo编程实战五:错误处理与 Optional

Mojo将错误设计为“返回值”而非栈展开异常,实现热路径零开销。函数需显式声明raises,否则编译报错,强制错误处理。通过try/except/finally捕获错误,支持自定义struct+Writable错误类型,提升可读性。Optional[T]处理“值可能不存在”的场景,配合map、and_then等链式操作,避免空指针。三类风格各司其职:意外失败用raises,正常缺失用Optional,仅在FFI中使用错误码。整体强调静态安全与性能平衡,代码更清晰、可维护性更强。

canfeit的专栏 745

Mojo编程实战七:trait 与接口

本章系统讲解Mojo的trait机制,作为其多态与代码复用的核心。trait定义契约:包含必需方法(...)、默认方法、关联类型(associatedtype)、编译期值(comptime)及共享常量。实现通过在struct后括号中声明conformance完成,无独立impl块,遵循“显式声明、全有或全无”原则。支持refine(细化契约)与&组合(多重能力),通过where实现条件约束,conforms_to进行编译期判断,v1.2新增where...else和notTrait提升可读性。内置2

canfeit的专栏 300

Mojo编程实战四:控制流与函数

本章系统讲解Mojo控制流与函数,涵盖if/elif/else、while、for/range及break/continue的使用,强调条件必须为Bool,range含头不含尾。引入v1.2新特性match/case,支持字面量、or-pattern、guard、通配符及元组/列表解构,提升多路分支可读性与安全性。函数仅用def定义,参数必标类型,返回值需显式标注,且默认不抛错(需抛时加raises)。掌握默认参数、关键字参数、/与*限定、可变参数、out命名返回与lambda表达式。注重函数文档编写,通过

canfeit的专栏 424

Mojo编程实战二:环境搭建与工具链

本章系统指导在macOS、Linux及WSL2上安装Mojo 1.2.0,推荐使用uv或pixi进行项目级环境管理,避免全局污染。明确区分MojoSDK(基础编译工具)与MAXSDK(AI加速依赖),仅在涉及GPU算子或模型部署时安装max[all]。掌握mojoCLI八大命令:run、build、repl、debug、precompile、format、doc、demangle,理解其AOT编译本质及输出行为。通过HelloWorld与多文件包实践,掌握包结构规范(含__init__.mojo)、相对导入

canfeit的专栏 698

Mojo编程实战九:所有权与内存管理

Mojo摒弃垃圾回收,通过编译期所有权机制实现零成本内存安全。核心是六类参数约定:imm(不可变引用)、mut(独占可变引用)、var(取得所有权)、ref(灵活引用)、out(未初始化入参)、deinit(析构)。使用^显式转移,遵循“真转移、隐式拷贝、临时值直接转移”三条路径。默认结构体仅Movable,避免意外深拷贝;需手动实现move与copy构造器处理资源。mut具独占性,防止遍历中修改容器;实验性interiororigins防范扩容后悬空。相比Rust,Mojo简化调用语法、小类型寄存器传参、

canfeit的专栏 368

「文智助手」全场景办公AI助理AI+OPC全流程实践方案(大赛作品)

「文智助手」全场景办公AI助理AI+OPC全流程实践方案(大赛作品)

jks212454的博客 299

船载 OpenHarmony AIS 航海工作台:告警与防碰撞预警系统

船载OpenHarmony AIS航海工作台的告警与防碰撞系统,集成十余类告警(超速、偏航、会遇、SOS等),通过网格空间索引实现高效邻近判定,保障实时性。告警管理器统一调度规则、去重、通知与日志,支持悬浮球、语音、跑马灯、弹窗多渠道触达,确保航行安全。SOS紧急通道独立运行,避免干扰。系统设计强调性能优化与多场景适配,为航海安全提供核心支撑。

专注于计算机研发知识和资讯分享 193

ESP32之 ESP-IDF + Clion 开发环境搭建(二)—— Linux版

本文介绍了 Linux 下,使用Clion IDE 用官方 ESP-IDF 开发包进行 ESP32 开发的环境搭建

Augtons 的博客 6098

H3C模拟器HCL防火墙路由模式主备配置实验

摘要:本文详细介绍了网络拓扑规划与设备配置方案。运营商仅提供一个接口地址,通过虚IP技术实现双防火墙高可用部署:主备防火墙分别配置10.20.10.1/29和10.20.10.2/29作为实际上联地址,共享10.10.10.2/24虚IP;下联配置172.168.10.0/24网段,核心交换机配置VLAN接口及192.168.10.1、192.168.20.1两个下联接口。文章包含运营商路由器、防火墙(HA配置、VVRP设置)和核心交换机的具体命令行配置步骤,并强调需进行主备切换验证。整个方案实现了单运营商

LQ的博客 1123

SAP增强实施-第四代显式和隐式增强技术介绍

概念介绍 SAP第四代增强- Enhancement-Point,分为2种显式增强和隐式增强,显式增强就是手动加入到程序中的Enhancement options,隐式增强就是系统内置的Enhancement options。 第四代增强其实是第三代上的加强,都属于面向对象语言的接口技术的应用,但第四代增强使SAP增强实施更具灵活性,四代增强可以直接在源代码里面写增强了代码了,输入参数也不像 二代...

weixin_40672823的博客 7959

DP3(3D Diffusion Policy)算法详解:从点云感知到扩散动作生成

DP3 的全称是:DP3 = 3D Diffusion Policy\boxed{\text{DP3 = 3D Diffusion Policy}}DP3 = 3D Diffusion Policy​对应论文题目是:3D Diffusion Policy: Generalizable Visuomotor Policy Learning via Simple 3D Representations该工作发表于 Robotics: Science and Systems(RSS)2024。DP3 是一种面向机器

u013250861的博客 356

word2vector入门教程

摘要: 网上已经有许多对w2v的介绍了,这里只是做一个简单的概括。下面这篇文章我认为是关于W2V写的比较好的文章,读者有兴趣可以先参考一下: w2v参考文章1 另外一篇是关于Skip-Gram和CBow的介绍。 Skip-Gram&CBOW 逻辑比较清晰的综述文章: 综述文章 数学原理很清晰很短的一篇文章(也有关于负采样的简单说明) 参考文章 1.什么

SCUT_Sam 1万+

【目标跟踪】ECO算法论文阅读:ECO: Efficient Convolution Operators for Tracking

这里所指的训练集是指保存了每一帧的跟踪结果的训练集,也就是说,每一次进行model update的时候,要用在这一帧之前所有跟踪到的样本。那么随着视频越来越长,这个训练集就会越来越大。因为当目标被遮挡或者丢失的时候,比较新的这些样本本身就是错的,那么模型很容易有model drift,就是被背景或者错误的目标污染,导致跟踪结果出错。如下图所示,Baseline是传统的训练集,每更新一帧就加一个进来,那么连续的数帧后训练集里面的样本都是高度相似的,即容易遗忘前面的样本,且容易对最近的若干帧样本过拟合。

qq_43799400的博客 2616

内网渗透(二)之基础知识-工作组介绍

在一个大型单位里,可能有成百上千台计算机互相连接组成局域网,它们都会列在"网络"(网上邻居)内。如果不对这些计算机进行分组,网络的混乱程度是可想而知的 为了解决这一问题,产生了工作组( Work Group)这个概念。将不同的计算机按功能(或部 门)分别列入不同的工作组,例如技术部的计算机都列入"技术部"工作组、行政部的计算机都 列入"行政部"工作组。要想访问某个部门的资源,只要在"网络"里双击该部门的工作组名 就可以看到该部门的所有计算机了。相比不分组的情况,这样的情况有序得多(尤其对大型局域网来说)。

把自己活成一道光,因为你不知道,谁会借着你的光,走出了黑暗。请保持心中的善良,因为你不知道,谁会借着你的善良,走出了绝望。请保持你心中的信仰,因为你不知道,谁会借着你的信仰,走出了迷茫。请相信自己的力量,因为你不知道,谁会因为相信你,开始相信了自己.... 1219

垂类大模型 研发方向与具体方案调研

领域知识库加上通用大模型,针对通用大模型见过的知识比较少的问题,利用向量数据库等方式根据问题在领域知识库中找到相关内容,再利用通用大模型强大的summarization和qa的能力生成回复,完成本次垂直大模型研发。目前很多企业希望将大模型的能力应用到企业内部当中,但很多通用大模型只是一个预训练模型,其所能回答的知识主要来源于互联网上公开的通用知识库,对于部分垂直领域和企业内部的私有知识库的问答,给出的回答。:垂类大模型的效果与底座性能息息相关,研发垂类大模型第一步就是确定开源大模型解决方案。

风吹落叶的博客 3330

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: Large Language Models for Imbalanced Classification: Diversity makes the difference
下一篇: The Ethics Engine: A Modular Pipeline for Accessible Psychometric Assessment of Large Language Model
UnknownBody
博客等级 码龄16年 5601粉丝 4739原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UnknownBody

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值