Ich beschäftige mich seit 1986 mit Programmierung. Damals habe ich mittels zweier Bücher begonnen, BASIC autodidaktisch zu lernen. Die ersten "Programme" habe ich auf Papier geschrieben, da ich damals noch keinen Computer hatte. Erst 1989 habe ich mir meinen ersten Computer - einen ZX Spectrum - gekauft. Hier habe ich erstmals auch in Z80-Assembler programmiert. Zuvor hatte ich nur über den Informatikunterricht der Schule die Möglichkeit, einen KC-85/3 zu nutzen. Ab 1988 habe ich begonnen, mich auch mit Turbo Pascal zu beschäftigen. Die dazu nötigen Rechner wurden über das Studium bereitgestellt: KC-85/3, KC-87 und PC 1715. 1991 habe ich mir dann den ersten "richtigen" PC gekauft: einen 386 SX/20 mit 4 MB RAM. Damit habe ich viele kleine Anwendungen rund um das Betriebssystem (MS-DOS 6.2) und die Grafikkarte in Turbo Pascal und Assembler geschrieben. Ab 1995 habe ich dann auch mit der Windows-Programmierung begonnen - diesmal in Visual Basic 3.0 und Turbo Pascal für Windows. Ab 1998 habe ich dann unter Windows 98 programmiert. Hauptsächlich mit Delphi und Visual Basic 6.0. Ab 2006 dann auch mit Visual Basic 2005 (.NET Framework 2.0) und Turbo Delphi. 2012 habe ich ein erstes Programm in C# geschrieben.

Nachfolgend stelle ich eine kleine Auswahl an Anwendungen zur allgemeinen Verwendung ("Freeware") zur Verfügung. Bei Bedarf kann ich auch den Quellcode bereitstellen. Die Programme kommen sämtlich ohne Installer. Einfach herunterladen und in ein Verzeichnis entpacken (ich empfehle WinRAR oder 7-Zip, falls es nichts kosten soll). Für eventuell entstehende Schäden beim Einsatz der Anwendungen übernehme ich keine Verantwortung. Die Dateien sind Viren- und Trojanerfrei und werden von mir selbst für den persönlichen Bedarf eingesetzt.

Da es anscheinend großes Interesse an meinen NTFS-Tools gibt, habe ich die Delphi-Quellcodes einmal hier abgelegt. Viel Spaß damit.

Alexander Freudenberg

DuamonXP

In GetRight gab es früher in der rechten unteren Ecke eine kleine Anzeige über den Datentransfer. Diese Anzeige habe ich in eine eigene Anwendung überführt. Das kleine Fenster kann frei auf dem Desktop platziert werden und wird immer im Vordergrund angezeigt werden. Diese Version des Programms unterstützt nur Dialup-Adapter (Modem, ISDN).

Ethermon

Diese Anwendung überwacht jeglichen Netzwerkverkehr und zeigt ihn in der gleichen Form an wie DuamonXP. Ethermon benutzt die Funktion GetIfTable aus der iphlpapi.dll.

Hash

Mit Hash kann man sich für beliebige Dateien die Hash-Werte MD5, CRC32 und SHA-1, SHA-224, SHA-256, SHA-384 und SHA-256 anzeigen und vergleichen lassen.

JumpReg

JumpReg dient dazu, einen gegebenen Registryeintrag, den man sich z.B. von einer Internetseite kopiert hat, in Regedit "anzuspringen", ähnlich, wie das der Registry Monitor von www.sysinternals.com tut.

hdTempLogger

Mein erstes .NET-2.0-Programm. Es nutzt WMI-Funktionen, um für die erste angeschlossene Festplatte die Temperatur im Tray und einer Grafik darzustellen. Daneben können auch die S.M.A.R.T.-Werte angezeigt werden.

 

MELE

Abkürzung für McAfee Exclusion List Editor. In VirusScan 9.0 und 10.0 gibt es intern die Möglichkeit, über Registryeinträge bestimmte Dateien und Verzeichnisse vom On-Access-Scan auszuschließen. Dafür gibt es jedoch von McAfee keine GUI. Mein Programm schließt diese Lücke.

 

SudokuSolver

Die Sudoku-Welle hat 2005 auch Deutschland erfasst. Anstatt die vielen Rätsel durch den mühevollen Bleistift-Algorithmus zu lösen, hatte ich mehr Spaß daran, eine programmgestützte Lösungshilfe zu schreiben. Damit war das Phänomen Sudoku für mich abgehandelt.

 

WinEnumPS

Die Lektüre des Buches "Windows Internals" von Mark Russinovich und David Solomon hat mich dazu angeregt, einmal den virtuellen Adressraum von Userprozessen mit der Funktion VirtualQueryEx zu untersuchen. WinEnumPS listet alle Prozesse und die darin gemappten DLLs und Memory-mapped Files auf. Man kann sich auch den maximal für den Prozess verfügbaren virtuellen Speicher anzeigen lassen (beispielsweise sind DLLs, die ihre preferred base address bei 10000000h haben, dafür verantwortlich, dass man per VirtualAlloc in Delphi nur etwa 1200 MB kontinuierlichen Speicher anfordern kann). Die Speicherbelegung kann in Form einer Grafik dargestellt werden. Zusätzlich kann man sich einzelne Speicherbereiche aller Prozesse im Detail ansehen. Dazu wird das SeDebugPrivilege angefordert.

 

TXTEVTVWR

Mit dem TXT Event Log Viewer kann man Eventlog-Dateien, die im TXT- oder CSV-Format vorliegen, anzeigen lassen. Es werden die Dateiformate bei einem direkten Export aus eventvwr.exe oder bei Erstellung über MPSReports-Tools unterstützt (dumpel.exe). Benötigt .NET Framework 2.0.

 

WhoIsIt

WhoIsIt dient dazu, Namen von Personen zu lernen. Im Programmverzeichnis der whoisit.exe muss eine Datei list.txt liegen, in der Namen und Bilddateien in der Form "Name;Dateiname_inklusive_Pfad" hinterlegt sind. Im Anwendungsdaten-Verzeichnis des Nutzers wird eine Statusdatei abgelegt

 

ImageScan

Mit diesem Programm kann eine Verzeichnisstruktur nach ausführbaren Dateien durchsucht werden. Für jede gefundene Applikation und DLL werden deren interne Informationen und Flags aufgelistet.

 

Internet Explorer Cache Manager

Erlaubt Zugriff auf die Einträge der index.dat für Content, Cookies und History. Die Cacheeinträge können individuell oder komplett gelöscht werden. Es werden die Funktionen FindFirstUrlCacheEntry und FindNextUrlCacheEntry sowie DeleteUrlCacheEntry aus der wininet.dll genutzt.

 

CreatePW

Erzeugt ein Zufallspasswort einstellbarer Länge.

 

HDView

Arbeitet ähnlich wie Diskview von www.sysinternals.com mit dem Unterschied, dass auch die genaue Position von Systemdateien und deren Attribute auf NTFS-Volumes dargestellt wird. Die Anwendung benutzt die DeviceIoControl-Funktionen FSCTL_GET_NTFS_VOLUME_DATA, FSCTL_GET_NTFS_FILE_RECORD und FSCTL_GET_VOLUME_BITMAP. Zum Aufräumen der Unordnung empfehle ich den kostenlosen Defragmentierer JKDefrag.

 


Clonetab

Im Internet Explorer 7.0 gibt es nicht die Möglichkeit, ein Duplikat der aktuell geöffneten Registerkarte anzulegen. Ich habe daher eine Browser-Extension geschrieben, die einen zusätzlichen Menüeintrag unter "Extras" implementiert. Zur Installation ist die Datei clonetab.exe aus dem Archiv in das Verzeichnis C:\Programme\Internet Explorer\Exec zu kopieren. Anschließend muss die Erweiterung durch Ausführen der _install.reg registriert werden. Folgende Einträge werden vorgenommen:

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions\{1D32B349-02E3-47c4-8A17-59FE88810590}]
"CLSID"="{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}"
"MenuCustomize"="tools"
"MenuText"="Registerkarte klonen"
"MenuStatusBar"="Dupliziert die aktuelle Registerkarte"
"Exec"="C:\\Programme\\Internet Explorer\\Exec\\clonetab.exe"

 

PagefileMon

Überwacht die Nutzung der Pagefile-Dateien.

 

NTFSTree

Listet alle Datei- und Verzeichnisobjekte eines NTFS-Volumes auf und summiert die Dateigrößen für die Verzeichnisse inklusive aller Dateien und Unterverzeichnisse auf. Durch den Direktzugriff auf die MFT ist dieser Vorgang sehr schnell. Es werden die Dateigrößen aus der MFT sowie die tatsächlich für alle Attribute und Streams eines Files genutzten Cluster angezeigt. Die Größen der versteckten NTFS-Systemdateien werden ebenfalls angezeigt. Hinweis: Falls Dateien mehrfach angezeigt werden, ist dies kein Bug. Intern legt NTFS manchmal mehrere Dateieinträge mit jeweils einem Teil des Gesamtumfangs für eine Datei an.

 

NTFSniffer

Indiziert ein komplettes NTFS-Laufwerk in wenigen Sekunden und erlaubt eine Volltextsuche nach Dateinamen. Die Suchergebnisse erscheinen sofort bei der Eingabe. Benutzung: NTFSniffer <Laufwerksbuchstabe:>
Es wird eine Cachedatei (*.zbin) im Verzeichnis "%LOCALAPPDATA%\Alexander Freudenberg\NTFSniffer" abgelegt. Unter Windows XP ist "%LOCALAPPDATA%" = "%USERPROFILE%\Lokale Einstellungen\Anwendungsdaten".
In der neuesten Version kann an der Oberfläche zwischen den Laufwerken umgeschaltet werden. Es ist eine einfache RegEx-Suche implementiert. Die Syntax entspricht dem LIKE-Befehl von SQL. Beispiel: abc[0-3]x[^mn]*.z?? findet alle Dateien, die mit abc beginnen, dann eine Ziffer zwischen 0 und 3, ein x, ein Zeichen außer m und n, beliebig viele Zeichen, ein .z und danach genau zwei beliebige Zeichen.
Version vom 21.02.2009: Im Kontextmenü kann eine Datei kopiert, verschoben oder ein Hardlink davon erstellt werden.

 

NTFSDelta

Ein weiteres Programm auf  Basis meiner NTFS-Routinen. Es kann benutzt werden, um Änderungen am Dateisystem zu untersuchen. Es funktioniert nach dem Snapshot-Prinzip. Ein Snapshot dauert nur wenige Sekunden.

 

CleanOutlookCache

Gelegentlich kommt es vor, dass man in Outlook keine Dateianhänge mehr öffnen oder abspeichern kann. Ursache ist, dass der OLK-Ordner, den Outlook für temporäre Dateien benutzt, zu viele Dateien enthält. Mit diesem Programm kann man den Cache leeren.

 

NTFSTop

Zeigt die größten Dateien auf dem ausgewählten Volume an.
Aktualisierung vom 9.8.2009: In einer dritten Spalte wird auch die Anzahl der Fragmente angezeigt. Im Kontextmenü kann die ausgewählte Datei mit contig.exe von www.sysinternals.com defragmentiert werden.

 

SpecialFolders

Zeigt alle verfügbaren Windows-Spezialordner mittels SHGetSpecialFolderPath an (VB 2008).

 

Konsolenanwendung SysEnum

Listet alle geladenen Treiber und deren Position im Kernelspeicher auf. Ergänzung zu driverquery. Kann verwendet werden, um Bluescreen-Speicherpositionen einem Treiber zuzuordnen (falls die Treiber bei jedem Systemstart an die gleiche Stelle geladen werden).

 

SMARTShow

Zeigt die S.M.A.R.T-Attribute aller angeschlossenen Festplatten an. Benötigt .NET Framework 4.0.
Änderung vom 12.3.2011: Zeigt herstellerspezifische Attribute für die Crucial RealSSD C300 an (Micron-Dokumentation)

 

HDAligncheck

Überprüft, ob die Partitionen des Systems an "runden" Grenzen ausgerichtet sind. Das ist insbesondere wichtig bei SSD-Platten. Benötigt .NET Framework 4.0.

 


LinkTimeStamp

Mein erstes C#-Programm. Damit kann man den time_t-Wert in ein lesbares Datumsformat umwandeln. Der Zeitstempel einer ausführbaren Datei oder dll wird in diesem Format abgespeichert und gelegentlich im Zusammenhang mit EventID 1000 im Eventlog angezeigt. Der Dependency Walker zeigt Link Time Stamp in einer Spalte an. Inklusive Source.


TurboBoostUI

Intel hat vor einigen Jahren ein Sidebar-Widget herausgebracht, das den Turbo-Boost-Status von Core-i7- und Core-i5-Prozessoren anzeigen konnte. Da Windows in späteren Versionen Widgets nicht mehr unterstützt, habe ich die Funktionen in einer eigenständigen Anwendung nachgebildet. Es werden alle Turbo-Boost-fähigen Prozessoren aller Generationen unterstützt. .NET Framework 4.5 ist erforderlich. Entwickelt mit Visual Studio Community 2015.
Wasted
Wasted

Das Programm überwacht die Liste der aktiven Prozesse und setzt einmal pro Minute einen Zähler für ausgewählte Prozesse hoch. Damit kann die Laufzeit von Spielen o.ä. gemessen werden. Damit das Programm bei jedem Systemstart läuft, kann man einen Registryeintrag unterhalb von HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run anlegen, der auf den Speicherort der wasted.exe verweist.

ResetMailBadge

Fehlerbild: Die Windows Mail App für Windows 10 zeigt in der Live-Kachel und im Taskleisten-Icon eine falsche Zahl für die Anzahl der ungelesenen Mails in einem Kreis an („Badge“). Ich habe alle in Frage kommenden Mails schon einmal als ungelesen und wieder gelesen markiert. Auch ein Neustart bringt nichts. Was kann man tun?
Die Badge wird in der Datenbank %localappdata%\Microsoft\Windows\Notifications\wpndatabase.db gespeichert. Scheinbar wurde der Wert einmal nicht korrekt aktualisiert. Zur Lösung könnte man den Datensatz manuell bearbeiten, wie ich das hier beschrieben habe. Mit der Anwendung wird dieser Prozess automatisiert. Bitte zur Sicherheit vorher ein Backup der Datenbank anlegen
Servicename
ServiceName

Ermittelt den Anzeigenamen zu einem bekannten Dienstnamen.

Toaster

Unter Windows 10 gibt es rechts den Benachrichtungsbereich (Info-Center). Hier werden von unterschiedlichen Anwendungen so genannte Toast-Meldungen angezeigt. Mit der Anwendung toaster.exe kann man eigene Meldungen anzeigen lassen.
Aufruf: toaster.exe "Hier könnte Ihr Meldungstext stehen"
Sinnvoll ist das zum Beispiel, wenn man sich über Ereignisprotokollmeldungen zeitnah informieren lassen möchte. Man kann Ereignissen in eventvwr eine Aufgabe zuordnen ("Aufgabe an dieses Ereignis anfügen..."). Hier ruft man die toaster.exe auf und übergibt als Argument die gewünschte Meldung.

Beispiel:
"Der Status des Pakets $(PackageIdentifier) konnte nicht in $(IntendedPackageState) geändert werden. Status: $(ErrorCode)."

Damit die o.g. Platzhalter gefüllt werden, muss man zuvor den Aufgabenplanungsjob als xml exportieren und anpassen. Unterhalb des schließenden Tags </Subscription> werden einzelne Felder abgefragt:

    <ValueQueries>
        <Value name="EventID">Event/System/EventID</Value>
        <Value name="ErrorCode">Event/UserData/CbsPackageChangeState/ErrorCode</Value>
        <Value name="PackageIdentifier">Event/UserData/CbsPackageChangeState/PackageIdentifier</Value>
        <Value name="IntendedPackageState">Event/UserData/CbsPackageChangeState/IntendedPackageState</Value>
    </ValueQueries>

Der Aufgabenplanungsjob muss gelöscht und wieder importiert werden.

Siehe http://aymanstechblog.blogspot.de/2012/05/passing-event-details-as-arguments.html

ModalAlert

Zeigt eine Hinweismeldung im Vordergrund an.
Aufruf: ModalAlert "Achtung, jetzt hkommt ein Karton!"

nop

Startet einen Prozess und beendet sich sofort. Anwendungsfall: Wenn man verhindern will, dass eine Anwendung ausgeführt werden soll, kann man die nop.exe als Debugger definieren. Stattt der Anwendung wird dann die nop.exe ausgeführt und es passiert nichts.

Beispiel:
In der Registry muss man folgenden REG_SZ-Eintrag vornehmen, wenn man nicht möchte, dass Chrome den Rechner nach Software durchsucht.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\software_reporter_tool.exe]
"Debugger" = "C:\Tools\nop.exe"

letzte Änderung 06.04.2018