Die 804 MB grosse out/pc-unlocker.iso war versehentlich im ersten Commit getrackt, wodurch out/.gitignore nicht griff. Datei bleibt lokal erhalten und wird kuenftig ignoriert; Auslieferung erfolgt als Gitea-Release-Asset. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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
- ISO auf USB-Stick schreiben (siehe unten) und Zielrechner davon booten.
- Das Live-System startet automatisch in die GUI.
- Partition wählen → Öffnen / Mounten → erkannte Konten erscheinen.
- 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.
./build.sh
# Ergebnis: ./out/pc-unlocker.iso
Auf USB-Stick schreiben:
sudo dd if=out/pc-unlocker.iso of=/dev/sdX bs=4M status=progress conv=fsync
Der Container läuft mit
--privileged, weillive-buildLoop-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.
./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:
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.