A Bruce app for hackers, tinkerers and lock nerds.
Decode and randomly generate key bitting patterns for a bunch of lock brands.
Visualize the cuts, tweak the pins, and save/load your keys.
Works on Bruce interpreter devices like the LILYGO T-Embed CC1101.
| Tested | Brand | Pin Options |
|---|---|---|
| ✔️ | ASSA | 5, 6, 7 pins |
| ✔️ | Abloy | 7, 9, 11 disks |
| ✔️ | American | 5, 6 pins |
| ✔️ | Best | 7 pins |
| ✔️ | Kwikset | 5 pins |
| ✔️ | Master | 4, 5 pins |
| ❌ | Schlage | 5, 6 pins |
| ✔️ | Titan | 5, 6 pins |
| ❌ | Yale | 5 pins |
- Drop
KeyDecoding.jsonto your Bruce device - Fire up the Bruce Interpreter
- Have fun
- SEL (Select): Move to next pin, or to Save/Load (in Decode mode)
- NEXT: Increase pin depth / Save (when "Save" is highlighted) / Load (when "Load" is highlighted)
- PREV: Decrease pin depth
- ESC: Back to main menu
- Pick a Brand: Choose your target lock or load a saved key
- Pin Count: Select how many pins (brand-dependent)
- Mode:
- Random: Get a random bitting (good for challenge keys)
- Decode: Set each pin yourself (for real-world decoding)
- Tweak Pins: Use NEXT/PREV to set each pin's depth
- Save: SEL to "Save", then NEXT to write your key JSON
- Load: SEL to "Load", then NEXT to pick a saved key
Keys are saved as JSON in /keys/:
{
"type": "Titan",
"outline": "5 pins",
"pins": [ 3, 5, 2, 7, 4 ]
}KeyExample: {
isDiskDetainer: false, // whether the key is a disk detainer type (default false)
outlines: ["5 pins", "6 pins"], // number of pins
pinSpacing: 31, // distance between pins (default 31)
maxKeyCut: 9, // number of cuts (default 9)
flatSpotWidth: 5, // width of flat spot of the cut (default 5)
cutDepthOffset: 5, // depth offset of each cut (default 5)
zeroCutOffset: 0, // depth offset of zero cut (default 0)
edgeOffsetX: 0, // x offset of the bottom-right diagonal (default 0)
edgeOffsetY: 0, // y offset of the bottom line (default 0)
pinsStartAtZero: false, // whether pin numbers start at 0 or 1 (default false)
pinNumbersOffset: 0 // x offset for pin numbers with underline (default 0)
}- Bruce Interpreter
- Deviant Ollam: Key-and-Pin-Decoding
- Flipper Zero: KeyCopier
- LILYGO T-Embed CC1101
- ASSA Mow
For educational, CTF and red team use only.
Don't break the law. Don't be a jerk.