vlitz 0.1.8

A strong dynamic debugger CLI tool based on Frida
vlitz-0.1.8 is not a library.

Vlitz

A strong dynamic debugger CLI tool based on Frida

Overview

Vlitz is a powerful command-line interface tool that leverages Frida's dynamic instrumentation capabilities to provide advanced debugging and analysis features for applications across multiple platforms.

Features

  • Dynamic Process Analysis: Attach to running processes and analyze their behavior in real-time
  • Cross-Platform Support: Works on Windows, macOS, Linux, iOS, and Android
  • Multiple Connection Methods: Connect via USB, remote servers, or local devices
  • Process Management: List, filter, and manage target processes
  • Interactive Shell: Provides an interactive environment for dynamic analysis
  • Shell Completion: Built-in shell completion support for improved productivity

Installation

Prerequisites

  • Rust 1.70 or later
  • Frida (automatically downloaded when using the auto-download feature)

From Source

git clone https://github.com/your-username/vlitz.git
cd vlitz
cargo build --release

The binary will be available at target/release/vlitz

Usage

Basic Commands

# Show help
vlitz --help

# List processes
vlitz ps

# Attach to a process by name
vlitz attach -n "target_app"

# Attach to a process by PID
vlitz attach -p 1234

# Connect to USB device
vlitz -U ps

# Connect to remote Frida server
vlitz -H 192.168.1.100 ps

Connection Options

  • -D, --device <ID>: Connect to device with the given ID
  • -U, --usb: Connect to USB device
  • -R, --remote: Connect to remote frida-server
  • -H, --host <HOST>: Connect to remote frida-server on HOST

Process Selection

  • -p, --pid <PID>: Target process by Process ID
  • -n, --name <NAME>: Target process by name
  • -f, --file <FILE>: Target process by spawning executable

Shell Completion

Generate shell completion scripts:

# For Bash
vlitz --generate-completion bash > vlitz.bash
source vlitz.bash

# For Zsh
vlitz --generate-completion zsh > _vlitz
# Move to your zsh completions directory

# For Fish
vlitz --generate-completion fish > vlitz.fish
source vlitz.fish

Examples

Analyze a Running Application

# List all running processes
vlitz ps

# Attach to a specific application
vlitz attach -n "notepad.exe"

# Kill a process
vlitz kill -p 1234

Remote Debugging

# Connect to a remote Android device
vlitz -U ps

# Attach to an Android app
vlitz -U attach -n "com.example.app"

Project Structure

src/
├── core/           # Core functionality
│   ├── actions.rs  # Action handlers
│   ├── cli.rs      # CLI argument parsing
│   ├── kill.rs     # Process termination
│   ├── manager.rs  # Process management
│   └── ps.rs       # Process listing
├── gum/            # Frida Gum integration
│   ├── commander.rs # Command execution
│   ├── filter.rs   # Process filtering
│   ├── handler.rs  # Event handling
│   └── list.rs     # Process enumeration
├── util/           # Utility functions
└── main.rs         # Application entry point

Dependencies

  • clap: Command-line argument parsing with derive support
  • frida: Frida bindings for Rust with auto-download capability
  • crossterm: Cross-platform terminal manipulation
  • rustyline: Readline implementation for interactive shells
  • serde/serde_json: Serialization and JSON handling
  • regex: Regular expression support
  • ctrlc: Signal handling for graceful shutdown

Development

Building

# Debug build
cargo build

# Release build
cargo build --release

# Run tests
cargo test

# Check code formatting
cargo fmt

# Run clippy for linting
cargo clippy

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

[Add your license information here]

Acknowledgments

  • Frida - The dynamic instrumentation toolkit that powers this tool
  • The Rust community for excellent crates and documentation

Support

If you encounter any issues or have questions, please:

  1. Check the Issues page
  2. Create a new issue with detailed information about your problem
  3. Include your operating system, Rust version, and steps to reproduce

Note: This tool is designed for legitimate security research, debugging, and educational purposes. Please use responsibly and in accordance with applicable laws and regulations.