Expand description
§ExeCheck - Multi-Platform Executable Security Checker
ExeCheck is a comprehensive security analysis library for executable files across multiple platforms:
- Linux ELF binaries
- Windows PE executables
- macOS Mach-O binaries
§Features
- Comprehensive Security Analysis: Checks for stack canaries, NX/DEP, PIE/ASLR, RELRO, and more
- Multi-Platform Support: Unified API for analyzing different executable formats
- Multiple Output Formats: Human-readable, JSON, YAML, XML, and CSV output
- Directory Scanning: Recursive directory analysis with filtering options
- Library and CLI: Use as a Rust library or standalone command-line tool
§Quick Start
§Library Usage
use execheck::{analyze_file, OutputFormat, print_report};
use std::path::PathBuf;
// Analyze a single file
let file_path = PathBuf::from("/bin/ls");
let result = analyze_file(&file_path)?;
println!("File: {}", result.file_path);
println!("Type: {}", result.file_type);
println!("Status: {}", result.overall_status);
// Print detailed report
let report = execheck::SecurityReport {
files: vec![result],
summary: execheck::ReportSummary {
total_files: 1,
secure_files: 1,
insecure_files: 0,
unsupported_files: 0,
},
};
print_report(&report, &OutputFormat::Human, None)?;§Batch Analysis
use execheck::{scan_directory, ScanOptions, FileFilter};
use std::path::PathBuf;
let options = ScanOptions {
recursive: true,
issues_only: true,
strict: false,
file_filter: FileFilter::All,
one_filesystem: false,
};
let report = scan_directory(&PathBuf::from("/usr/bin"), &options)?;
println!("Scanned {} files", report.summary.total_files);
println!("Found issues in {} files", report.summary.insecure_files);Re-exports§
pub use output::print_report;pub use output::OutputFormat;
Modules§
Structs§
- Report
Summary - Summary statistics for a security report
- Scan
Options - Configuration options for directory scanning
- Security
Check - Security analysis result for a single executable file
- Security
Report - Complete security analysis report for multiple files
Enums§
- File
Filter - File type filters for directory scanning
Functions§
- analyze_
file - Analyze a single executable file for security features
- analyze_
files - Analyze multiple files and generate a security report
- collect_
executable_ files - Collect all executable files from a directory
- is_
executable_ file - Check if a file appears to be an executable based on magic bytes
- matches_
file_ filter - Check if a file matches the specified file filter
- scan_
directory - Scan a directory for executable files and analyze their security features
- version
- Get version information for the library
- version_
info - Get detailed version information including dependencies