vlitz 0.2.2

A strong dynamic debugger CLI tool based on Frida
# Vlitz

A strong dynamic debugger CLI tool based on [Frida](https://frida.re/)

## 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

```bash
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

```bash
# 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:

```bash
# 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

```bash
# 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

```bash
# 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

```bash
# 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]https://frida.re/ - 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]https://github.com/your-username/vlitz/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.