Advertisement

Durian:一个用于Python的代码审查工具,目前能够执行基本的静态漏洞检测,并使用Clang将C系列语言解析成抽象语法树...

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
Durian是一款专为Python设计的代码审查工具,支持基础的静态漏洞检测。它利用Clang技术将C系语言转化为抽象语法树,增强代码分析能力。 ### 榴莲简介 Durian工具是一个基于libclang的个性化代码检测工具。 #### 1. 正则表达式匹配问题与规则自定义 该工具有能力通过正则表达式直接识别并解决诸如忘记日志打印等异常明显的问题,并允许用户通过XML文件添加匹配规则。根据不同的类型问题,Durian能够执行相应的逻辑处理操作,例如检查是否正确地进行了日志记录以及虚函数的使用情况。 #### 2. 基于libclang的技术支持 利用Clang对C族语言进行词法分析和语法解析,生成原始抽象语法树(AST)。通过遍历这些AST结构体来检测代码中可能存在的变量重复赋值问题等潜在错误。 ### 功能特点 - **多语言支持**:Durian工具不仅限于单一编程语言的支持,它能够处理C系列、JAVA、PHP等多种开发语言及伪代码的检查。 - **多种漏洞类型识别**:目前开放了几个关键规则以匹配常见的安全漏洞,并允许用户自定义突破这些默认规则。未来将不断更新更多类型的检测和修复方案。 - **CLI / API模式**:当前主要提供命令行界面(CLI)操作方式,同时也为高级用户提供API接口以便于进一步开发或集成到其他系统中使用。 以上就是Durian工具的主要特性和功能介绍。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • DurianPython使ClangC...
    优质
    Durian是一款专为Python设计的代码审查工具,支持基础的静态漏洞检测。它利用Clang技术将C系语言转化为抽象语法树,增强代码分析能力。 ### 榴莲简介 Durian工具是一个基于libclang的个性化代码检测工具。 #### 1. 正则表达式匹配问题与规则自定义 该工具有能力通过正则表达式直接识别并解决诸如忘记日志打印等异常明显的问题,并允许用户通过XML文件添加匹配规则。根据不同的类型问题,Durian能够执行相应的逻辑处理操作,例如检查是否正确地进行了日志记录以及虚函数的使用情况。 #### 2. 基于libclang的技术支持 利用Clang对C族语言进行词法分析和语法解析,生成原始抽象语法树(AST)。通过遍历这些AST结构体来检测代码中可能存在的变量重复赋值问题等潜在错误。 ### 功能特点 - **多语言支持**:Durian工具不仅限于单一编程语言的支持,它能够处理C系列、JAVA、PHP等多种开发语言及伪代码的检查。 - **多种漏洞类型识别**:目前开放了几个关键规则以匹配常见的安全漏洞,并允许用户自定义突破这些默认规则。未来将不断更新更多类型的检测和修复方案。 - **CLI / API模式**:当前主要提供命令行界面(CLI)操作方式,同时也为高级用户提供API接口以便于进一步开发或集成到其他系统中使用。 以上就是Durian工具的主要特性和功能介绍。
  • Java安全JavaParser进,旨在支持常见Web和组件.zip
    优质
    本项目提供一款基于JavaParser的Java静态代码安全审查工具,致力于通过语法分析识别常见的Web及组件安全漏洞,增强软件安全性。 提供的MATLAB算法及相关毕设与课设程序的全部源码已经过严格测试,并可以直接运行。
  • FlawFinder:C/C++源安全
    优质
    FlawFinder是一款专为C/C++编程语言设计的开源静态代码分析工具,能够高效地识别源代码中潜在的安全漏洞与风险点,助力开发者提升软件安全性。 “探伤者”(Flawfinder)是一个简单的程序,用于扫描C++源代码并报告潜在的安全漏洞。它可以作为检查软件漏洞的有用工具,并且还可以更广泛地用作静态源代码分析工具的简单介绍。它设计为易于安装和使用。 Flawfinder 旨在作为命令行工具在Unix、Linux 或 POSIX 系统(包括 Cygwin、基于 Linux 的系统、MacOS 和各种 BSD)上运行。需要 Python 2.7 或 Python 3 才能使用 Flawfinder。 要安装 Flawfinder,您可以使用Python的“pip”或系统的包管理器来完成安装。此外,它还支持按照通常的源代码安装约定轻松地手动安装(make install)。
  • Apache Log4j2 远程
    优质
    本工具用于检测系统中是否存在Apache Log4j2远程代码执行漏洞(CVE-2021-44228),帮助用户及时发现并修复安全隐患,确保网络安全。 Apache Log4j2 远程代码执行漏洞检测工具提供Windows版和Linux版。此外还有一个图形化的 Apache Log4j2 检测工具可用。
  • Cppcheck使
    优质
    简介:本文详细介绍了Cppcheck静态代码分析工具的基本用法和高级功能,帮助开发者轻松检测C/C++代码中的错误与潜在问题。 CppCheck是一个用于C/C++代码的静态检查工具。与编译器及其他分析工具不同的是,CppCheck专注于检测那些在语法层面无法被发现的问题,并不会处理语法错误。静态代码检查通过使用特定的软件来评估我们所写的代码的安全性、健壮性和潜在问题。例如,即使某些编码完全符合语法规则,但可能仍然存在溢出的风险;而这种类型的工具会识别并报告这些问题。 CppCheck作为一款免费且开源的产品,在这方面表现得尤为突出和易于操作。除了CppCheck之外,市场上还有如pc-lint这样的老牌检查工具也在被广泛使用中。尽管pc-lint功能强大,并被认为是业界最优秀的代码审查软件之一,但它需要付费购买并且配置起来相对复杂一些。相比之下,CppCheck不仅免费而且设置简便得多。
  • C开发扫描
    优质
    这是一款采用C语言编写的高效能漏洞扫描工具,旨在帮助企业及个人用户快速检测系统中的安全漏洞,并提供修复建议以增强系统的安全性。 用于信息安全专业的研究者使用C语言编写程序,并且编译通过。
  • C编写C
    优质
    这段简介是关于一个使用C语言开发的工具或库,它能够解析和执行类似C语言特性的脚本代码。该实现旨在提供快速、灵活且易于扩展的方式处理特定场景中的编程任务。 本组建主要用于解析预先编写的类C脚本,并依据脚本执行任务。通过调用外部指针函数读入输入变量进行计算,最终将结果写入输出变量中;用户可通过读取输出变量获取最终的结果。脚本中可调用系统函数和自定义函数两种类型的函数;系统函数可以直接调用,而自定义函数需要在脚本中自行定义。
  • IDAPython脚库:二进制,通过对IDA产生反汇编文件输出XML...
    优质
    IDAPython脚本库是一款针对二进制代码进行漏洞检测的专业工具。通过解析IDA生成的反汇编文件,并利用静态分析技术,该库能够高效地识别潜在的安全问题,并将结果以XML格式导出,便于进一步处理和分享。 IDAPythonScripts:二进制漏洞静态分析检测脚本(IDA Pro) 准备: 首先下载IDA Pro软件,版本应小于等于6.8,7.0以上部分脚本可能不支持。 安装IDAPython插件。 漏洞内容(待更新) 危险函数调用 此脚本对IDA反汇编文件进行静态分析,检测其是否调用了可能导致安全问题的危险函数。由于没有统一的危险函数集合可供参考,所以需要自己逐步积累,在functions.sql中可以看到一些常见的危险函数,并将其保存在MySQL数据库中以方便后续Python脚本调用。 栈堆缓冲区溢出漏洞 脚本从函数调用地址开始向后跟踪推送到堆栈中的参数,并返回与指定参数对应的操作数。然后确定eax寄存器在被推入堆栈时是否指向了可能造成问题的堆栈缓冲区区域。
  • HFSE
    优质
    HFS漏洞利用工具E语言源码是一款用于检测和利用基于HFS服务器的安全漏洞的编程代码集,主要采用E语言编写。该源码为安全研究人员提供了一个平台来测试系统的安全性并开发相应的防御措施。 HFS漏洞利用工具的e语言源码。
  • C(AST)分器.zip
    优质
    本资源提供了一个用于解析C语言源代码的工具包,包含词法分析和构建抽象语法树的功能。通过该工具,用户能够深入理解C语言程序结构,并进行进一步的编译或静态分析操作。 C语言的词法分析和抽象语法树(AST)分析器是一个项目,旨在创建一个能够识别C语言中的词法单元并构建抽象语法树的程序。该项目的步骤包括: ### 项目介绍: **目标**:开发一款能识别C语言中词法单元及生成相应抽象语法树的应用。 **主要任务**: 1. **词法分析器** - 阅读和解析C源代码文件。 - 利用正则表达式或有限自动机来分类如关键字、标识符、常数与运算符等的词法单元。 - 输出一个包含所有识别到的语法元素列表,供后续处理使用。 2. **抽象语法树(AST)分析器** - 定义C语言语法规则并构建上下文无关文法(CFG)。 - 使用递归下降解析或LL(1)解析技术来从词法单元序列中构造出抽象语法树。 - 处理可能出现的语法错误,并尽可能恢复正常的解析流程。 **技术要求** - 了解C语言编程基础。 - 掌握编译原理中的词法分析和语法分析知识。 - 熟悉有限自动机理论及如何构建与使用抽象语法树。 ### 开发工具 - C编译器,如GCC或Clang。 - 编程环境,例如Visual Studio Code或Eclipse。 ### 适合人员: 此项目适用于计算机科学及相关领域的学生、软件开发者(尤其是对解释器和编译器工作原理感兴趣的程序员),以及语言处理研究者。它不仅能帮助他们实践编程与编译知识,还能为深入学习相关技术提供一个起点。 ### 额外建议 - 初始阶段可从C语言的一个简化版本入手,逐步增加支持的语法特征。 - 应用单元测试和集成测试确保分析器的有效性。 - 编写详尽文档记录设计决策、实现细节及测试结果。 - 考虑使用Git等版本控制系统管理项目代码。 通过完成这样一个编译前端组件的学习与开发,参与者不仅能深入了解编译过程的工作机制以及提高C编程技能水平,还为未来深入研究相关领域打下坚实的基础。