mirror of
https://github.com/elicpeter/nyx.git
synced 2026-06-09 19:45:13 +02:00
* Introduce control flow graph (CFG) support: - Added `cfg.rs` with CFG generation and analysis utilities. - Integrated `petgraph` library for graph-based computations. - Updated `ast.rs` to utilize CFG for function analysis. - Modified `Cargo.toml` and `Cargo.lock` to include new dependencies. - Improved static analysis with taint tracking through CFG paths. * feat: enhance control flow analysis with taint tracking and node labeling * feat: improve control flow graph with enhanced node handling and new tests * Remove unnecessary reference marker in `byte_offset_to_point` comment. * Remove unnecessary reference marker in `byte_offset_to_point` comment. * Refactor `ast.rs` for performance and clarity; enhance `cfg.rs` with recursive CFG generation and improved classification logic for AST analysis. * Refactor CFG and taint tracking logic: - Enhanced `cfg.rs` with inline helper function `text_of` for cleaner UTF-8 handling in AST nodes. - Expanded `labels.rs` rules with detailed `Sources`, `Sanitizers`, and `Sinks` for improved classification. - Refined `push_node` to handle method call expressions with object-function pairing. - Simplified code handling in trivia skipping and debug-only logic. * Enhance `cfg.rs` with `first_call_ident` helper and improve identifier extraction logic in `push_node`. * Add targeted CFG taint-tracking tests to enhance analysis coverage. * Enhance CFG generation with loop expression handling and improve taint tracking logic. Add new sanitization example in `examples/sanitize/example.rs`. * Update README with installation instructions for Cargo and GitHub releases. * Expand taint-tracking with precise `def-use` computation and enhance `labels.rs` for detailed classification. Extend `examples/sanitize` with realistic scenarios demonstrating new rules. * Refactor `labels.rs`: - Removed redundant `LabelRule` entries for cleaner rule definitions. - Adjusted matching logic to prioritize suffix and prefix matches effectively. * Refactor `labels.rs`: - Removed redundant `LabelRule` entries for cleaner rule definitions. - Adjusted matching logic to prioritize suffix and prefix matches effectively. * Add test for taint tracking with multiple sources in `cfg.rs`. * Add `function_summaries` table and implement summary upsert/load methods. Refactor to handle summary storage and retrieval efficiently, with placeholder clean/drop logic. * refactor: split `labels.rs` into modular structure with language-specific files * refactor: split `labels.rs` into modular structure with language-specific files * refactor: clean up SQL table definitions in `database.rs` for better readability * refactor: simplify CFG structure by removing lifetime parameters and enhancing taint metadata handling * refactor: update TODO comments in `cfg.rs` to clarify future enhancements for cap labels and function details * refactor: remove redundant header from README.md for improved clarity * feat: add PHF-based syntax classifiers and Kind enum for efficient syntax mapping across languages * feat: introduce analysis modes for enhanced scanner configuration and diagnostics * feat: define Kind enum for syntax classification in control flow analysis * feat: bump version to 0.2.0-alpha and update CHANGELOG for new features and fixes * refactor: clean up imports and formatting in AST and CFG modules for improved readability * refactor: simplify function signatures and improve code readability in CFG and module files * fix: correct rayon_thread_stack_size comment to reflect actual value of 8 MiB * refactor: update string formatting in clean and project modules for consistency * refactor: fix indentation in clean.rs for improved readability --------- Co-authored-by: elipeter <eli.peter@es.fcm.travel>
61 lines
1.7 KiB
TOML
61 lines
1.7 KiB
TOML
[package]
|
|
name = "nyx-scanner"
|
|
version = "0.2.0-alpha"
|
|
edition = "2024"
|
|
description = "A CLI security scanner for automating vulnerability checks"
|
|
license = "GPL-3.0"
|
|
authors = ["Eli Peter <ecpeter23@exmaple.com>"]
|
|
homepage = "https://github.com/ecpeter23/nyx"
|
|
repository = "https://github.com/ecpeter23/nyx"
|
|
documentation = "https://github.com/ecpeter23/nyx#readme"
|
|
keywords = ["security", "vulnerability", "scanner", "cli", "automation"]
|
|
categories = ["command-line-utilities", "development-tools" ]
|
|
readme = "README.md"
|
|
default-run = "nyx"
|
|
exclude = [
|
|
"assets/",
|
|
".github/",
|
|
]
|
|
|
|
[[bin]]
|
|
name = "nyx"
|
|
path = "src/main.rs"
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|
|
|
|
[dependencies]
|
|
directories = "6.0.0"
|
|
clap = { version = "4.5.40", features = ["derive"] }
|
|
serde = { version = "1.0.219", features = ["derive"] }
|
|
toml = "0.8.23"
|
|
tracing-subscriber = { version = "0.3.19", features = ["env-filter", "json", "ansi","time"] }
|
|
tracing = "0.1.41"
|
|
num_cpus = "1.17.0"
|
|
rusqlite = { version = "0.36.0", features = ["bundled"] }
|
|
r2d2_sqlite = { version = "0.30.0", features = ["bundled"] }
|
|
ignore = "0.4.23"
|
|
tree-sitter = "0.25.6"
|
|
tree-sitter-rust = "0.24.0"
|
|
tree-sitter-c = "0.24.1"
|
|
tree-sitter-cpp = "0.23.4"
|
|
tree-sitter-java = "0.23.5"
|
|
tree-sitter-typescript = "0.23.2"
|
|
tree-sitter-javascript = "0.23.1"
|
|
tree-sitter-go = "0.23.4"
|
|
tree-sitter-php = "0.23.11"
|
|
tree-sitter-python = "0.23.6"
|
|
tree-sitter-ruby = "0.23.1"
|
|
crossbeam-channel = "0.5.15"
|
|
blake3 = "1.8.2"
|
|
once_cell = "1.21.3"
|
|
console = "0.16.0"
|
|
rayon = "1.10.0"
|
|
r2d2 = "0.8.10"
|
|
bytesize = "2.0.1"
|
|
chrono = { version = "0.4.41", default-features = false, features = ["std", "clock"] }
|
|
thiserror = "2.0.12"
|
|
dashmap = "7.0.0-rc2"
|
|
petgraph = "0.8.2"
|
|
bitflags = "2.9.1"
|
|
phf = { version = "0.12.1", features = ["macros"] }
|