A command-line tool for managing QEMU virtual machines created through Syzkaller's create-image.sh.
Project description
syzqemuctl
A command-line tool for managing QEMU virtual machines created through Syzkaller's `create-image.sh`.
Features
- Easy VM creation and management
- Automated template image creation using syzkaller's create-image.sh
- SSH and file transfer support
- Command execution in VMs
- Screen session management for VM console access
Change Log
- 0.1.0: 2025-01-16
- Initial release (BUG: entry_point is wrong)
- 0.1.1: 2025-01-16
- Update README.md (BUG: entry_point is wrong)
- 0.1.2: 2025-01-17
- Fix bug of entry point (USABLE!)
- 0.1.3: 2025-01-17
- Add badges
Installation
pip install syzqemuctl
Requirements
python3.8+ qemu screen ssh
Configuration
The configuration file is stored in ~/.config/syzqemuctl/config.json. It contains:
- Images home directory path
- Default VM settings
Usage
⭐ As a command-line tool
- Initialize syzqemuctl:
syzqemuctl init --images-home /path/to/images
- Create a new VM:
syzqemuctl create my-vm
- Run the VM:
syzqemuctl run my-vm --kernel /path/to/kernel
- Check VM status:
syzqemuctl status my-vm
- Copy files to/from VM:
syzqemuctl cp local-file my-vm:/remote/path # Copy to VM
syzqemuctl cp my-vm:/remote/file local-path # Copy from VM
- Execute commands in VM:
syzqemuctl exec my-vm "uname -a"
- Stop the VM:
syzqemuctl stop my-vm
- List all VMs:
syzqemuctl list
⭐ As a Python package
from syzqemuctl import VM, ImageManager, VMConfig
manager = ImageManager("/path/to/images_home")
manager.initialize()
manager.create_image("my-vm")
vm = VM("/path/to/images_home/my-vm")
vm.start(kernel_path="/path/to/kernel")
# Wait several minutes for the VM to be ready
with vm:
vm.copy_to_vm("/path/to/local/file", "/path/to/vm/remote/file")
vm.execute("uname -a")
License
Apache-2.0
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
syzqemuctl-0.1.3.tar.gz
(11.3 kB
view details)
File details
Details for the file syzqemuctl-0.1.3.tar.gz.
File metadata
- Download URL: syzqemuctl-0.1.3.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d52785fe99d11bdc55391e750cf35e7ba7fe708017879a48ba52bfefc56a952c
|
|
| MD5 |
4ae696aa4b19cdcc49e6a3a695ad42b9
|
|
| BLAKE2b-256 |
e1b4d6706d319ce3fea51caae2238f98eb1fab03ddf36d76985ee0c70e725060
|