duffyduckandClaude Opus 4.8 cbd7e74b1c NTFS-Dirty-Bit-Reparatur, Release-Skript und Projekthygiene
- GUI: Dirty-Bit/Fast-Startup beim Mounten erkennen, Rueckfrage mit
  ntfsfix + erzwungenem Schreib-Mount, Button "NTFS reparieren"
- release.py: Version hochzaehlen, CHANGELOG pflegen, commit+tag,
  ISO bauen und als Gitea-Release (tea) mit ISO-Anhang veroeffentlichen
- out/ bleibt im Repo (out/.gitignore), ISOs ignoriert
- .gitignore ergaenzt, versehentlich getrackte __pycache__ entfernt

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-22 12:38:20 +02:00
2026-10-22 12:32:47 +02:00
2026-10-22 12:32:47 +02:00
2026-10-22 12:32:47 +02:00

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.

./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, 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.

./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.

S
Description
No description provided
Readme
792 MiB
v0.1.2
Latest
2026-10-22 10:58:03 +00:00
Languages
Python 91.2%
Shell 7.4%
Dockerfile 1.4%