Software

Willkommen in meiner kleinen Softwareschmiede!

Hier finden Sie eine Auswahl an selbstgeschriebenen Werkzeugen und kleinen Helferlein, die einem das digitale Leben etwas vereinfachen sollen. Von Bilderumbenennern über Verschlüsselungenswerkzeuge bis hin zu Authentifizierungswerkzeugen für Funkamateure ist alles dabei.

Ausschnitt aus dem Programmcode von QRATAN.
Ausschnitt aus dem Programmcode von QRATAN.

FAQ

Philosophie

Die meisten Programmpakete sind nur einige Kilobytes groß, beinhalten aber nützliche Werkzeuge mit Enterprise-Funktionalität im Hosentaschenformat. Das macht sie zu interessanten Alternativen zu den Kolossen an Programmen heutiger Tage, die mit aufwändigen Grafiken und Designs daherkommen und eher überwältigen, denn den Zweck erfüllen. Meine Software ist entworfen nach dem „KISS-Prinzip“: „keep it simple and stupid“.

Mir waren und sind bei der Entwicklung folgende Punkte wichtig:

Kompatibilität & Systemanforderungen – wie lege ich los?

Die Softwares sind als Shell-Skripte in Bourne-Shell (sh) für die UNIX-Kommandozeile geschrieben. Sie besitzen als POSIX-kompatible Stand-alone-Lösungen kaum externe Abhängigkeiten und sind dadurch hochportabel, auf-, wie abwärtskompatibel. Einfach das ZIP-Archiv auspacken, die Skripte ausführbar machen und los geht's! Keine Installation oder Kompilation von Quellcode vonnöten.

Zum Ausführbarmachen der Skripte in den Progammverzeichnissen folgenden Befehl ausführen:

$ chmod +x *sh

Die Programme wurden mit höchster Sorgfalt geschrieben und ausführlichst auf verschiedenen Systemen getestet: von kommerziellen UNICES wie Solaris oder AIX über GNU/Linux, MacOS, Haiku oder den BSDs, genauso, wie in verschiedenen Windows-Umgebungen sollten sie laufen.
Für Windows-Benutzer der Professional-Serie bietet Microsoft die "Microsoft Services for UNIX" als Boardmittel von Windows NT 3.1 bis einschließlich Windows 8.1 als hauseigenes Add-On zum Betriebssystem an, um UNIX-Software auf Windows lauffähig zu machen. Seit Windows 10 gibt es das "Linux Subsystem for Windows" mit ähnlicher Funktionalität. Für alle anderen, wie für die Home-Versionen von Windows, gibt es das freie CYGWIN als das Windows-Pondon zu WINE, das dasselbe kann, wie seine Microsoft-Cousins: ein UNIX-Userland auf Windows portieren und bereitstellen.

Wo finde ich Hilfe?

Jedes Softwarepaket wird mit einem ausführlichen Handbuch mit zahlreichen Praxisbeispielen ausgeliefert, das zugleich einen Kurs zum Umgang mit den einzelnen Programmen beherbergt. Damit sollte kein Auge trocken bleiben.
Für eine Kurzhilfe steht, wie bei UNIX-Programmen üblich, die Option "-h" zur Verfügung, die einem eine kurze Info zum Programm und seinen Funktionen ausgibt.
Ausnahmen bilden hier bilder.sh, CPCC und srl.ksh: sie kommen nur mit der Kurzhilfe aus.

Beispiel im Programmverzeichnis für die Kurzhilfe:

$ ./programm.sh -h

Zu manchen Programmen habe ich auch Video-Tutorials aufgenommen:
Zum Video-Tutorial von QRATAN hier klicken und
zum Video-Tutorial von QRAOTP hier klicken.

Lizenzen

Die hier dargebotene Software aus meiner Feder steht, sofern nichts anderes angegeben ist, unter der „GNU GPL 2.0“-Lizenz. Sie ist dem Gemeinwohl dienenden Zwecken bestimmt.

Haftungsausschluss

Es sei noch kurz erwähnt, dass die Benutzung auf eigenes Risiko erfolgt und ich keinerlei Haftung für irgendwelche Schäden übernehmen kann, die aus Besitz, Weitergabe und/oder Benutzung meiner Software resultieren.

Nun aber: nach diesem Pflichthinweis viel Erfolg und viel Spaß mit meinen Programmen!

Amateurfunk & Jedermannfunk

QRATAN – TAN-Generator für Authentifizierungen & mehr

Beispiel einer generierten TAN-Liste.
Beispiel einer generierten TAN-Liste.
Der Ausschnitt zeigt die "Master"-Liste, in der alle Stationen verzeichnet sind.

QRATAN ist ein TAN-Generator für Rufzeichen, mit dem für Notfunkzwecke TAN-Listen zur Authentifikation von Stationen generiert werden können. Es können daneben sowohl einzelne TANs, wie Rufzeichen als Zeichenfolgen zufällig generiert werden.

Damit lassen sich angegebene Rufzeichen einander in der Kommunikationsrichtung zuordnen und für jede Kommunikationsrichtung TAN zur Authentifizierung von Verbindungen generieren, um im Falle einer Kommunikation über ungesicherte, analoge Sprachverbindungen einen arbeitsfähigen Stationsverbund auch dann realisieren zu können, wenn die Kommunikationspartner sich untereinander (stimmlich) nicht (er)kennen. Die Authentifikation des Gegenübers, der zum vertrauenswürdigen Verbund gehören soll, kann so durch richtige Antwort auf die Nachfrage nach einer validen TAN aus seiner Liste gewährleistet werden, die ihm vorab ausgehändigt worden ist. So kann vermieden werden, dass unbefugte Stationen den Verbund kompromittieren und sie zu nicht-autorisierten Handlungen veranlassen, sodass die Vertrauenswürdigkeit in einer Kommunikationskette jederzeit sichergestellt bleibt.

Zur Vollversion der ganzen QRASUITE hier klicken.

Zur Online-Version von QRASUITE Express hier klicken.

Version 1.22 vom 20.01.2024.
Link zum Herunterladen: qratan.zip (27 KiB).


Video-Tutorial:


Hinweis: Das Tutorial bezieht sich auf eine ältere Version von QRATAN. Inhaltlich sind die dargestellten Arbeitsschritte aber nach wie vor valide.

QRAPAD – One-Time-Pad-Generator & mehr

Beispiel von generierten One-Time-Pads.
Beispiel von generierten One-Time-Pads.
Der Ausschnitt zeigt die "Master"-Liste, in der alle Stationen verzeichnet sind.

QRAPAD ist ein One-Time-Pad-Generator für Rufzeichen, mit dem für Notfunkzwecke OTP zur Verschlüsselung von Nachrichten generiert werden können. Es können daneben sowohl einzelne Pads, wie Rufzeichen als Zeichenfolgen zufällig generiert werden.

Mit QRAPAD lassen sich analog zu QRATAN angegebene Rufzeichen einander in der Kommunikationsrichtung zuordnen und für jede Kommunikationsrichtung OTP zur Verschlüsselung von Verbindungen generieren, um im Falle einer Kommunikation über ungesicherte (Sprach-)verbindungen einen arbeitsfähigen Stationsverbund auch dann realisieren zu können, wenn die Kommunikationspartner abgehört werden können. Die Authentifikation des Gegenübers, der zum vertrauenswürdigen Verbund gehören soll, geschieht über die Entschlüsselbarkeit seiner Nachricht mithilfe der OTP, die ihm vorab ausgehändigt worden sind. So kann vermieden werden, dass unbefugte Stationen den Verbund kompromittieren und sie zu nicht-autorisierten Handlungen veranlassen, sodass die Vertrauenswürdigkeit in einer Kommunikationskette jederzeit sichergestellt bleibt, ohne, dass dabei vertrauliche Informationen preis gegeben werden.
Mit QRAPAD lassen sich irgendwelche zufälligen Buchstaben- oder Zahlenkolonnen generieren.
Als netter Nebeneffekt können damit auch Vorlagen generiert werden, mit denen man seine Morsefähigkeiten üben und verbessern kann, insbesondere im Zusammenspiel mit qraqru.sh aus der QRASUITE / aus QRAOTP.

Zu QRAOTP hier klicken und
zur Vollversion der ganzen QRASUITE hier klicken.

Zur Online-Version von QRASUITE Express hier klicken.

Version 1.22 vom 20.01.2024.
WARNUNG: Missbrauch strafbar!
Link zum Herunterladen: qrapad.zip (52 KiB).

Hinweis: Zu diesem Programm habe ich auch ein Video-Tutorial aufgenommen. Es ist Teil der Einführung zu QRAOTP:
Zum Video-Tutorial von QRAOTP hier klicken.

QRAOTP – OTP-Ver- und Entschlüsselung, Zahlensender & vieles mehr…

QRAOTP ist eine Programmserie zur professionellen Ver- und Entschlüsselung vermittels One-Time-Pad, zur Formatierung der Ausgaben nach verschiedenen Diktionen und zur Wiedergabe durch Modems oder Sprachsynthetisierer. Daneben sind sowohl Zahlensender, als auch -empfänger eingebaut, mit denen man obendrein noch bspw. Luftschutzsirenen ansteuern oder Channel marker einrichten kann.

Aus dem Hobbyprojekt des TAN-Generators QRATAN heraus für lokale Notfunkgruppen der Funkamateure, die mit den "Behörden und Organisationen mit Sicherheitsaufgaben" (BOS) als kommunikative Rückfallebene für den Fall einer Katastrophe, wie etwa einem länger andauernden Blackout zusammenarbeiten, ist in weiterer Entwicklungsarbeit in meiner Eigenregie seit Ende Dezember 2022 eine ganze Suite an Programmen und Dokumenten entstanden, die man als eierlegende Wollmilchsau im Rundum-Sorglos-Paket für die praktische Anwendung von One-Time-Pad bezeichnen könnte.
Kurzgesagt handelt es sich dabei um drei äußerst kompakte, hochportable und flexibel anpassbare UNIX-Shell-Programme, die die drei Bereiche von OTP-Generierung, Ver- und Entschlüsselung und Nachrichtenversand als Zahlensender übernehmen können und auf nichts anderes zurückgreifen, als auf Know-how und freie Software; und das auf einem Footprint von rund einem Megabyte Größe, sodass man die ganze Suite sogar auf einer alten Diskette unterbringen könnte und sogar noch Platz für die Schlüssel und Nachrichten hätte.

Im Detail: Sie können in meiner Suite bspw. die Zufallsquelle des OTP-Generators qrapad.sh frei wählen und für Rufzeichen / Stationen / "Agenten" die generierten Pads zuordnen und nach Wunsch formatieren. Sie können mit dem Ver- und Entschlüsseler qracyph.sh einzelne Nachrichten oder auch ganze Dateien ver- und entschlüsseln, die verwendeten OTP-Gruppen verwalten (löschen) und die Nachrichten vorlesbar ausgeben, bzw. abspeichern. Sie können das, was sie lokal codiert und verschlüsselt haben, auch als Zahlensender mit Sprachsynthese ausgeben oder als Modemsignal wiedergeben lassen, sodass es am anderen Ende der Leitung mitgeschnitten werden kann (wie früher aus der Telefonzelle heraus). Sie können die verschlüsselte Nachricht auch zur weiteren Verwendung ablegen, sodass Sie mit dem eigentlichen Zahlensenderprogramm qraqru.sh mehrere Nachrichten für verschiedene Empfänger im Stapel wiedergeben können, die Sie zum Versand vorbereitet haben und können für jeden Sender, bzw. Empfänger den passenden Stationstext generieren lassen, der auf Wunsch ausgegeben und wiedergegeben wird. Ich habe sämtlichste Zahlensender "am Markt" reimplementiert und je im Umfang erweitert: vom alten Stasi-Sender, über den alten BND-Zahlensender, den CIA-Sender aus Egelsbach, den polnischen, sind sogar Diktionen russischer Sender des GRU dabei. Dabei kann meine Suite nicht nur mit Zahlen, sondern auch mit Buchstaben und alphanumerischen OTP umgehen, was bisherige Zahlender und die dazugehörigen Ver- und Entschlüsseler regelmäßig nicht können. Als kleines Schmankerl gibt es eine Emulation der alten Stasi-Sprach-Morse-Maschine "Gerät 32620" mit den deutschen und polnisch-englischen Samples oder dem Morsebetrieb obendrauf, die sowohl die polnischen Kollegen, wie ihre russischen Gegenspieler verwenden. Im Klartext könnte man, wenn man wollte, mit meiner Software einen "falschen" Absender ununterscheidbar vorgaukeln, um die eigene Herkunft zu verschleiern, bzw. einen potentiellen "Gegner" zu verwirren. Aber das will man doch wohl nicht…
Das war nur ein Auszug aus der Funktionsmenge, die implementiert ist. Die Programme enthalten noch unzählige (Detail-)Funktionen mehr, die im Zahlensenderalltag nützlich sind. Die Programme erleichtern sowohl dem Ersteller von Nachrichten (Verbindungsführer) seine Arbeit, wie auch dem Versender von Nachrichten (Sender-Operator), wie auch dem Empfänger (V-Mann) beim Entschlüsseln und automatisieren die notwendigen Arbeitsschritte in der Kette.

Ob ihres Hosentaschenformats steht diese Sammlung mit ihrem üppigen Funktionsreichtum in Umfang und Erprobung professioneller Agentensoftware in nichts nach und übertrifft sie noch in vielen Bereichen. Darum ist sie ein zweischneidiges Schwert, deren Gebrauch abgewogen werden muss und deren Einsatz hohes Verantwortungsbewusstsein verlangt. Diese Werkzeuge wurden insbesondere im Hinblick auf Notfunksituationen geschrieben, die es helfenden Händen ermöglichen sollen, in Not geratenen gesichert weiter zu helfen oder den Katastrophenschutz bei seiner Arbeit gewinnbringend zu unterstützen; etwa, wenn vertrauliche Informationen über ungesicherte Verbindungen weitergegeben werden müssen.
Als Inspirationsquellen für meine Software lagen mir ausschließlich allgemein zugängliche Inhalte zugrunde, die jedermann (im Internet) frei einsehen kann. Ich war selbst erstaunt, wie viel man über diese Thematik so offen findet.


Der Zahlensender in Aktion mit Stasi-Diktion am Dummy load.


Der Zahlensender on air in alternativer BND-Diktion im RTTY-Modus.
Aufgenommen von meinem Funkfreund Thomas alias 13TH240 in seinem Radio shack.

Zu QRAPAD hier klicken und
zur Vollversion der ganzen QRASUITE hier klicken.

Zur Online-Version von QRASUITE Express hier klicken.

Version 1.22 vom 20.01.2024.
WARNUNG: Missbrauch strafbar!
Herunterladen erst nach Authentifizierung möglich durch E-Mail an mich mit kurzer Angabe, wofür die Software eingesetzt werden soll.
Link zum Herunterladen: qraotp.zip (833 KiB).

Video-Tutorial mit den Grundlagen zur Einführung:


Hinweis: Das Tutorial bezieht sich auf eine ältere Version von QRAOTP. Inhaltlich sind die dargestellten Arbeitsschritte aber nach wie vor valide mit einer Ausnahme:
QRAPAD wurde in der Weise weiterentwickelt, dass der Export nun unter Angabe eines zusätzlichen Parameters erfolgt: also "./qrapad.sh -e d -g QRA1-n" oder "./qrapad.sh -e rnd -g QRA1-n".

QRASUITE – die Vollversion

Die QRASUITE beinhaltet beide Teilbereiche von Authentifikation mittels QRATAN und Kryptographie mit der QRAOTP-Sammlung und fasst die komplette Programmserie als Vollversion in einem Archiv zusammen. Sie ist das Ergebnis monatelanger akribischer Forschung und Entwicklungsarbeit auf dem Gebiet der "Kryptofront" und des Spionagewesens. Als Schweizermesser für Funk ein Must-have im digitalen Radio-shack. Ideal für Notfunkzwecke geeignet und genau darauf hin entworfen.

Zu QRATAN hier klicken,
zu QRAPAD hier klicken und
zu QRAOTP hier klicken.

Zur Online-Version von QRASUITE Express hier klicken.

Version 1.22 vom 20.01.2024.
WARNUNG: Missbrauch strafbar!
Herunterladen erst nach Authentifizierung möglich durch E-Mail an mich mit kurzer Angabe, wofür die Software eingesetzt werden soll. Link zum Herunterladen: qrasuite.zip (856 KiB).

Verschiedenes

bilder.sh – Bilderumbenenner

bilder.sh ist ein Dateiumbenenner für Bilder und Videos, der Dateinamen zum Katalogisieren in ein einheitliches Format nach Datum und Zeit überführt. Ich gebrauche es selber, um kryptische Dateinamen meiner Spiegelreflexkamera in ein für mich taugliches Format zu bringen, mit dem ich etwas anfangen kann. Ich nutze es seit über zehn Jahren mit Erfolg. Klein, aber fein.

bilder.sh, Version 1.1.5 vom 18.01.2024.
Link zum Herunterladen: bilder.zip (11 KiB).

*ROFF-Vorlage – Blaupause für eigene Publikationen

Beispiel eines generierten NROFF-Dokuments.
Beispiel eines generierten NROFF-Dokuments.
Der Ausschnitt zeigt die Ausgabe einer Seite auf dem Terminal.

Sind Sie auf der Suche nach einer professionellen, bewährten und ressourcenschonenden Alternative zu Word, Writer oder gar LaTeX? Dann sind Sie hier genau richtig! Denn *roff ist ein universales Textsatzsystem für UNIX und mit über 50 Jahren eines der ältesten Textsatzsysteme überhaupt, das von Hause aus mit fasst jedem UNIX-System mitgeliefert wird.
Damit ist es möglich, professionelle Dokumente ähnlich zu HTML auszuzeichnen und für das Terminal oder als PostScript, bzw. als PDF ausgeben zu lassen. Ob seiner Betagtheit hat es in Mächtigkeit an nichts eingebüßt. Und so kann es auch heute noch verwendet werden, um wissenschaftliche Dokumente, Abschlussarbeiten oder ähnliches druckreif zu erstellen.

„Ist das nicht alles Legacy?“

Fehlanzeige! UNIX-Manpages werden bis heute damit zur Anzeige gebracht, frei nach dem Motto: Was früher funktioniert hat, funktioniert auch heute noch und wird auch noch in Zukunft funktionieren!

Wie?

Genau dafür habe ich diese Vorlage erstellt, mit der der Einstieg in die *roff-Programm-Familie gemeistert werden soll. Als Beispiel ist im ZIP-Archiv eine paper.pdf angehangen, die die Fähigkeiten von *roff veranschaulicht, deren Quelldatei draft.me die Ausgangsbasis darstellt.
Im Übrigen: *roff nimmt einem auch das Erstellen von eigenen Literaturverzeichnissen ab und automatisiert die Zitation. Fehlzitation augeschlossen!

Die Dokumentenerstellung geschieht in einem Dreischritt:
  1. Bibliographie vorbereiten (bibl.ref),
  2. auszeichnen (draft.me) und
  3. kompilieren (compile_pdf.sh).
Am Ende ist das druckreife Ergebnis da in Form eines paper.pdf.

*ROFF-Vorlage:
Link zum Herunterladen: roff.zip (164 KiB).

srl.ksh – Modememulation

srl.ksh steht als Abkürzung für Serial und ist eine Modememulation, die ähnlich wie der UNIX-Befehl cat(1) einen Datenstrom einlesen und wieder anzeigen kann aber eben jenen Datenstrom zusätzlich mit einer angegebenen Geschwindigkeit wiedergibt, so, wie früher Terminals, die hinter Modems mit langsamen Übertragungsraten die Inhalte langsam aufgebaut haben. srl.ksh ermöglicht also, die User-Experience der Achtzigerjahre wieder zu erleben, wo es teils eine Minute gedauert hat, bis eine Seite einer alten Mailbox mithilfe eines Akustikkopplers vollständig geladen war.

Hierbei handelt es sich um ein Shell-Skript für die klassische ksh, das auch mit der Bash kompatibel ist. Dazu muss allerdings die Shebang in der Kopfzeile des Skripts angepasst werden.

Beispiel einer Anpassung der Kopfzeile des Skripts zur Ausführung durch die Bash:

#!/bin/bash

Wie bedient sich srl.ksh?

srl.ksh enthält in seinen Kommentaren Beispiele zur Benutzung. So kann es über vier verschiedene Weisen bedient werden:

  1. Liest von der Standardeingabe stdin und gibt die Eingabe analog zu cat(1) wieder aus:
    $ ./srl.ksh
  2. Liest von stdin und gibt die Eingabe mit einer Geschwindigkeit von 300 Baud wieder aus:
    $ ./srl.ksh 300
  3. Liest die Datei file.txt und gibt sie wieder analog zu cat(1) aus:
    $ ./srl.ksh file.txt
  4. Liest die Datei file.txt und gibt sie mit einer Geschwindigkeit von 300 Baud wieder aus:
    $ ./srl.ksh file.txt 300

srl.ksh kann aber auch über die Pipe (|) nach der Weise wie Nr. 1 oder 2 angesprochen werden, indem man einen Datenstrom in die Standardeingabe des Programms umleitet:

Beispiel:
$ cat file.txt | ./srl.ksh 300
Die Eingabe wird in diesem Fall mit einer Symbolate von 300 Baud wiedergegeben.

srl.ksh:
Link zum Herunterladen: srl.zip (8 KiB).

Spielereien

CPCC – Central Park Control Console

cpcc.sh ist das Jurassic Park System Security Interface. Schaffen Sie es, die Sicherheitssysteme neu zu starten und die Dinos wieder in ihr Gehege zurück zu bringen, bevor es zu spät ist? Vergessen Sie nicht das Zauberwort!

„It's a UNIX system! I know this!“ – Lex Murphy, gespielt von Ariana Richards.

CPCC, Version 4.0.5, Alpha E vom 18.01.2024.
Link zum Herunterladen: cpcc.zip (10 KiB).

Downloads

bilder.sh, Version 1.1.5 vom 18.01.2024.
Link zum Herunterladen: bilder.zip (11 KiB).

CPCC, Version 4.0.5, Alpha E vom 18.01.2024.
Link zum Herunterladen: cpcc.zip (10 KiB).

QRATAN, Version 1.22 vom 20.01.2024.
Link zum Herunterladen: qratan.zip (27 KiB).

QRAPAD, Version 1.22 vom 20.01.2024.
WARNUNG: Missbrauch strafbar!
Link zum Herunterladen: qrapad.zip (52 KiB).

QRAOTP, Version 1.22 vom 20.01.2024.
WARNUNG: Missbrauch strafbar!
Herunterladen erst nach Authentifizierung möglich durch E-Mail an mich mit kurzer Angabe, wofür die Software eingesetzt werden soll.
Link zum Herunterladen: qraotp.zip (833 KiB).

QRASUITE, Version 1.22 vom 20.01.2024.
WARNUNG: Missbrauch strafbar!
Herunterladen erst nach Authentifizierung möglich durch E-Mail an mich mit kurzer Angabe, wofür die Software eingesetzt werden soll.
Link zum Herunterladen: qrasuite.zip (856 KiB).

*ROFF-Vorlage.
Link zum Herunterladen: roff.zip (164 KiB).

srl.ksh.
Link zum Herunterladen: srl.zip (8 KiB).

Ausschnitt aus dem HTML-Quelltext dieser Webseite.
Ausschnitt aus dem HTML-Quelltext dieser Webseite.
Nichts ist verhüllt, was nicht enthüllt wird, und nichts ist verborgen, was nicht bekannt wird.“


↑ nach oben ↑