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: 26 days 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 (6 months ago)
 - Last Synced: 2025-06-28T00:05:22.728Z (4 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.