Krakenwanderung

Die Datenkrake ist ein nützliches Haustier in der Siedlerhütte: Sie frisst simple Textdateien – Logdateien im CSV-Format, wie sie von Winsol produziert werden – und spukt dann ihre Meinung dazu in Form von Tabellen und Bildchen aus.

Zu diesen Kunststückchen wird sie vom Krakenbändiger durch eine Reihe netter Tools motiviert:

Die Krake arbeitet genügsam im Hintergrund und erfordert wenig Aufmerksamkeit – abgesehen von extremen Ausnahmesituationen wie Firmwareupgrades, die die Logfiles-Struktur durcheinander werfen.

Ein altmodisches Biotop war lange Zeit ausreichend, und eine sehr smarte Steuerung achtete genau darauf, dass die Datenkrake nicht zuviel Energie verbrauchte:

Der Kippschalter der Krake und seine intelligente Steuerung

Der Kippschalter der Krake und seine intelligente Steuerung

Aber irgendwann wuchs der Hunger der Datenkrake und sie benötigte einfach mehr Ressourcen …

Was man in einem dünn und schwächlich anmutenden Notebook so alles findet...

Was man in einem dünn und schwächlich anmutenden Notebook so alles findet…

… und so ließ sie in ihrem neuen Biotop nieder:

Ökologisch korrektes Krakenbiotop.

Ökologisch korrektes Krakenbiotop.

Aber das Elkement packte der Ehrgeiz und ein nostaglischer Schub: die Urkrake sollte in ihrer Kippschalter-gesteuerten Heimat auch noch weiterleben dürfen. D.h. die Krake wurde trotz der ökologisch korrekt anmutendenden Züchtungsweise de facto geklont.

Hier muss nun ein Software-Tool besonders hervorgehoben werden:

Winsol: Wir wissen nicht, warum das Logo ein zerbrochenes W zeigt - funktioniert eigentlich alles super!

Wir wissen nicht, warum das Logo ein zerbrochenes W zeigt – funktioniert eigentlich alles super!

Jegliches scheinbare Product Placement in diesem Posting ist unbeabsichtigt und rein zufällig – egal ob die Logos aus Redmond oder Amaliendorf kommen.

In der grafischen Oberfläche von Winsol werden die Daten der ausgewählten (angeklickten) Siedler zum automatischen Abholen reserviert. Automatisch heißt: beim Start des PCs:

Winsol: Autostart-Einstellungen

Winsol: Autostart-Einstellungen. Geschwärzt: Die Namen jener Siedler, deren Daten man vom CMI – Control and Monitoring Interface – ‚automatisch‘ abholen möchte, zwecks weiterer Analyse durch die Datenkrake

Das automatische Abholen wird über eine Verknüpfung in folgendem Ordner durchgeführt: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

… und in den Eigenschaften der Verknüpung verbirgt sich ein Schatz!

winsol -a

Winsol: Eigenschaften der beim Setup erstellten Verknüpfung im Startup-Ordner.

Winsol: Eigenschaften der beim Setup erstellten Verknüpfung im Startup-Ordner.

Damit die Urkrake mit Kippschalter und die Turbokrake mit Touchscreen friedlich koexistieren können, sollen die Logfiles kontrolliert abgeholt werden – unmittelbar bevor die anderen Tools Powered by Microsoft & Elkement zum Einsatz kommen. Die Verknüpung wird daher aus dem Startup-Ordner verschoben und dafür winsol mit der Option -a in der  Krakenkommandozentrale ergänzt.

Zwei Kraken nutzen dann friedlich das gleiche Datenverzeichnis für Winsol, solange nicht beide gleichzeitig den Zauberspruch winsol -a aufsagen: Jede Krake befüllt das gemeinsame Verzeichnis wechselweise – die jeweils andere Krake findet dann beim nächsten Start der Krakenauswertungen oder der grafischen Oberfläche von Winsol automatisch die aktuellen Daten vor!

Diese Vorgangsweise wird möglicherweise vom Softwarehersteller nicht supported.

Was sich die Siedler noch wünschen würden, wäre ein Befehl:

winsol -a [Siedler]

… um das Aus- und Anhaken automatisieren zu können.

Die ganz Mutigen können aber auch in Winsol.xml-Datei im Benutzerprofil schreiben um die Hakerl (Häkchen) zu automatisieren – eine möglicherweise vom Softwarehersteller nicht supportede Vorgehensweise …

Winsol: Konfigurationsdatei winsol.xml im Profil des aktuellen Benutzers

Winsol: Konfigurationsdatei winsol.xml im Profil des aktuellen Benutzers: Die automatisch / per winsol -a abzuholenden Kunden werden im Autostart-Element eingetragen. (Diese XML-Datei ist zu unterscheiden von den zusätzlichen Konfig-Dateien pro CMI / pro Kunde in den jeweiligen Datenordnern).

____________________________________________________________________

Epilog: Das Elkement begab sich auf die Suche nach lehrreichen Informationen zur Wanderung echter, biologischer Kraken. Google fragte aber, ob wir nicht nach Krötenwanderung suchen wollen … aber dann finden wir die echte Krakenwanderung: Streetart aus Hamburg!

Ingenieurssoftware-Archäologie

Ingenieurssoftware hat oft eine kleine aber feine Zielgruppe – ein Grüppchen, das globale Softwarekonzerne nicht unbedingt im Visier haben. Dementsprechend atmet die Benutzeroberfläche oft nolstalgisch-spartanischen Charme.

Aber auch in den Tiefen solcher Software gibt es aufsehenerregende Funde aus dem Software-Paläozoikum – genau das richtige für das Elkement, das diese Bugs versteckten Features unerbittlich erschnüffelt. Von einem Paradebeispiel aus der täglichen Schnüffelpraxis soll diese Geschichte handeln! Wie der prähistorische Schnüffler aus Ice Age ist das Elkement beharrlich … und wird aber am Ende ausgetrickst.

Was man hätte sehen sollen (in jener Software): Ein Bild der Bedienelemente einer Regelung und darüber schwebende Zahlen. Mit Rumspielen an den abgebildeten Knöpfchen hätte man das echte Gerät simulieren können.

Was man sah: Eine Fehlermeldung in einem mutmaßlich fernöstlichen Zeichensatz.

Natürlich fragt der geübte Sniffer als Erstes Google Translate um Hilfe:

Die [XY]-Gerätedatei kann nicht gelesen werden.

… und es gibt tatsächlich eine Datei xydevice.xls … die sich aber mit Excel lesen lässt (?!) … also zumindest lassen sich die überwiegend fernöstlichen Zeichen in den Tabellen darin betrachten.

Nächster Schritt: Wahlloses Durchtesten der üblichen Fallstricke für Software aus vergangenen Epochen? 32bit versus 64bit? Administrator-Rechte? Dateiberechtigungen? Muss eine alte Windows-7-Maschine wiederbelebt werden? … und tatsächlich: Ein einziges Mal sieht der erschöpfte Schnüffler ganz kurz die Animation der XY-Regelung: Beim ersten Test auf einer paläozoischen Maschine (Windows 7 und 32bit). Leider ist der Test nicht reproduzierbar, also wird unerschrocken weitergeforscht.

Ein professionelles Schnüffelwerkzeug – Microsoft Sysinternals Process Monitor – zeigt, dass die Software erfolgreich auf die rätselhafte Datei zugreift:

Process Monitor: Prüfung Zugriff auf xls-Datei durch Anwendung

Kurz vor dem Zugriff arbeitet sich die Software durch Datenbanktreiber (‚JET‘) für Office-Dateien – die letzte davon ist msexcl40.dll – damit kann eine XLS-Datei wie eine Datenbank abgefragt werden.

Aber in dieser Schnüffelspur sieht man keine Fehlermeldung: Die xls-Datei wird geschlossen, bevor das Popupfenster mit Fehlermeldung erscheint … also ist die Anwendung halbwegs kontrolliert mit dem Fehler fertig geworden und hat ihn richtig ‚gehandled‘.

Das Elkement bzw. die Datenkrake haben langjährige einschlägige Erfahrung im wilden Basteln mit Konstrukten aus Excel- / Access- und Textdateien, die zu fragilen Datenbanken vereinigt werden. D.h. im Programmierer aus der fernen Zeitzone erkannte das Elkement eine verwandte Seele. Es versuchte, sich in diesem Lao Tse der Office-Programmierung hineinzufühlen. Beim einzig erfolgreichen Start des Programms waren einige XML-Dateien erzeugt worden. Soweit erahnbar durch Zeichenvergleich, wurden aus der xls-‚Datenbank‘ Einträge zu einem Gerät bestimmten Typs gelesen und in die XML-Datei geschrieben.

Aber was ging schief? Der Schnüffler der nächsten Tiefe wird gestartet – der Windows Debugger WinDbg (Teil der Debugging tools for Windows). Mit Reverse-Engineering-Halbwissen stolpert das Elkement zur nächsten unhandled oder handled exception – und wieder fällt msexec40.dll unangenehm auf:

Output Windows Debugger - Fehler bei Datenbankzugriff - msexec40.dll

Und da war sie endlich – die google-bare Fehlermeldung im Microsoft-O-Ton:

Unexpected error from external database driver (1).

So richtig optimistisch machte dieser eher generisch und schlicht gehaltene Text ja nicht. Aber man glaubt es kaum – es gab tatsächlich einen relativ neuen Microsoft-Artikel, der exakt diesen Fehler im genau passenden Kontext auflistet. In einem Überblick über  Betriebssystem-Updates von Herbst 2017 wird über ein Problem mit älteren JET-Datenbanktreibern für xls-Dateien brichtet – über einen neuer Fehler, der genau seit diesem Windows-Updates auftritt:

Microsoft-Artikel - Problem mit JET-Treiber / xls-Dateien nach Update

Damit kann endlich eine plausible Erklärung für den einzig erfolgreichen Test formuliert werden: Die Software wurde auf diesem länger nicht gestarteten Windows-7-Computer getestet – exakt als die Updates der letzten Monate noch nicht installiert worden waren, inklusive dem in diesem Artikel erwähnten Update.

Auch der dezente Hinweis von Microsoft, doch einen neueren Datenbanktreiber zu verwenden – neuer als Stand Office 2007 – passt dazu: Die ausführbaren Dateien der prähistorischen Softwaren waren alle ca. 10 Jahre alt.

Wie der possierlich-zappelige Schnüffler aus Ice Age wurde das Elkement damit mit einem Dilemma konfroniert und ausgetrickst: Um die Sicherheit nicht zu gefährden [Bitte Buzz Words passend einsetzen: Cyber Security – Internet of Things] wurde das unerbittliche Windows Update nicht mehr deinstalliert. Damit bleibt nur zu hoffen, dass entweder Lao Tse den Datenbanktreiber austauscht oder dass Microsoft, wie im Artikel angekündigt, das prähistorische Feature wieder aktiviert.

Unfreundliche Anwendungen mit schlechtem Benehmen

(… oder: Endlich wieder ein Beitrag aus der Akte-X-Serie…)

Das Elkement ist eine typische IT-Security-Abteilung und versucht daher den produktiven Ingenieursabteilungen die tägliche Arbeit so mühsam wie möglich zu machen.

So wurde auf dem Chefingenieurs-Notebook das neueste Windows-10-Feature gleich ausprobiert – Controlled Folder Access. Windows 10 Defender wacht über Zugriffe auf definierte Ordner und wehrt Angriffe von unfreundlichen Applikationen ab.

Und als ebensolche wurden gleich Winsol (und dann auch TAPPS) eingestuft:

Fügt man Winsol.exe in der Windows Defender Konfiguration zur Liste der erlaubten Anwendungen hinzu (Allow an App), ist der Spuk vorbei.

Beim Testen dieser Funktionen wurde das Elkement auf folgendes fundamentale Rätsel der Winsol-Konfiguration aufmerksam: Wo werden die Winsol-Daten eigentlich per Default gespeichert? …. ein jahrelang vernachlässigtes Forschungsgebiet! Die Siedler hatten ja in jeder Winsol-Installation immer gleich ihren eigenen speziellen Logfile-Ordner eingestellt – dort wo z.B. die hungrige Datenkrake auf die Logfiles wartet.

In einer frischen Winsol-Installation begegnet einem aber dieses Mysterium:

Aus Winsol heraus betrachtet – beim Versuch den Standardordner zu ändern, sieht man die neuesten Logfiles in C:\Program Files\Technische Alternative\Winsol\LogX (rechts im Bild). Direkt im Explorer (links im Bild) sucht man den LogX-Ordner aber vergeblich, ebenso wie die Infosol-Ordner mit den Kundendaten:

Bevor sich das Elkement mit so etwas theoretisch beschäftt, wird einmal geschnüffelt mit Microsoft Sysinternals Process Monitor.

Aha! Winsol greift in Wirklichkeit auf einen Unterordner VirtualStore im Benutzerprofil zu – hier gibt es eine ‚Umleitung‘ (REPARSE):

Die Logfiles verstecken sich somit hier:

C:\Users\[Benutzer]\AppData\Local\VirtualStore\Program Files\Technische Alternative\Winsol

Dieser VirtualStore ist ein seit Vista genutztes Sicherheits-Features, wenn Anwendungen etwas zu ‚anmaßend‘ sind. Hier ein Beispiel:

…  in most cases when a developer tells his program to save data in the Program Files folder, for example, program settings, he has completely forgotten that program settings should be a per-user thing! … In other words, a well-behaved application should instead save its settings in the
C:\Users\<User Name>\AppData\Local\<Manufacturer>\<Product>\<Product Version>

Ever since Windows Vista, applications that are not running with raised privileges that try to write to the Program Files (or Program Files (x86)) folder will in fact write to the VirtualStore folder, unknowingly.

Es gibt es aber auch einige offizielle Winsol-Einstellungen pro Benutzer im Ordner:

C:\Users\[Benutzer]\AppData\Roaming\Technische Alternative\Winsol

Hier wird z.B. das Cookie für die Anmeldung am Webportal abgelegt – aber eben nicht die Logfiles.

Zusammengefasst: Möchte man jetzt die aktuelle Winsol-Installation auf einen anderen PC übertragen oder lokal den Ordner ändern – und in mehrfacher Hinsicht ’sicher‘ konfigurieren, also sicher vor Hackern und vor allem für sich selbst auffindbar, geht der unerschrockene Monitoring-Bastler so vor:

  • Winsol wird auf dem Ziel-PC neu installiert.
  • In den Grundeinstellungen wählt man einen Ordner außerhalb von ‚Programme‘ – am besten dort, wo man auch andere Projektdateien speichert – also in einem Ordner für den eine regelmäßige Sicherung erfolgt (Z.B.: Cloud und externe Festplatte)
  • In diesen neuen Ordner werden die Dateien aus dem alten Winsol-Ordner kopiert, also alle ‚eigenen‘ Logdateien, exportierte CSV-Dateien und ggf. auch die Unterordner anderer Kunden im Ordner Infosol. (Das gilt nur dann uneingeschränkt, wenn auch die gleiche Winsol-Version verwendet wird – vor ca. 1 Jahr gab es ja eine subtile mehrstufige ‚Migration‘ bedingt durch Regler- und Software-Updates.)
  • Um sich das einmalige Anmelden am Portal zu sparen, kann auch der Inhalt von C:\Users\[Benutzer]\AppData\Roaming\Technische Alternative\Winsol kopiert werden.
  • In Controlled Folder Access in Windows 10 muss Winsol.exe in die Liste der erlaubten Anwendungen eingetragen werden (oder der Logfile-Ordner ausgenommen – sicherer ist, nur Winsol zu erlauben).

_______________

Nachtrag 2018-01-31: Die Tests wurden mit der Winsol-Version 2.07 durchgeführt, kurz bevor die Version 2.08 zur Verfügung gestellt wurde. 2.07 war auf diesem PC ein Upgrade einer früheren Version.

Installiert man Winsol 2.08 neu (auf Windows 10), dann wird mittlerweile als Standardordner ein Unterordner im Profil vorgeschlagen – gutes Benehmen wie von Microsoft empfohlen 😉

C:\Users\[Username]\Documents\Technische Alternative\Winsol