English | 中文
This Signal Decryption Tool is a Rust-based command-line utility designed specifically for macOS to handle the encryption and decryption of Signal keys. It provides a secure way to manage Signal's encrypted configuration on macOS systems.
- 🔓 Decrypt Signal's encrypted keys stored in the macOS keychain
- 📁 Support for custom configuration file paths
- 🔑 Option to directly input encrypted keys
- 🛡️ Secure handling of sensitive information
- 💻 Command-line interface for easy integration into scripts or manual use
- 🍎 Universal binary support for both Intel and Apple Silicon Macs
- 🖥️ macOS operating system
- 🦀 Rust programming language (latest stable version)
- 📦 Cargo package manager
-
Clone this repository:
git clone https://github.com/fjh658/signal-decryption-tool.git cd signal-decryption-tool
-
Build the project using Cargo:
cargo build --release
-
The compiled binary will be available in
target/release/signal_decryption
To create a universal binary that runs on both Intel and Apple Silicon Macs:
-
Ensure you have the necessary Rust targets installed:
rustup target add x86_64-apple-darwin aarch64-apple-darwin
-
Run the provided build script:
./build_universal_mac.sh
-
The universal binary will be created at
target/universal/SignalDecryption
This script performs the following actions:
- Builds the project for both x86_64 and aarch64 architectures
- Strips debug symbols to reduce binary size
- Uses
lipo
to combine the binaries into a universal binary
Run the tool from the command line with the following options:
SignalDecryption [options]
Options:
-h, --help Show this help message
-c, --config PATH Specify the path to the config.json file
-k, --key KEY Provide an encrypted key directly
-p, --print-key Print the secure storage key (use with caution)
--version Show the tool version
-
Decrypt using the default configuration:
./SignalDecryption
-
Use a custom configuration file:
./SignalDecryption -c /path/to/custom/config.json
-
Provide an encrypted key directly:
./SignalDecryption -k "your_encrypted_key_here"
-
Print the secure storage key (use with caution):
./SignalDecryption -p
⚠️ This tool handles sensitive encryption keys. Use it in a secure environment.- 🚨 The
-p
option prints sensitive information. Use it only when necessary and in a secure setting. - 🔐 Ensure you have the necessary permissions to access Signal's configuration on your system.
-
📱 This tool is currently designed for macOS. However, users can develop similar tools for other operating systems based on the following resources:
- For Windows implementation: Chromium OS Crypt for Windows
- For cross-platform implementation in Electron: Electron Safe Storage API
- For macOS specific implementation (current approach): Chromium OS Crypt for macOS
- Additional resource: Electron macOS Keychain Patch
-
👨💻 While this tool is primarily intended for advanced users familiar with encryption key handling, we encourage developers of all levels to explore and contribute to cross-platform solutions.
-
🌍 If you develop a version for another operating system, please consider contributing it back to the community or linking it here as a related project.
Contributions to improve the tool or extend its functionality to other operating systems are welcome. Please feel free to submit pull requests or create issues for bugs and feature requests. If you're working on a version for another OS, you can open an issue to discuss your approach or seek guidance.
This project is licensed under the MIT License - see the LICENSE file for details.
This tool is not officially associated with Signal. Use at your own risk. Always ensure you comply with relevant laws and Signal's terms of service when using this tool.