https://github.com/0x6r1an0y/sketchobfus
Just scrambles your arduino code variable names to make the code harder to read.
https://github.com/0x6r1an0y/sketchobfus
arduino arduino-uglier obfuscate uglier vibe-coding
Last synced: about 2 months ago
JSON representation
Just scrambles your arduino code variable names to make the code harder to read.
- Host: GitHub
- URL: https://github.com/0x6r1an0y/sketchobfus
- Owner: 0x6r1an0y
- License: gpl-3.0
- Created: 2025-04-22T16:16:44.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-04-28T06:14:55.000Z (7 months ago)
- Last Synced: 2025-06-28T00:05:22.728Z (5 months ago)
- Topics: arduino, arduino-uglier, obfuscate, uglier, vibe-coding
- Language: Python
- Homepage:
- Size: 52.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SketchObfus
- Focused on what it does best: making things slightly uglier.
- This program relies on Regex to "detect" variable/function names, rather than using a Abstract Syntax Tree.
| before | after |
|:------------:|:-------------:|
|
|
|
---
## 🔧 Features
- Removes both C-style (`/* */`) and C++-style (`//`) comments
- Obfuscates:
- Global and local variables
- Function names
- Function parameters
- Object instances (e.g., `Servo myServo;`)
- Ignores Arduino reserved keywords and function names
- Outputs clean, comment-free obfuscated code
## 📦 Requirements
- Python 3.13
## 🚀 Usage
### 1. via python interpreter
(1) Clone this project
```bash
git clone https://github.com/brianoy/SketchObfus.git
```
(2) Start obfuscated the code
```bash
python SketchObfus.py your_sketch.ino
```
This generates an obfuscated version of the sketch named `your_sketch_obf.ino`.
You can also specify a custom output filename:
```bash
python SketchObfus.py your_sketch.ino obfuscated_output.ino
```
---
### 2. via cmd command
[lastest binary download](https://github.com/brianoy/SketchObfus/releases/latest)
(1) Clone this project
```bash
git clone https://github.com/brianoy/SketchObfus.git
```
(2) Compile the python script
```bash
pip install auto-py-to-exe
```
###### Compiling with "Nuitka" may cause Windows Defender to flag the generated .exe as a malicious file, use pyinstaller instead.
```bash
pyinstaller --noconfirm --onefile --console .\SketchObfus.py
```
(3) Start obfuscated the code
You will see the exe file under dist folder, open a cmd window and execute it by:
```bash
SketchObfus.exe your_sketch.ino
```
You can also specify a custom output filename:
```bash
SketchObfus.exe your_sketch.ino obfuscated_output.ino
```
## 📁 Example
Before:
```cpp
int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
```
After:
```cpp
int _0xA3B1C2D4 = 13;
void setup() {
pinMode(_0xA3B1C2D4, OUTPUT);
}
void loop() {
digitalWrite(_0xA3B1C2D4, HIGH);
delay(1000);
digitalWrite(_0xA3B1C2D4, LOW);
delay(1000);
}
```
## 🛡️ Limitations
- Not suitable for sketches that rely on external macro-generated names or dynamically referenced variables.
- Does not analyze code semantically — relies solely on regex patterns.
## 🤝 Contributing
- 🐛 Found a bug? Feel free to open an issue.