analysis-tools-dev/dynamic-analysis

GitHub: analysis-tools-dev/dynamic-analysis

汇总各编程语言及多领域中动态分析工具与 linter 的开源精选清单,帮助开发者高效检索和选择代码质量工具。

Stars: 1094 | Forks: 116

Analysis Tools Website 本仓库列出了适用于所有编程语言、构建工具、配置文件等的**动态分析工具**。主要侧重于提高代码质量的工具,例如 linter 和格式化工具。 官方网站 [analysis-tools.dev](https://analysis-tools.dev/) 基于本仓库建立,并添加了排名、用户评论以及每个工具的额外资源(如视频)。 [![Website](https://img.shields.io/badge/Website-Online-2B5BAE)](https://analysis-tools.dev) ![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg) ## 符号含义: - :copyright: 代表专有软件。所有其他工具均为开源软件。 - :information_source: 表示社区不再建议将此工具用于新项目。该图标链接至相关的讨论 issue。 - :warning: 表示此工具已超过 1 年未更新,或该仓库已被归档。 非常欢迎提交 Pull request! 此外,也请查看姊妹项目 [awesome-static-analysis](https://github.com/mre/awesome-static-analysis)。 ## 目录 #### [编程语言](#programming-languages-1)
显示语言
#### [多种语言](#multiple-languages-1) #### [其他](#other-1) - [API](#api) - [二进制文件](#binary) - [Bytecode/IR](#bytecode) - [云](#cloud) - [容器](#container) - [Laravel](#laravel) - [安全/DAST](#security) - [Web](#web) - [WebAssembly](#webassembly) - [XML](#xml) ## 编程语言

.NET

- [Microsoft IntelliTest](https://docs.microsoft.com/en-us/visualstudio/test/intellitest-manual/getting-started?view=vs-2019) — 为您的 .NET 代码生成一组候选测试套件。 - [Pex and Moles](https://www.microsoft.com/en-us/research/project/pex-and-moles-isolation-and-white-box-unit-testing-for-net/) — Pex 使用自动化白盒分析自动生成具有高代码覆盖率的测试套件。

C

- [CHAP](https://github.com/vmware/chap) — 分析未插桩的 ELF 核心转储文件,以检测内存泄漏、内存增长和损坏。它有助于解释内存增长,可以识别某些形式的损坏,并通过提供各种内存位置的状态来辅助调试器。 - [KLEE](https://github.com/klee/klee) — 基于 LLVM 编译器基础设施构建的符号虚拟机。 - [LDRA](https://ldra.com) :copyright: — 一个包含动态分析和针对各种标准的测试的工具套件,可确保实现 100% 的操作码、分支和决策覆盖率测试。 - [LLVM/Clang Sanitizers](https://github.com/google/sanitizers) — - [Valgrind](https://valgrind.org/) — 用于构建动态分析工具的插桩框架。

C++

- [CHAP](https://github.com/vmware/chap) — 分析未插桩的 ELF 核心转储文件,以检测内存泄漏、内存增长和损坏。它有助于解释内存增长,可以识别某些形式的损坏,并通过提供各种内存位置的状态来辅助调试器。 - [KLEE](https://github.com/klee/klee) — 基于 LLVM 编译器基础设施构建的符号虚拟机。 - [LDRA](https://ldra.com) :copyright: — 一个包含动态分析和针对各种标准的测试的工具套件,可确保实现 100% 的操作码、分支和决策覆盖率测试。 - [LLVM/Clang Sanitizers](https://github.com/google/sanitizers) — - [Valgrind](https://valgrind.org/) — 用于构建动态分析工具的插桩框架。

Go

- [statsviz](https://github.com/arl/statsviz) — 在浏览器中即时可视化您的 Go 应用程序运行时统计信息。它可以绘制堆使用情况、MSpans/MCaches、对象计数、Goroutines 以及 GC/CPU 占比。

Java

- [Java PathFinder](https://github.com/javapathfinder/jpf-core) — 用于 Java 字节码程序的可扩展软件模型检查框架。 - [Parasoft Jtest](https://www.parasoft.com/products/jtest) :copyright: — Jtest 是由 Parasoft 制作的自动化 Java 软件测试和静态分析产品。该产品包含数据流分析、单元测试用例生成和执行、静态分析、回归测试、代码覆盖率和运行时错误检测等技术。

JavaScript

- [Iroh.js](https://github.com/maierfelix/Iroh) — 用于 JavaScript 的动态代码分析工具。Iroh 允许实时记录您的代码流,拦截运行时信息并即时操纵程序行为。 - [Jalangi2](https://github.com/Samsung/jalangi2) — Jalangi2 是一个流行的框架,用于为 JavaScript 编写动态分析。

PHP

- [Enlightn](https://www.laravel-enlightn.com/) — 用于 Laravel 应用程序的静态和动态分析工具,提供建议以提升 Laravel 应用程序的性能、安全性和代码可靠性。包含 120 项自动化检查。

Python

- [CrossHair](https://github.com/pschanely/CrossHair) — 用于测试 Python 契约的符号执行引擎。 - [DynaPyt](https://github.com/sola-st/DynaPyt) — DynaPyt 是一个用于为 Python 编写动态分析的框架。分析还可以修改运行时值以改变执行过程。 - [icontract](https://github.com/Parquery/icontract) — 支持行为子类型的契约式设计库。 围绕 icontract 库还有一个更广泛的工具生态,例如 linter (pyicontract-lint) 和 Sphinx 插件 (sphinx-icontract)。 - [Scalene](https://github.com/emeryberger/scalene) — 适用于 Python 的高性能、高精度 CPU 和内存 profiler - [typo](https://github.com/aldanor/typo) — 适用于 Python 3 的运行时类型检查。

Ruby

- [suture](https://github.com/testdouble/suture) — 一个 Ruby gem,通过用新版本替换旧行为的结果,帮助您重构遗留代码。

Rust

- [cargo-careful](https://github.com/RalfJung/cargo-careful) — 谨慎地执行 Rust 代码,在此过程中进行额外检查。它使用调试断言构建标准库。 以下是此功能启用的一些检查: * 切片中的 `get_unchecked` 会执行边界检查 * `copy`、`copy_nonoverlapping` 和 `write_bytes` 会检查指针是否已对齐且非空,以及(如果适用)不重叠 `{NonNull,NonZero*,...}::new_unchecked` 会检查该值是否有效 * 集合类型中有大量的内部一致性检查 * 如果类型不允许这种初始化,`mem::zeroed` 和已弃用的 `mem::uninitialized` 将会引发 panic。 - [hyperfine](https://github.com/sharkdp/hyperfine) — 一款命令行基准测试工具。它的功能特点包括:跨多次运行的统计分析、支持任意 shell 命令、提供关于基准测试进度和当前估计的持续反馈、预热运行、简单且富有表现力的语法等等。 - [loom](https://github.com/tokio-rs/loom) — Rust 的并发排列测试工具。它会多次运行一个测试,枚举该测试可能的所有并发执行情况。 - [MIRI](https://github.com/rust-lang/miri) — Rust 的中级中间表示解释器,能够检测特定类别的未定义行为,例如越界内存访问和释放后使用。 - [puffin](https://github.com/EmbarkStudios/puffin) — Rust 的插桩 profiler。 - [rust-san](https://github.com/japaric/rust-san) — 如何使用内置的 Rust 动态分析器对您的 Rust 代码进行清理(sanitize)。 - [stuck](https://github.com/jonhoo/stuck) — 提供可视化界面,以便快速识别正在运行的异步和并发应用程序中的常见瓶颈。

SQL

- [WhiteHat Sentinel Dynamic](https://www.synopsys.com/software-integrity/security-testing/dast.html) :copyright: — WhiteHat 应用程序安全平台的一部分。涵盖 OWASP Top 10 的动态应用程序安全扫描器。

Visual Basic

- [VB Watch](https://www.aivosto.com/vbwatch.html) :copyright: — 适用于 VB6 的 Profiler、Protector 和 Debugger。Profiler 负责测量性能和测试覆盖率。Protector 负责实现稳健的错误处理。Debugger 帮助监控您的可执行文件。

Zig

- [poop](https://github.com/andrewrk/poop) — Performance Optimizer Observation Platform(性能优化观察平台)。该命令行工具利用 Linux 的 `perf_event_open` 功能,通过色彩丰富的终端用户界面比较多个命令的性能。它类似于 `hyperfine`。 ## 多种语言 - [allocscope](https://github.com/matt-kimball/allocscope) — allocscope 是一款用于追踪 C、C++ 或 Rust 代码库中发生在何处最惊人的大型内存分配的工具。它特别适用于想要控制过度分配、并且在拥有众多贡献者且分配发生在多个模块或库的大型代码库中工作的开发者。 - [bytehound](https://github.com/koute/bytehound) — Linux 的内存 profiler。可用于分析内存泄漏,准确查看内存在何处被消耗,识别临时分配并调查过度的内存碎片。 - [CASR](https://crates.io/crates/casr) — 崩溃分析和严重性报告工具。 - [Code Pulse](http://code-pulse.com/) — Code Pulse 是由 OWASP 和 Code Dx 提供的一款免费的实时代码覆盖率工具,专为渗透测试活动而设计([GitHub](https://github.com/codedx/codepulse))。 - [Daikon](https://plse.cs.washington.edu/daikon/) — 动态检测可能的不变式的工具。不变式是在某个程序点成立的属性,常见于 assert 语句、文档和形式规范中。 - [Sydr](https://sydr-fuzz.github.io/) :copyright: — 面向安全开发生命周期的持续混合模糊测试和动态分析。 ## 其他

API

- [Smartbear](https://smartbear.com/) :copyright: — 测试自动化和性能测试平台。

Binaries

- [angr](https://github.com/angr/angr) — 来自 UCSB 的平台无关的二进制分析框架。 - [BOLT](https://github.com/facebookincubator/BOLT) — 二进制优化和布局工具 - 一款 Linux 命令行实用程序,用于通过基于配置文件的链接排列来优化二进制文件的性能,从而提高缓存效率。 - [Dr. Memory](https://drmemory.org/) — Dr. Memory 是一款内存监控工具,能够识别与内存相关的编程错误([Github](https://github.com/DynamoRIO/drmemory))。 - [DynamoRIO](http://www.dynamorio.org/) — 一个运行时代码操纵系统,支持在程序执行的任何部分进行代码转换。 - [llvm-propeller](https://github.com/google/llvm-propeller) — 基于配置文件的热/冷函数拆分,以提高缓存效率。这是 Facebook 提供的 BOLT 的替代方案。 - [Pin Tools](https://software.intel.com/en-us/articles/pin-a-dynamic-binary-instrumentation-tool) — 一个动态二进制插桩工具用于创建分析工具的平台。 - [TRITON](https://triton.quarkslab.com/) — 针对 x86 二进制文件的动态二进制分析工具。

Bytecode/IR

- [souper](https://github.com/google/souper) — 使用 SMT 求解器优化 LLVM IR

Cloud

- [prowler](https://prowler.pro) — Prowler 是一款开源安全工具,用于执行 AWS 和 Azure 的安全最佳实践评估、审计、事件响应、持续监控、强化和取证准备。 它包含数百项控制措施,涵盖 CIS、PCI-DSS、ISO27001、GDPR、HIPAA、FFIEC、SOC2、AWS FTR、ENS 和自定义安全框架。

Containers

- [cadvisor](https://github.com/google/cadvisor) — 分析正在运行的容器的资源使用情况和性能特征。

Laravel

- [Enlightn](https://www.laravel-enlightn.com/) — 用于 Laravel 应用程序的静态和动态分析工具,提供建议以提升 Laravel 应用程序的性能、安全性和代码可靠性。包含 120 项自动化检查。

Security/DAST

- [AppScan Standard](https://www.hcltechsw.com/products/appscan) :copyright: — HCL 的 AppScan 是一个动态应用程序安全测试套件(以前由 IBM 提供) - [Enlightn](https://www.laravel-enlightn.com/) — 用于 Laravel 应用程序的静态和动态分析工具,提供建议以提升 Laravel 应用程序的性能、安全性和代码可靠性。包含 120 项自动化检查。 - [WhiteHat Sentinel Dynamic](https://www.synopsys.com/software-integrity/security-testing/dast.html) :copyright: — WhiteHat 应用程序安全平台的一部分。涵盖 OWASP Top 10 的动态应用程序安全扫描器。

Web

- [Smartbear](https://smartbear.com/) :copyright: — 测试自动化和性能测试平台。

WebAssembly

- [Wasabi](https://github.com/danleh/wasabi) — Wasabi 是一个使用 JavaScript 编写的框架,用于为 WebAssembly 编写动态分析。

XML

- [WhiteHat Sentinel Dynamic](https://www.synopsys.com/software-integrity/security-testing/dast.html) :copyright: — WhiteHat 应用程序安全平台的一部分。涵盖 OWASP Top 10 的动态应用程序安全扫描器。 ## 许可证 [![CC0](https://i.creativecommons.org/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/) 在法律允许的范围内,[Matthias Endler](https://endler.dev) 已放弃本作品的所有版权及相关或邻接权利。 用于格式化和显示该内容的基础源代码根据 MIT 许可证授权。 标题图像 [由 Freepik 设计](http://www.freepik.com)。
标签:awesome清单, JS文件枚举, Linter, pptx, SOC Prime, 云安全监控, 代码规范, 可视化界面, 多线程, 开发工具, 数据可视化, 日志审计, 逆向工具, 静态分析