Skip to main content

Crate execheck

Crate execheck 

Source
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§

checks
output

Structs§

ReportSummary
Summary statistics for a security report
ScanOptions
Configuration options for directory scanning
SecurityCheck
Security analysis result for a single executable file
SecurityReport
Complete security analysis report for multiple files

Enums§

FileFilter
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