weggliC/C++ 代码库语义搜索工具

联合创作 · 2023-10-02

weggli 是一个快速且强大的 C 和 C++ 代码库语义搜索工具,旨在帮助安全研究人员识别大型代码库中的有趣功能。

weggli 根据用户提供的查询对抽象语法树执行模式匹配。它的查询语言类似于 C 和 C++ 代码,可以轻松将有趣的代码模式转换为查询。

weggli 受到 SemgrepCoccinellejoern 和 CodeQL 等工具的启发,但做出了一些不同的设计决策:

  • C++ 支持:weggli 对现代 C++ 构造提供一流的支持,例如 lambda 表达式、基于范围的 for 循环和 constexprs。

  • Minimal setupweggli 应该对你会遇到的大多数软件开箱即用。weggli 不需要构建软件的能力,并且可以使用不完整的源或缺少的依赖项。

  • Interactive : weggli 是为交互式使用和快速查询性能而设计的。大多数情况下,weggli 查询会比 grep 搜索快。目标是启用交互式工作流,可以在代码审查和查询创建/改进之间快速切换。

  • Greedy:weggli 的模式匹配旨在为特定查询找到尽可能多的(有用的)匹配项。虽然这会增加误报的风险,但它简化了查询创建。例如,查询 $x = 10;将匹配赋值表达式 ( foo = 10;) 和声明 ( int bar = 10;)。

浏览 5
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报