# PC-Unlocker Grafisches **Offline-Recovery-Tool** für lokale Benutzerkonten unter **Linux** und **Windows**, ausgeliefert als bootfähige **Live-ISO**. Gedacht für IT-Admins und das Zurücksetzen vergessener Passwörter auf Maschinen, zu denen man physischen Zugang und die Berechtigung hat (eigener Rechner, verwaltete Firmen-PCs, Konten ausgeschiedener Mitarbeiter). Gleiche Kategorie wie `chntpw`, Trinity Rescue Kit oder System Rescue CD. ## Was es kann | | Linux | Windows | |---|---|---| | Passwort leeren (blank) | ✅ | ✅ | | Neues Passwort setzen | ✅ (SHA-512) | ❌ siehe Hinweis | | Konto entsperren | ✅ | ✅ | | Zu Admin machen | — | ✅ | **Hinweis Windows:** Ein *neues* Passwort direkt in die SAM zu schreiben ist auf modernen Windows-Versionen unzuverlässig (SYSKEY / geänderte Hash-Formate). Verlässlicher Weg: **Passwort leeren**, anmelden, in Windows neu vergeben. ## Grenzen (bewusst) Verschlüsselte Datenträger (**BitLocker**, **LUKS**) bleiben geschützt — das Tool kann die Verschlüsselung nicht umgehen. Ohne den jeweiligen Schlüssel/Recovery-Key ist die Partition nicht les- oder schreibbar. ## Bedienung 1. ISO auf USB-Stick schreiben (siehe unten) und Zielrechner davon booten. 2. Das Live-System startet automatisch in die GUI. 3. Partition wählen → **Öffnen / Mounten** → erkannte Konten erscheinen. 4. Konto wählen → gewünschte Aktion. Vor dem Beenden hängt das Tool alles sauber aus. ## ISO bauen Einzige Voraussetzung auf dem Build-Host: **Docker**. Sonst muss nichts installiert sein — `live-build` und alle Werkzeuge laufen im Container. ```bash ./build.sh # Ergebnis: ./out/pc-unlocker.iso ``` Auf USB-Stick schreiben: ```bash sudo dd if=out/pc-unlocker.iso of=/dev/sdX bs=4M status=progress conv=fsync ``` > Der Container läuft mit `--privileged`, weil `live-build` Loop-Devices und > Mounts benötigt. ## Release veröffentlichen `release.py` zählt die Version hoch, pflegt das CHANGELOG, committet + taggt, baut die ISO und veröffentlicht sie als **Gitea-Release** mit der ISO als Anhang. ```bash ./release.py # Patch: 0.1.0 -> 0.1.1 ./release.py --minor # 0.1.0 -> 0.2.0 ./release.py --major # 0.1.0 -> 1.0.0 ./release.py --no-build # vorhandene out/pc-unlocker.iso anhängen ./release.py --no-publish # nur lokal (bump, commit, tag, build) ./release.py --dry-run # nur anzeigen ``` Veröffentlichen pusht Release-Commit und Tag nach `origin` und ruft dann `tea release create`. Einmalig nötig: `tea login add` für die Gitea-Instanz. ## App direkt testen (ohne ISO) Auf einem Linux-Host mit `python3-tk`, `chntpw`, `ntfs-3g`: ```bash sudo python3 app/pc_unlocker.py ``` ## Projektstruktur ``` app/pc_unlocker.py GUI (tkinter) app/puk/disks.py Datenträger auflisten/mounten app/puk/linux.py /etc/shadow bearbeiten app/puk/windows.py SAM via chntpw bearbeiten config/ live-build Paketlisten + Autostart-Hook build/Dockerfile Build-Container (Debian + live-build) build/build-iso.sh Build-Logik im Container build.sh Host-Einstieg: Docker bauen + ISO erzeugen ``` ## Rechtlicher Hinweis Nur auf Systemen einsetzen, die dir gehören oder für die du ausdrücklich autorisiert bist. Der unbefugte Zugriff auf fremde Computer ist strafbar.