SherlockChain:基于高级AI实现的智能合约安全分析框架

关于SherlockChain

SherlockChain是一款功能强大的智能合约安全分析框架,该工具整合了Slither工具(一款针对智能合约的安全工具)的功能,并引入了高级人工智能模型,旨在辅助广大研究人员针对Solidity、Vyper和Plutus智能合约执行安全分析。

核心功能

1、全面的漏洞检测:SherlockChain的检测器可以识别各种不同类型的漏洞,包括重入漏洞和无保护升级等高危安全问题;

2、AI驱动的安全分析:集成的人工智能模型提高了漏洞检测的精准度,为开发人员提供了高价值的安全实践建议;

3、无缝集成:SherlockChain支持与流行的开发框架(如Hardhat、Foundry和Brownie)无缝集成,使其易于融入现有的工作流程;

4、直观的分析报告:SherlockChain可以生成包含有清晰解释和代码段的详细报告,能够帮助开发人员快速理解和解决已发现的安全问题;

5、自定义分析:框架提供了灵活的API,允许用户编写自定义分析和检测器,并根据实际需求对SherlockChain进行自定义开发;

6、持续性监控:我们可以将SherlockChain集成到自己的CI/CD管道中,为智能合约代码库提供持续监控和警报服务;

AI驱动功能

1、智能漏洞优先级确认:人工智能模型分析检测到的漏洞上下文和潜在影响,为开发人员提供一个需要解决的问题优先级列表;

2、自动修复建议:人工智能组件会提供漏洞修复和代码修改方案,以解决已识别的漏洞,加快修复过程;

3、主动安全审计:SherlockChain的人工智能模型会持续监控目标代码库,主动识别新出现的威胁并提供预警信号;

4、自然语言交互:用户可以使用自然语言与SherlockChain进行交互,从而查询工具、请求特定分析并收到详细响应;

工具安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/0xQuantumCoder/SherlockChain.git

然后切换到项目目录中,执行安装脚本即可:

cd SherlockChainpip install .

工具使用

1、漏洞检测:--detect和--exclude-detectors选项允许用户指定要执行的漏洞检测器,包括内置的和AI驱动的检测器;

2、分析报告:--report-format、--report-output和各种--report-*选项可以控制分析报告的形式,支持以不同格式生成报告,例如JSON、Markdown和SARIF等;

3、过滤器:--filter-*选项可以对报告的问题根据严重性、影响程度、可信度和其他标准进行过滤;

4、AI集成:--ai-*选项允许用户配置和控制SherlockChain的AI功能,例如优先考虑高影响漏洞、启用特定的人工智能检测器和管理人工智能模型配置等;

5、与开发框架的集成:--truffle和--truffle-build-directory选项允许我们将SherlockChain集成到Truffle之类的流行开发框架中;

6、杂项:提供了用于编译智能合约、枚举检测器和自定义分析过程的附加选项;

下列命令可以查看工具的帮助选项:

sherlockchain --help

执行上述命令后,即可查看到SherlockChain框架可提供的全部参数选项以及对应的描述信息:

usage: sherlockchain [-h] [--version] [--solc-remaps SOLC_REMAPS] [--solc-settings SOLC_SETTINGS][--solc-version SOLC_VERSION] [--truffle] [--truffle-build-directory TRUFFLE_BUILD_DIRECTORY][--truffle-config-file TRUFFLE_CONFIG_FILE] [--compile] [--list-detectors][--list-detectors-info] [--detect DETECTORS] [--exclude-detectors EXCLUDE_DETECTORS][--print-issues] [--json] [--markdown] [--sarif] [--text] [--zip] [--output OUTPUT][--filter-paths FILTER_PATHS] [--filter-paths-exclude FILTER_PATHS_EXCLUDE][--filter-contracts FILTER_CONTRACTS] [--filter-contracts-exclude FILTER_CONTRACTS_EXCLUDE][--filter-severity FILTER_SEVERITY] [--filter-impact FILTER_IMPACT][--filter-confidence FILTER_CONFIDENCE] [--filter-check-suicidal][--filter-check-upgradeable] [--filter-check-erc20] [--filter-check-erc721][--filter-check-reentrancy] [--filter-check-gas-optimization] [--filter-check-code-quality][--filter-check-best-practices] [--filter-check-ai-detectors] [--filter-check-all][--filter-check-none] [--check-all] [--check-suicidal] [--check-upgradeable][--check-erc20] [--check-erc721] [--check-reentrancy] [--check-gas-optimization][--check-code-quality] [--check-best-practices] [--check-ai-detectors] [--check-none][--check-all-detectors] [--check-all-severity] [--check-all-impact] [--check-all-confidence][--check-all-categories] [--check-all-filters] [--check-all-options] [--check-all][--check-none] [--report-format {json,markdown,sarif,text,zip}] [--report-output OUTPUT][--report-severity REPORT_SEVERITY] [--report-impact REPORT_IMPACT][--report-confidence REPORT_CONFIDENCE] [--report-check-suicidal][--report-check-upgradeable] [--report-check-erc20] [--report-check-erc721][--report-check-reentrancy] [--report-check-gas-optimization] [--report-check-code-quality][--report-check-best-practices] [--report-check-ai-detectors] [--report-check-all][--report-check-none] [--report-all] [--report-suicidal] [--report-upgradeable][--report-erc20] [--report-erc721] [--report-reentrancy] [--report-gas-optimization][--report-code-quality] [--report-best-practices] [--report-ai-detectors] [--report-none][--report-all-detectors] [--report-all-severity] [--report-all-impact][--report-all-confidence] [--report-all-categories] [--report-all-filters][--report-all-options] [--report-all] [--report-none] [--ai-enabled] [--ai-disabled][--ai-priority-high] [--ai-priority-medium] [--ai-priority-low] [--ai-priority-all][--ai-priority-none] [--ai-confidence-high] [--ai-confidence-medium] [--ai-confidence-low][--ai-confidence-all] [--ai-confidence-none] [--ai-detectors-all] [--ai-detectors-none][--ai-detectors-specific AI_DETECTORS_SPECIFIC] [--ai-detectors-exclude AI_DETECTORS_EXCLUDE][--ai-models-path AI_MODELS_PATH] [--ai-models-update] [--ai-models-download][--ai-models-list] [--ai-models-info] [--ai-models-version] [--ai-models-check][--ai-models-upgrade] [--ai-models-remove] [--ai-models-clean] [--ai-models-reset][--ai-models-backup] [--ai-models-restore] [--ai-models-export] [--ai-models-import][--ai-models-config AI_MODELS_CONFIG] [--ai-models-config-update] [--ai-models-config-reset][--ai-models-config-export] [--ai-models-config-import] [--ai-models-config-list][--ai-models-config-info] [--ai-models-config-version] [--ai-models-config-check][--ai-models-config-upgrade] [--ai-models-config-remove] [--ai-models-config-clean][--ai-models-config-reset] [--ai-models-config-backup] [--ai-models-config-restore][--ai-models-config-export] [--ai-models-config-import] [--ai-models-config-path AI_MODELS_CONFIG_PATH][--ai-models-config-file AI_MODELS_CONFIG_FILE] [--ai-models-config-url AI_MODELS_CONFIG_URL][--ai-models-config-name AI_MODELS_CONFIG_NAME] [--ai-models-config-description AI_MODELS_CONFIG_DESCRIPTION][--ai-models-config-version-major AI_MODELS_CONFIG_VERSION_MAJOR][--ai-models-config-version-minor AI_MODELS_CONFIG_VERSION_MINOR][--ai-models-config-version-patch AI_MODELS_CONFIG_VERSION_PATCH][--ai-models-config-author AI_MODELS_CONFIG_AUTHOR][--ai-models-config-license AI_MODELS_CONFIG_LICENSE][--ai-models-config-url-documentation AI_MODELS_CONFIG_URL_DOCUMENTATION][--ai-models-config-url-source AI_MODELS_CONFIG_URL_SOURCE][--ai-models-config-url-issues AI_MODELS_CONFIG_URL_ISSUES][--ai-models-config-url-changelog AI_MODELS_CONFIG_URL_CHANGELOG][--ai-models-config-url-support AI_MODELS_CONFIG_URL_SUPPORT][--ai-models-config-url-website AI_MODELS_CONFIG_URL_WEBSITE][--ai-models-config-url-logo AI_MODELS_CONFIG_URL_LOGO][--ai-models-config-url-icon AI_MODELS_CONFIG_URL_ICON][--ai-models-config-url-banner AI_MODELS_CONFIG_URL_BANNER][--ai-models-config-url-screenshot AI_MODELS_CONFIG_URL_SCREENSHOT][--ai-models-config-url-video AI_MODELS_CONFIG_URL_VIDEO][--ai-models-config-url-demo AI_MODELS_CONFIG_URL_DEMO][--ai-models-config-url-documentation-api AI_MODELS_CONFIG_URL_DOCUMENTATION_API][--ai-models-config-url-documentation-user AI_MODELS_CONFIG_URL_DOCUMENTATION_USER][--ai-models-config-url-documentation-developer AI_MODELS_CONFIG_URL_DOCUMENTATION_DEVELOPER][--ai-models-config-url-documentation-faq AI_MODELS_CONFIG_URL_DOCUMENTATION_FAQ][--ai-models-config-url-documentation-tutorial AI_MODELS_CONFIG_URL_DOCUMENTATION_TUTORIAL][--ai-models-config-url-documentation-guide AI_MODELS_CONFIG_URL_DOCUMENTATION_GUIDE][--ai-models-config-url-documentation-whitepaper AI_MODELS_CONFIG_URL_DOCUMENTATION_WHITEPAPER][--ai-models-config-url-documentation-roadmap AI_MODELS_CONFIG_URL_DOCUMENTATION_ROADMAP][--ai-models-config-url-documentation-blog AI_MODELS_CONFIG_URL_DOCUMENTATION_BLOG][--ai-models-config-url-documentation-community AI_MODELS_CONFIG_URL_DOCUMENTATION_COMMUNITY]

许可证协议

本项目的开发与发布遵循AGPL-3.0开源许可协议。

项目地址

SherlockChain:【GitHub传送门】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/362316.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第六十九:iview 表格汇总怎么拿到传过来的数据,而不是自动累加,需要自定义方法

话不多少,先看官方解释 我这个简单,所以所有说明都在图上了 handleSummary({ columns, data }){console.log(columns, data)let sums {}columns.forEach((item,index)>{const key item.key;console.log("key",item)if(index 0){console.…

煤安防爆手机为什么能在煤矿井下使用

煤安防爆手机之所以能在煤矿井下使用,是因为它们经过特殊设计,符合严格的防爆安全标准,能够防止电火花引发爆炸,同时具备防尘防水、抗冲击等特性,确保在恶劣的煤矿环境中稳定可靠地运行,为工作人员提供安全…

【FFmpeg】avformat_open_input函数

【FFmpeg】avformat_open_input函数 1.avformat_open_input1.1 初始化输入格式(init_input)1.1.1 文件路径判断格式(av_probe_input_format2)1.1.1.1 格式探测(read_probe)1.1.1.2 扩展匹配检查&#xff08…

iOS 其他应用的文件如何在分享中使用自己的应用打开

废话少说 一、第一步:先配置好plist文件 右击info.plist如下图文件打开 根据自己需要配置支持的文件类型,也可使用property List中配置,一样的 其他的文件可是参考文档:System-Declared Uniform Type Identifiers 可复制的代码&am…

【前端】[vue3] [uni-app] 组件样式击穿:deep

我是在开发uni-app时测试的思路,大家可以借鉴一下。 我这边测试的是uni组件,但是我觉得即便你用element-plus之类的,样式击穿的思路都相同。 我自定义了一个全局样式scss文件,并引入到了项目中。(如图) 利用vue3 中的 deep 方式…

Java使用poi生成word文档的简单实例

Java使用poi生成word文档的简单实例 生成的效果如下: 用到的poi的简单的知识 新建一个word对象 //新建文件 XWPFDocument document new XWPFDocument();新建段落以及文字样式 //创建段落 XWPFParagraph paragraph document.createParagraph(); paragraph.se…

收银系统源码-开源收银系统-私有化独立部署

千呼新零售2.0-支持OEM私有化独立部署和全开源源码 千呼新零售2.0-支持OEM私有化独立部署和全开源源码 千呼新零售2.0-支持OEM私有化独立部署和全开源源码 千呼新零售2.0-支持OEM私有化独立部署和全开源源码 如需了解请私信交流

电脑系统重装怎么操作?分享四个win10重装系统方法

“我遇到了一些笔记本电脑的问题,别人告诉我解决这个问题需要重新安装Win10电脑系统。但我不记得我把光盘放在哪里了,我能否在不丢失文件的情况下重新安装操作系统?电脑系统重装怎么操作?”虽然电脑自带系统中有多种方法可供选择&…

【最佳实践】前端如何搭建自己的cli命令行工具,让自己编码的时候如虎添翼

作为前端开发人员,搭建自己的前端CLI工具是一个有趣且有意义的事情。以下是一篇详细的教程,包括使用场景和案例。 使用场景 假设你是一个前端团队的一员,需要频繁地在不同的项目中执行一些标准化的任务,比如: 根据模…

【02-02】SpringMVC基于注解的应用

一、请求处理 1、常用注解 RequestMapping 作用:用来匹配客户端发送的请求(用来处理URL映射,将请求映射到处理方法中),可以在类或者方法上使用。 用在类上,可以将请求模块化,避免请求方法中的…

前端 Array.sort() 源码学习

源码地址 V8源码Array 710行开始为sort()相关 Array.sort()方法是那种排序呢&#xff1f; 去看源码主要是源于这个问题 // In-place QuickSort algorithm. // For short (length < 22) arrays, insertion sort is used for efficiency.源码中的第一句话就回答了我的问题…

微软发布Phi-3系列语言模型:手机端的强大AI助手

大模型&#xff08;LLMs&#xff09;在处理复杂任务时展现出的巨大潜力&#xff0c;但却需要庞大的计算资源和存储空间&#xff0c;限制了它们在移动设备等资源受限环境中的应用。微软公司最新发布的Phi-3系列语言模型&#xff0c;以其卓越的性能和小巧的体积&#xff0c;打破了…

FairGuard游戏加固无缝兼容 Android 15 预览版

2024年6月25日&#xff0c;谷歌发布了 Android 15 Beta 3 &#xff0c;作为Android 15 “平台稳定性”的里程碑版本&#xff0c;谷歌建议所有应用、游戏、SDK、库和游戏引擎开发者都将“平台稳定性”里程碑版本作为规划最终兼容性测试和公开发布的目标。 安卓开发者博客提供的版…

积分的可视化

积分的可视化 flyfish 考虑平方根函数 f ( x ) x f(x) \sqrt{x} f(x)x ​&#xff0c;其中 x ∈ [ 0 , 1 ] x \in [0, 1] x∈[0,1] 。在区间 [ 0 , 1 ] [0, 1] [0,1] 上&#xff0c;函数 f f f 下方的面积是指函数 y f ( x ) y f(x) yf(x) 的图像与 x x x 轴之间的部…

【微服务网关——中间件实现】

1.中间件的意义 避免成为if狂魔提高复用、隔离业务调用清晰、组合随意 2.实现原理 中间件一般都封装在路由上&#xff0c;路由是URL请求分发的管理器中间件选型 基于链表构建中间件 基于责任链的实现缺点&#xff1a;实现复杂&#xff0c;调用方式不灵活 使用数组构建中间件 控…

cad怎么导出为图片?分享四种导出方法

cad怎么导出为图片&#xff1f;在工程设计、建筑设计、机械设计等领域&#xff0c;CAD图纸的编辑和分享是一项日常工作。然而&#xff0c;如何将CAD图纸高效、准确地导出为图片格式&#xff0c;一直是设计师们关注的焦点。今天&#xff0c;就为大家推荐四款强大的CAD导出图片软…

连接Huggingface报requests.exceptions.SSLError错误

最近在学习使用 SHAP 算法解释 BERT 模型的输出结果&#xff0c;然而在从 Huggingface 上导入模型和数据集的过程中出现了网络连接相关的错误&#xff0c;本文用于记录错误类型和解决错误的方法。 1 代码示例 SHAP 官方展示的代码如下&#xff1a; import datasets import nu…

企业微信内嵌H5项目接入聊天功能

产品需求是,在列表中把符合条件的列表接入聊天功能,以下是详细步骤: 1.引入企业微信 <script src"https://res.wx.qq.com/wwopen/js/jsapi/jweixin-1.0.0.js"></script> 2.获取wx签名(必须要) /*** 获取wx签名**/ export function getWxJsApi(data) {r…

如何在信创领域中做好防泄露

随着信息技术的迅猛发展&#xff0c;数据安全和防泄露成为了企业和政府机构面临的重大挑战。在信创&#xff08;Creative and Innovative Intelligent Products&#xff09;领域中&#xff0c;沙箱技术以其独特的隔离和保护机制&#xff0c;成为了防泄露的关键手段之一。 一、沙…

上古世纪战争台服官网地址+台服预约+预创建角色教程

上古世纪战争台服上线啦&#xff0c;在《上古世纪战争》中&#xff0c;通过主要势力和地区&#xff0c;剧情和角色可以想起原作。《上古世纪战争》的主要背景为&#xff0c;原大陆消失之后&#xff0c;完成移民的种族们定居在诺伊大陆之后遇到的多个势力之间的冲突。同时&#…