中文 | English
Open-source Charles Proxy license keygen, implemented from scratch with the RC5 block cipher. Compatible with every historical Charles 3.x / 4.x / 5.x release.
This repo ships a small, dependency-free Java codebase plus build scripts that produce:
- A cross-platform runnable JAR — works anywhere a JRE 11+ is installed.
- Native desktop bundles / installers via
jpackage:- macOS →
.dmginstaller + zipped.appbundle - Windows →
.exelauncher +.msiinstaller + self-contained zip - Linux → self-contained
.tar.gzof the app-image
- macOS →
All artifacts land in release/ with a stable, per-platform naming convention (see below).
⚠️ For educational and research purposes only. Please purchase a legitimate Charles license at https://www.charlesproxy.com/latest-release/download.do if you use it for work.
charles-crack/
├── assets/
│ ├── logo.svg # Vector logo (source of truth)
│ ├── logo.png # 512×512 raster (Linux icon)
│ ├── logo.icns # macOS icon bundle
│ ├── logo.ico # Windows multi-resolution icon
│ └── logo-{16..1024}.png # PNG export sizes
├── src/
│ ├── Main.java # Cross-platform entry point: GUI + CLI + --help
│ ├── CharlesKeygen.java # Key derivation logic (license name → license key)
│ └── RC5.java # Pure-Java RC5-32/12/16 implementation
├── build.sh # Build script for macOS / Linux (bash)
├── build.bat # Build script for Windows (cmd)
├── build/ # Intermediate output (classes, MANIFEST, fat JAR)
├── dist/ # Raw jpackage output, per OS (.app, .dmg, .exe, ...)
└── release/ # Final, renamed, ready-to-ship artifacts
All final binaries go into release/. The naming convention is:
CharlesKeygen-<version>[-<os>-<arch>][-<variant>].<ext>
| Platform | File |
|---|---|
| Universal | CharlesKeygen-1.0.0.jar |
| macOS (Apple Silicon) | CharlesKeygen-1.0.0-macos-arm64.dmgCharlesKeygen-1.0.0-macos-arm64-app.zip |
| macOS (Intel) | CharlesKeygen-1.0.0-macos-x64.dmgCharlesKeygen-1.0.0-macos-x64-app.zip |
| Windows x64 | CharlesKeygen-1.0.0-windows-x64.exeCharlesKeygen-1.0.0-windows-x64.zipCharlesKeygen-1.0.0-windows-x64.msi |
| Linux x64 | CharlesKeygen-1.0.0-linux-x64.tar.gz |
| Linux arm64 | CharlesKeygen-1.0.0-linux-arm64.tar.gz |
jpackage can only build native installers for the OS it runs on — run build.sh / build.bat on each target OS (or
wire it up in CI) for full coverage. The .jar is produced on every run and is always cross-platform.
- JDK 17 or newer is recommended (required for
jpackagenative bundling).- JDK 11+ is sufficient if you only want the runnable JAR.
- Platform-specific bundling tools used by
jpackage:- macOS: Xcode Command Line Tools (
xcode-select --install) - Windows: WiX Toolset 3.x on
PATH(for.msi) - Linux:
fakeroot+dpkg(for.deb) orrpmbuild(for.rpm)
- macOS: Xcode Command Line Tools (
Verify your toolchain:
java -version
javac -version
jpackage --version./build.shbuild.batBoth scripts perform the same pipeline:
- Compile
src/*.java→build/classes/ - Package a runnable JAR →
build/charles-keygen.jar(manifest setsMain-Class: Main) - Invoke
jpackagewith the platform icon fromassets/to produce native artifacts underdist/<os>/ - Copy / rename everything into
release/with the naming convention above
Example output on Apple Silicon macOS:
release/
├── CharlesKeygen-1.0.0.jar
├── CharlesKeygen-1.0.0-macos-arm64.dmg
└── CharlesKeygen-1.0.0-macos-arm64-app.zip
Install from the native bundle for your OS (.dmg / .msi / .tar.gz) or run the JAR directly:
java -jar release/CharlesKeygen-1.0.0.jarA small Swing window opens. Enter any license name, press Generate, and the key is filled in and ready to copy.
# Shortcut: single positional arg
java -jar release/CharlesKeygen-1.0.0.jar "Your Name"
# Explicit CLI flag
java -jar release/CharlesKeygen-1.0.0.jar --cli "Your Name"
# Help
java -jar release/CharlesKeygen-1.0.0.jar --helpSample output:
Charles Proxy - License Key Generator [ALL VERSIONS]
* GENERATED LICENSE:
Name: Your Name
Key: 44E7A0EAFB50CCD696
- Open Charles → Help → Register Charles…
- Paste the Name and Key exactly as generated.
- Restart Charles.
If Charles refuses to launch on newer macOS versions due to license verification, also add the official fake-license patch (see the Charles docs) — this keygen generates keys that pass the local RC5 check, but network-based verification is out of scope.
Charles encodes the license key as:
Key = RC5-encrypt( f(name) , staticKey ) formatted as hex
where:
f(name)derives a 64-bit block from the license name using a small custom mix.staticKeyis the well-known 128-bit RC5 key embedded in every Charles build since 3.x.
RC5.java implements RC5-32/12/16 (32-bit words, 12 rounds, 16-byte key), and CharlesKeygen.java wires it together.
See the source for the exact algorithm.
The logo source lives in assets/logo.svg. If you edit it, regenerate the platform icons with:
cd assets
for s in 16 32 64 128 256 512 1024; do
rsvg-convert -w $s -h $s logo.svg -o logo-${s}.png
done
# macOS .icns
mkdir -p logo.iconset
cp logo-16.png logo.iconset/icon_16x16.png
cp logo-32.png logo.iconset/icon_16x16@2x.png
cp logo-32.png logo.iconset/icon_32x32.png
cp logo-64.png logo.iconset/icon_32x32@2x.png
cp logo-128.png logo.iconset/icon_128x128.png
cp logo-256.png logo.iconset/icon_128x128@2x.png
cp logo-256.png logo.iconset/icon_256x256.png
cp logo-512.png logo.iconset/icon_256x256@2x.png
cp logo-512.png logo.iconset/icon_512x512.png
cp logo-1024.png logo.iconset/icon_512x512@2x.png
iconutil -c icns logo.iconset -o logo.icns
rm -rf logo.iconset
# Windows .ico (ImageMagick)
magick logo-16.png logo-32.png logo-64.png logo-128.png logo-256.png logo.ico
# Linux PNG
cp logo-512.png logo.png| Symptom | Fix |
|---|---|
jpackage: command not found |
Install JDK 17+ and make sure $JAVA_HOME/bin is on PATH. |
jpackage fails on Windows with WiX error |
Install WiX 3.x and add its bin/ to PATH, or build only the app-image type. |
jpackage fails on Linux with "Cannot find dpkg" |
Install fakeroot dpkg (Debian/Ubuntu) or rpm-build (Fedora/RHEL). |
| GUI doesn't open on Linux over SSH | You need an X11/Wayland display; use the CLI mode instead. |
UnsupportedClassVersionError when running the JAR |
Upgrade your JRE to 11+ (17+ recommended). |
Source code is released under the MIT License — see LICENSE.
"Charles" and "Charles Proxy" are trademarks of XK72 Ltd. This project is not affiliated with, endorsed by, or sponsored by XK72 Ltd.
