Notizen zu verschiedenen Computerthemen
Windows Registry
Die Windows Registry enthält 5 Haupt-Hives. HKEY steht für "Handle to Registry Key".
- HKEY_CLASSES_ROOT (HKCR)
- HKEY_CURRENT_USER (HKCU)
- HKEY_LOCAL_MACHINE (HKLM)
- HKEY_USERS (HKU)
- HKEY_CURRENT_CONFIG (HKCC)
Die Windows Registry ist über mehrere Dateien verteilt.
Registry-Schlüssel | Datei | Kommentar |
---|---|---|
HKEY_CLASSES_ROOT | C:\Users\<username>\NTUSER.DAT und C:\Windows\System32\config\SOFTWARE | kombiniert HKEY_LOCAL_MACHINE\SOFTWARE\Classes und HKEY_CURRENT_USER\Software\Classes |
HKEY_CURRENT_USER | C:\Users\<username>\NTUSER.DAT | kontospezifische Einstellungen von <username> |
HKEY_LOCAL_MACHINE\BCD00000000 | \EFI\Microsoft\Boot\BCD | Boot Configuration Data |
HKEY_LOCAL_MACHINE\HARDWARE | - | wird dynamisch generiert |
HKEY_LOCAL_MACHINE\COMPONENTS | C:\Windows\System32\config\COMPONENTS | Zustand von Windows-Funktionen und -Updates, muss eventuell manuell in den Registry Editor geladen werden |
HKEY_LOCAL_MACHINE\SAM | C:\Windows\System32\config\SAM | Security Accounts Manager, enthält Benutzernamen und Passwort-Hashes |
HKEY_LOCAL_MACHINE\SECURITY | C:\Windows\System32\config\SECURITY | Sicherheitsrichtlinien und Benutzerrechte |
HKEY_LOCAL_MACHINE\SOFTWARE | C:\Windows\System32\config\SOFTWARE | systemweit geltende Einstellungen für Windows und Anwendungen |
HKEY_LOCAL_MACHINE\SYSTEM | C:\Windows\System32\config\SYSTEM | Windows-Einstellungen, die während des Startens benötigt werden (z.B. für Treiber) |
HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase | C:\Windows\System32\config\DRIVERS | - |
HKEY_USERS\.DEFAULT HKEY_USERS\S-1-5-18 | C:\Windows\System32\config\DEFAULT | Einstellungen für das "Lokale System" (local system) |
HKEY_USERS\S-1-5-19 | C:\Windows\ServiceProfiles\LocalService\NTUSER.DAT | Einstellungen für den "Lokalen Dienst" (local service) |
HKEY_USERS\S-1-5-20 | C:\Windows\ServiceProfiles\NetworkService\NTUSER.DAT | Einstellungen für den "Netzwerkdienst" (network service) |
HKEY_CURRENT_CONFIG | - | wird dynamisch generiert |
Neben den oben beschriebenen Dateien gibt es auch noch .LOG1 und .LOG2 Dateien, die als Zwischenspeicher für Änderungen dienen, bevor sie in die Hauptdatei geschrieben werden. Mit dem Registry Editor "reged" lassen sich auch unter Linux die Windows Registry-Einträge lesen und bearbeiten.
apt install chntpw
# convert to readable output
reged -x NTUSER.DAT HKEY_CURRENT_USER \\ output.reg
reged -x SYSTEM HKEY_LOCAL_MACHINE\SYSTEM \\ output.reg
# export registry key:
reged -x SOFTWARE HKEY_LOCAL_MACHINE\SOFTWARE "Microsoft\Windows NT\CurrentVersion\Fonts" fonts_original.reg
# import registry
echo y | reged -I SOFTWARE HKEY_LOCAL_MACHINE\SOFTWARE fonts_modified.reg
# read and edit the registry
reged -e NTUSER.DAT
ls
cd KEY
cd ..
q
# display usernames of local accounts
chntpw -l SAM
Scharfe Schrift unter Windows
Die Standard-Einstellung für Schrift bei Windows 7 und Windows 10 war "Cleartype". Cleartype hat bei mir keine scharfe Schrift erzeugt. Deshalb habe ich die Kantenglättung über die Windows Registry ausgeschaltet und dadurch scharfe Schrift unter Windows erhalten.
[HKEY_CURRENT_USER\Control Panel\Desktop\]
# or for the local system:
# [HKEY_USERS\.DEFAULT\Control Panel\Desktop\]
# if you see value 2 for FontSmoothing it means cleartype is enabled
FontSmoothing=2
FontSmoothingType=2
# change FontSmoothing to "deactivated" (0)
FontSmoothing=0
# change FontSmoothingType to "gray font smoothing" (1)
FontSmoothingType=1
# not necessary / optional - replace fonts:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"Segoe UI"="Tahoma"
"Segoe UI Light"="Tahoma"
"Segoe UI Semibold"="Tahoma"
"Segoe UI Symbol"="Tahoma"
Windows 10 Sperrbildschirm / Lockscreen
Das Bild für den Sperrbildschirm bei Windows 10 befindet sich unter:
C:\ProgramData\Microsoft\Windows\SystemData\S-1-5-18\ReadOnly\LockScreen_Z\
Wobei Z bei LockScreen_Z auch ein anderer Buchstabe sein kann (z.B. P).
Das Bild kann von anderen Verzeichnissen dorthin kopiert worden sein. Zum Beispiel:
C:\Windows\Web\Screen
C:\Windows\Web\Wallpaper
Es kann auch nötig sein, einen Blick in die Registry zu werfen:
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Personalization
RegSZ = LockScreenImage
ValueData = Your path
Position von NTFS Dateien finden
Das Windows-Dateisystem "NTFS" (New Technology File System) speichert Dateien in Clustern. Um die Cluster-Position einer Datei unter Linux auszulesen, helfen folgende Befehle:
# replace sdX1 with your NTFS partition
ntfsinfo -m /dev/sdX1
# outputs the NTFS cluster size:
Cluster Size: 4096
# get the location / position of a file in NTFS:
ntfscluster -F /Users/user/Pictures/myPicture.png /dev/sdX1
# or in decrypted BitLocker partitions:
ntfscluster -F /Users/user/Pictures/myPicture.png /mnt/dislocker-file
# possible output:
VCN LCN Length
0 138237 2
2 18274510 127
# LCN == logical cluster number
# VCN == virtual cluster number
# length are blocks with cluster size (e.g. 4096)
Die logische Clusternummer (LCN), die das Linux-Programm "ntfscluster" ausgibt, muss mit der Cluster Size multipliziert werden. Im oberen Beispiel wäre das 138237 (LCN) * 4096. Der erste Teil der Datei befindet sich folglich an Byte-Position: 566218752 und ist 2 * 4096 = 8192 Byte groß. Der zweite Teil der Datei befindet sich an Position 18274510 (LCN) * 4096 und ist 127 Cluster-Blöcke groß. Mit den folgenden Befehlen kann die Datei von der Partition gelesen werden, ohne dass die Partition dafür gemountet werden müsste.
dd if=/dev/sdX1 of=myPicture.png_part1 bs=4096 count=2 skip=138237
dd if=/dev/sdX1 of=myPicture.png_part2 bs=4096 count=127 skip=18274510
# combine the two parts:
cat myPicture.png_part1 myPicture.png_part2 > myPicture.png
Da eine Datei nicht immer ein Vielfaches der Cluster-Größe (z.B. 4096 Byte) ist, steht unter Windows bei den Eigenschaften einer Datei "Größe" und zusätzlich "Größe auf Datenträger".
NTFS Datei überschreiben
Das Python-Skript cluster_overwrite.py kann eine kleine Datei in einer großen Datei überschreiben. So kann zum Beispiel eine Datei in einer NTFS Partition überschrieben werden.
dd if=/dev/zero of=big_file.bin bs=4096 count=100
echo 1234 > small_file.bin
# overwrite some bytes in the large file:
python3 cluster_overwrite.py big_file.bin small_file.bin 10
strings big_file.bin
# split a file into two parts for the clusters
dd if=newPicture.png of=myPicture.png_part1 bs=4096 count=2
dd if=newPicture.png of=myPicture.png_part2 bs=4096 count=127 skip=2
# example to replace a file in an NTFS partition at logical cluster number 138237
python3 cluster_overwrite.py /dev/sdX1 myPicture.png_part1 138237
python3 cluster_overwrite.py /dev/sdX1 myPicture.png_part2 18274510
Um ein JPG Bild auf die gewünschte Größe zu bringen, können ans Ende Nullbytes angehangen werden.