weggli —— C/C++ 代码库语义搜索工具
weggli 是一个快速且强大的 C 和 C++ 代码库语义搜索工具,旨在帮助安全研究人员识别大型代码库中的有趣功能。
weggli 根据用户提供的查询对抽象语法树执行模式匹配。它的查询语言类似于 C 和 C++ 代码,可以轻松将有趣的代码模式转换为查询。
weggli 受到 Semgrep、Coccinelle、joern 和 CodeQL 等工具的启发,但做出了一些不同的设计决策:
-
C++ 支持:weggli 对现代 C++ 构造提供一流的支持,例如 lambda 表达式、基于范围的 for 循环和 constexprs。
-
Minimal setup:weggli 应该对你会遇到的大多数软件开箱即用。weggli 不需要构建软件的能力,并且可以使用不完整的源或缺少的依赖项。
-
Interactive : weggli 是为交互式使用和快速查询性能而设计的。大多数情况下,weggli 查询会比 grep 搜索快。目标是启用交互式工作流,可以在代码审查和查询创建/改进之间快速切换。
-
Greedy:weggli 的模式匹配旨在为特定查询找到尽可能多的(有用的)匹配项。虽然这会增加误报的风险,但它简化了查询创建。例如,查询
$x = 10;
将匹配赋值表达式 (foo = 10;
) 和声明 (int bar = 10;
)。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 深入理解云原生下自适应限流技术原理与应用
导语 高并发与服务负载是后端领域关系最为密切的两个指标。伴随着流量的升高,后端服务有效应对负载、过载的能力称之Scalability(可伸缩性)。长期以来,基于流量阈值配置的应对方案已经在大规模云原生场景下力不从心。同时,也对自适应流量控制方案(Adjective Load Control)提出了需求。本篇文章将聚焦于后端服务负载治理,结合对应用层和传输层负载指标的关键细节和痛点分析,引出自适应限流技术完 整的理论基础与实践解决方案。 作者简介: 乔卓越,于19年毕业,热爱开源,乐于思考。拥有基础架构和游戏领域的一线开发经验。独立负责过大规模后端服务的开发与性能测试平台搭建。 前言 本文将深入讨论现今后端服务关于负载的测量、优化、治理手段,通过对比分析TCP-BBR技术核心痛点,进而带读者尽可能理解并掌握自适应限流技术。 背景 负载(load),通常与并发关系密切。对于后端服务而言,任意时间内的并发用户访问都会提升服务负载,进而进一步消耗计算资源。然而计算资源是有限的,如CPU、memory、network等等,过载将会导致服务性能下降,进而回复滞缓甚至不可用。描述服务应对日益增长的负...
- 下一篇
IBM 开源 ModelMesh,使开发者能够大规模部署 AI 模型
IBM 近日宣布,已将其用于公司内部的 ModelMesh 模型服务开源,并贡献给 KServe 开源社区。ModelMesh 专为大规模、高密度和频繁变化的模型用例而设计,可以帮助开发者扩展 Kubernetes。 模型服务是人工智能领域的一个重要组成部分。它使用人工智能模型中提供的推理来响应用户的请求。那些接触过企业级机器学习应用的用户或开发者应该知道,它们通常不是由一个模型提供推理,实际上是由数百甚至数千个模型在串联运行。由于 AI 模型的计算成本很高,因为你不可能在每次要提供请求时都启动一个专用容器。 除此之外,因为存在一些限制,这对在 Kubernetes 集群上部署大量模型的开发者来说也是一个挑战: 计算资源限制 最大 pod 限制(Kubernetes 建议每个节点最多有 100 个 pods) 最大 IP 地址限制(一个拥有 4096 个 IP 的集群可以部署大约 1000 到 4000 个模型) IBM 通过其专有的 ModelMesh 模型服务管理层为 Watson 产品(如 Watson Assistant、Watson Natural Language Unde...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能