智能合约测试覆盖率终极指南:Slither 与 Manticore 实战

发布时间:2026/10/23 2:08:38

智能合约测试覆盖率终极指南:Slither 与 Manticore 实战 智能合约测试覆盖率终极指南Slither 与 Manticore 实战【免费下载链接】publicationsPublications from Trail of Bits项目地址: https://gitcode.com/GitHub_Trending/pu/publicationsTrail of Bits 的出版物仓库收录了 Slither 与 Manticore 的智能合约安全工具资料。本文用它们把智能合约测试覆盖率做实静态扫描加符号执行命令均可直接复制运行。一问题切入合约一旦部署到链上就无法修改一条没测过的分支就可能让整池资金归零。从公开审计复盘看大约八成问题并非代码写错而是路径根本没被验证过——测试欠的账最后都要用真金白银来还。所以上线前先别急着上链把测试覆盖率当成验收标准而不是加分项。二两种分析视角的分工维度Slither静态分析Manticore符号执行分析方式不执行代码解析 Solidity 语法与 SlithIR 中间表示用规则直接推断问题不跑真实交易用符号输入模拟 EVM沿所有可行路径穷举状态发现阶段编码、提交阶段秒级出结果编码后期与审计阶段分钟级擅长漏洞类型未初始化变量、危险调用模式、gas 浪费等表面问题整数溢出、重入、越权访问等需要跨函数推理的深层问题上手难度低一条命令即可中需理解状态与路径概念一句话记忆Slither 负责读代码Manticore 负责跑代码。前者快而广后者深而慢正好互补。![智能合约测试覆盖率视角安全与正确性的交集](https://raw.gitcode.com/GitHub_Trending/pu/publications/raw/89940dfbec07ad03b0989e67d78e84250765366b/presentations/Return to the 100 Acre Woods/security-now.png?utm_sourcegitcode_repo_files)三Slither 静态扫描3 条命令跑通git clone https://gitcode.com/GitHub_Trending/pu/publicationspip install slither-analyzerslither contracts/MyContract.sol跑完这条命令你会得到一组带严重等级的告警列表。它的核心能力有三点内置 20 检测器重入、未检查返回值、危险授权模式开箱即报给出 gas 优化建议标出浪费 gas 的存储模式提供 Python API一行from slither import Slither就能接进自己的工具链![智能合约测试覆盖率中的状态搜索contract Adder 的符号状态分支展开](https://raw.gitcode.com/GitHub_Trending/pu/publications/raw/89940dfbec07ad03b0989e67d78e84250765366b/presentations/Return to the 100 Acre Woods/statesearch.png?utm_sourcegitcode_repo_files)四Manticore 符号执行让测试用例自己长出来符号执行把函数参数当成未知数而不是具体数值。它遇到分叉时沿所有分支同时走每个方向都派一个影子分身分身身上记着走到这里需要的条件。当某条路径触发了断言失败Manticore 再把那组条件反解成具体输入——测试用例是自己长出来的。from manticore.ethereum import ManticoreEVM m ManticoreEVM() m.solidity_create_contract(MyContract.sol) m.report()对合约最常见的整数溢出、重入、越权访问符号执行给出的都是可复现的最小交易序列而不是一句模糊警告。![智能合约测试覆盖率工具对比模糊测试与符号执行](https://raw.gitcode.com/GitHub_Trending/pu/publications/raw/89940dfbec07ad03b0989e67d78e84250765366b/presentations/Return to the 100 Acre Woods/deniable-symbex.png?utm_sourcegitcode_repo_files)五把两者串进开发闭环编写合约本地编译通过后再谈分析用solc或框架的 build 命令先自检。静态扫描每个提交先跑slither .用它的结果圈出 public 且高危的函数清单。符号执行只对第 2 步圈出的关键函数写 Manticore 脚本集中算力穷举参数空间。CI 卡点把 Slither 接进 CI未过扫描的 PR 禁止合并同时定期导出扫描结果与符号执行报告对比未覆盖路径的变化。六新手最容易踩的 3 个坑坑 1误报泛滥。现象一跑 Slither 满屏告警分不清轻重。原因检测器按可能报不做上下文裁决。解法用--exclude参数过滤低价值检测器或对确认为误报的行加// slither-disable-next-line注释逐条豁免。坑 2符号执行跑不动。现象含循环或复杂调用的合约跑超时。原因可行路径随分支指数爆炸。解法用--depth参数限制探索深度先跑浅层看主路径再逐步加深。坑 3覆盖率无法量化。现象工具都跑了却说不出提升了多少。原因只看过报告没留基线。解法接入工具前后各记录一次分支覆盖率数字做对比并把未覆盖路径清单固定为回归检查项。Slither 管广度、Manticore 管深度两者接进 CI 之后智能合约测试覆盖率就从口号变成了每个 PR 都能验证的数字。想看得更深可以翻仓库里的原始资料Aave V3 安全审计报告、智能合约审计师入门指南 和 智能合约缺陷分析论文。【免费下载链接】publicationsPublications from Trail of Bits项目地址: https://gitcode.com/GitHub_Trending/pu/publications创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/23 2:03:34

Python Flask数据库集成:SQLite与MySQL的使用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 2:03:34

Nginx简介与应用场景:从原理到实战案例

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 3:03:40

同一批股票只有少数空值:如何区分个股停牌与行情接口异常

**一句话结论:**批量行情中少数标的为空,既可能是停牌或非交易日等合理情况,也可能是请求失败、权限问题或数据处理异常;应先核对请求和交易日,再单独重查标的,不能把所有空值统一补零或直接删除。 1. 为什…

2026/10/23 3:03:40

I2C——速度与占空比

如何选择速度?在STM32CubeMX中配置I2C时,我们会看到有以下速度选项,Standard和Fast(其实还有Fast plus,不过我这个是STM32F103ZET6,不支持),该如何选择?一般情况下&#…

2026/10/23 3:03:40

Linux 学习笔记(九):自动化构建神器 Make 与 Makefile

一、 为什么需要 Makefile?上一节学了 GCC 编译,但如果一个项目有几十个源文件,且每次只改了一个文件,手动敲 gcc 命令重新编译所有文件是非常低效的。Makefile 解决了两个大问题:把复杂的编译命令封装起来&#xff0c…

2026/10/23 3:03:40

文件定位、文件IO

标准io读写归纳总结fputs和fgets最常用文件定位fseek ftell rewindfseek若从末尾开始向后偏移,则偏移多少,系统自动补零多少示例:ftell示例:rewind示例:练习:复制文本文件内容数一个文件里面字母a~z共出现多…

2026/10/23 3:03:40

边缘AI进入建筑后,WiFi Halow技术帮集成商搞定带宽、距离和功耗

边缘AI正在改变数据在建筑里的流动方式,让建筑变得越来越智能。视频监控能实时认出人、车辆和异常活动;门禁系统能把身份验证、数据分析和自动反应结合起来;空调和供暖系统会根据房间里有没有人来调节能耗;环境传感器能在空气质量…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/23 0:02:26

Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战

说实话,这几年接触了不少想入门FPGA的朋友,如果你问哪个项目能一口气把Verilog的核心基本功串起来,我通常会推荐电子密码锁。这个项目看着不起眼,却把矩阵键盘扫描、按键消抖、状态机设计、动态显示刷新、外设控制这些数字逻辑里的…

2026/10/23 0:02:26

数据服务监控运维实战:从指标体系到告警治理与故障排查

周末凌晨两点,手机震了。第一反应是“数据服务挂了”。打开电脑看了下,果然,某张核心报表的数据产出时间已经超过SLA两小时,下游三个业务方连着发来问询。这种场景,做过大数据运维的人都不会陌生。数据服务的监控与运维…

2026/10/23 0:02:26

FreeRTOS任务通知实战详解:内核原理、API与避坑指南

裸机编程切到RTOS之后,任务之间的通信和同步永远是躲不开的坎。前面聊过队列、信号量、互斥锁、事件组,这次把FreeRTOS任务通知(Task Notification)单独拎出来讲透。原因很简单:任务通知是FreeRTOS里最容易用错、也最容…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑