A secure WebView2-based application with hardware fingerprinting and encrypted data transmission.
-
Clone the repository
git clone <your-repo-url> cd MagicKeyRevC
-
Setup configuration
cp config.h.example config.h cp public_key.pem.example public_key.pem
-
Edit your settings
- Open
config.hand replace placeholder URLs with your actual endpoints - Replace
public_key.pemwith your actual RSA public key
- Open
-
Build the application
.\build.ps1
-
Run
cd bin .\main.exe
📖 See SETUP.md for detailed instructions
- Never commit
config.h- Contains your actual configuration - Never commit
public_key.pem- Contains your actual public key - Never commit private keys - Keep them secure and local only
- The
.gitignoreis configured to protect these files automatically
- Hardware Fingerprinting - System UUID, HDD ID, Machine GUID
- Encrypted Communication - RSA encryption for sensitive data
- Secure WebView - Disabled developer tools, context menu, copy/paste
- Network Detection - IP and proxy checking
- Configurable - Compile-time configuration for security
The ./bin/ directory contains everything needed for distribution:
- Application executable
- Required DLLs and libraries
- Configuration files
- Clean, portable package
- Compile-time configuration (no runtime config files)
- RSA encrypted data transmission
- WebView2 security restrictions
- Hidden cache directories
- No sensitive data in source code
- Windows 10/11 - 64-bit
- MinGW-w64 with MSYS2 - C++ compiler
- WebView2 Runtime - Usually pre-installed
- OpenSSL - For encryption (included with MSYS2)
build.ps1- PowerShell build script (recommended)build.bat- Batch file for Command Prompt- Manual build commands available in BUILD.md
Set up automated building with your private configuration:
- Builds automatically on push to main branch
- Uses GitHub Secrets for your private configuration
- Creates release packages with all dependencies
- No sensitive data in repository
📖 See GITHUB_ACTIONS.md for setup instructions
- Check SETUP.md for detailed setup instructions
- See BUILD.md for build troubleshooting
- Review
.gitignoreto understand what files are protected
[Add your license information here]
# Development mode (debug enabled, security relaxed)
switch-config.bat dev
# Production mode (debug disabled, security strict)
switch-config.bat prod
# Reset to defaults
switch-config.bat default- Separated Sensitive Data - Real URLs/keys never in source code
- Configurable WebView2 Security:
- Disable developer tools
- Block right-click context menu
- Prevent text selection
- Disable copy/paste shortcuts
- Encrypted Data Transmission - RSA public key encryption
- Debug Data Control - Configurable logging levels
# Enable debug output and relaxed security
g++ *.cpp -o main_dev.exe [compile flags] -DDEBUG_MODE# Optimized build with strict security
g++ *.cpp -o main.exe [compile flags] -O2 -DNDEBUG- Configuration Guide - Complete configuration documentation
- Setup Guide - Detailed setup instructions
- Security Guide - Security best practices
- Fork the repository
- Create a feature branch
- Follow the security guidelines in
GITHUB_SAFETY.md - Never commit sensitive configuration files
- Test with both development and production configurations
- Submit a pull request
- Never commit
config_defaults.cpp(contains real URLs/IDs) - Never commit
*.pemfiles (cryptographic keys) - Never commit
config.json(runtime configuration) - Use the provided templates for sharing configuration structure
- Review
.gitignorebefore committing
[Add your license information here]
- Ensure all dependencies are installed
- Check WebView2 SDK paths in compile command
- Verify OpenSSL libraries are available
- Run
setup.batto create required files - Check that
config_defaults.cppexists and has real values - Ensure
public_key.pemis present
- Enable debug mode in configuration for detailed logging
- Check network connectivity for API endpoints
- Verify WebView2 runtime is installed
For issues and questions:
- Check the documentation in the
docs/directory - Review common issues in this README
- Create an issue with detailed error information