131. Buchstaben im Alphabet nach Zufallszahl mit Batch sortieren
Einleitung
Dieses ist eine Abhandlung zu 100 % für Batchschreiber. Für die
ist die Überschrift: wie generiere ich Zufallsbuchstaben. Die nächste
Abhandlung ist dann wieder in VBS. Ist für den Autor auch immer ein
Spagat - wie schaffe ich es, "normale Abhandlungen" über
Batchprobleme zu schreiben, ohne das Ziel einer lauffähigen
Anwendung nicht aus den Augen zu verlieren...
Der Sternenhimmelstuermer schreibt gerade an einer Software für ein
kryptologisches Verfahren. Diese Zwischenabhandlung beschäftigt sich
mit der zufälligen Zuordnung von einem Buchstaben für einen Buchstaben.
Das wird in einem Textdokument festgehalten und später Grundlage für
die Verschlüsselung und Entschlüssung. Die besteht aus einem einfachen
Suchen und Ersetzen - entweder von einer einzelnen Reihe oder einzelner
Blöcke - der Sternenhimmelstuermer schreibt ohne Planung ins blaue
hinein.
Ein Userinterface entstand unter dem Projektnamen NoNSA,
eine vollständige Textverschlüsselung im Browser mit einer HTML-Seite
mit Javascript, die von einer Generatorbatch erzeugt wird. Mit der
einen Version können vollständige Textdokumente mit einer hta über
Base64 verschlüsselt werden. 512 Reihen a 76 Buchstaben bieten eine
einmalige Verschlüsselungsalternative im Internet. Der Motor wird auf
dieser Seite beschrieben.
So können Alternativen zu Babel entstehen, basierend auf dem Quellcode
des Sternenhimmelstuermers, was O. K. ist, wenn man auf den Ursprung,
also diese Seite verweist - alles andere ist geistiger Diebstahl.
Inhaltsangabe
Quellcode für Ziehung eines Buchstabens und Ausdruck von alten - neuen
- neuen alten Buchstaben
Erklärung Schritt für Schritt
Anpassung der Batch: Ziehung von mehreren
unterschiedlichen Buchstaben aus dem Alphabet und Ausdruck untereinander
Quellcode für Ziehung von einem Zufallsbuchstaben a - z
leicht gekürzt
Gedankenansatz zur Vereinfachung der Programmierung für
Batchschreiber
Quellcode für Ziehung eines Buchstabens und Ausdruck von
alten - neuen - neuen - alten Buchstaben
Name: irgendeinName.bat
set destination=%~dp0%
REM alphatext der durch
Austausch von Buchstaben sicher wird
>"%destination%alpha_1.txt" ECHO a
>"%destination%alpha_2.txt" ECHO b
>"%destination%alpha_3.txt" ECHO c
>"%destination%alpha_4.txt" ECHO d
>"%destination%alpha_5.txt" ECHO e
>"%destination%alpha_6.txt" ECHO f
>"%destination%alpha_7.txt" ECHO g
>"%destination%alpha_8.txt" ECHO h
>"%destination%alpha_9.txt" ECHO i
>"%destination%alpha_10.txt" ECHO j
>"%destination%alpha_11.txt" ECHO k
>"%destination%alpha_12.txt" ECHO l
>"%destination%alpha_13.txt" ECHO m
>"%destination%alpha_14.txt" ECHO n
>"%destination%alpha_15.txt" ECHO o
>"%destination%alpha_16.txt" ECHO p
>"%destination%alpha_17.txt" ECHO q
>"%destination%alpha_18.txt" ECHO r
>"%destination%alpha_19.txt" ECHO s
>"%destination%alpha_20.txt" ECHO t
>"%destination%alpha_21.txt" ECHO u
>"%destination%alpha_22.txt" ECHO v
>"%destination%alpha_23.txt" ECHO w
>"%destination%alpha_24.txt" ECHO x
>"%destination%alpha_25.txt" ECHO y
>"%destination%alpha_26.txt"
ECHO z
REM Zuordnung von Buchstaben zur
Codierung und Decodierung
set /a x=0
:Schleife
if %x% GEQ 26 goto ende
set /a x=%x%+1
:neueZahl
SET MIN=1
SET MAX=26
SET /a
Zufallszahl=MIN+(MAX-MIN+1)*%random%/32768
If exist beta_%Zufallszahl%_*.txt (goto
neueZahl) else echo %Zufallszahl% >beta_%Zufallszahl%_%x%.txt
for /f %%a in (beta_%Zufallszahl%_%x%.txt) do
for /f %%i in (alpha_%x%.txt)
do echo %%i >>beta_%Zufallszahl%.log
goto :Schleife
:ende
set /a z=1
:anfang
for /f %%a in (beta_%z%.log) do for /f %%i in
(alpha_%z%.txt) do echo
%%i %%a %%a %%i >>chiffre.txt
if %z% GEQ 26 goto dele
Set /a z=%z%+1
goto :anfang
:dele
del beta_*_*.txt
del beta_*.log
del alpha_*.txt
Erkklärung Schritt für Schritt
set destination=%~dp0%
REM alphatext der durch
Austausch von Buchstaben sicher wird
>"%destination%alpha_1.txt" ECHO a
Erstmal bestimmt die Batch in der ersten Zeile den eigenen Pfad. Dazu
wird eine Variable mit Namen destination geschaffen. Den Namen bei
einer Variablen kann man frei bestimmen.
In der zweiten Zeile verwendet der Sternenhimmelstuermer den "Befehl"
REM (remark). Der Text dahinter ist ein Notizzettel für den
Batchschreiber. Normalerweise arbeitet der Sternenhimmelstuermer ohne
dieses Füllmaterial, aber damit ist die Möglichkeit auf der
Sternenhimmelstuermer zumindest angesprochen...
Die nächste Zeile ist stellvertretend für die nächsten 25 Zeilen. Der
Sternenhimmelstuermer schafft für jeden Buchstaben ein Textdokument mit
dem Buchstaben. Viele Batchschreiber streuben sich dagegen viele
Unterdokumente zu schaffen - ein Riesenfehler: Bei den Vorzeigebatches
dieser Seite von der Archivierung bis zum Duoblettenfinder werden
hunderte von Hilfsdokumenten geschaffen. Wir Batchschreiber haben sonst
keine wirkliche Möglichkeit Arrays zu schaffen und auf die einzelnen
Inhalte zuzugreifen. >"%destination%alpha_1.txt" ECHO a
Das ist also der Pfad zum alpha_1.txt . Der
Schrägstrich ist da immer mit drinnen - kleine Falle nebenbei. Alles
hinter ECHO ist der
Text, der in alpha_1.txt
steht. Bei normalen Buchstaben und keinen Sonderzeichen ist das easy.
Ein Ausgabezeichen > wird immer in der ersten Zeile verwendet,
hingegen zwei Ausgabezeichen >>, wenn man weitere Zeilen
hinzufügen will.
Warum gibt der Sternenhimmelstuermer also jeder Zahl einen Buchstaben?
Weil wir die Buchstaben kurzfristig Zahlen zuordnen müssen, um
mit Hilfe von zufällig generierten Zusatzzahlen dann einzelne
Buchstaben aufzurufen, die dann in diesem Fall zu einer Verschlüsselung
nach dem Zufallsprinzip verwendet werden - wird alles noch erklärt.
Ach ja, mathemathisch gesehen dürfte es dann so um die 26 2
Möglichkeiten geben, um die Buchstaben in eine neue Reihe zu bringen.
Das können Sie natürlich erhöhen, wenn Sie ä,ö,ü und Zahlen einfügen:
Einfach alpha_27.txt und
fortfolgend kreieren und dann die Höhe der Zufallszahlen ändern...eben
die roten Zahlen anpassen!
set /a x=0
:Schleife
if %x% GEQ 26 goto ende
set /a x=%x%+1
:neueZahl
SET MIN=1
SET MAX=26
SET /a
Zufallszahl=MIN+(MAX-MIN+1)*%random%/32768
Der nächste Block deklariert eine Zufallszahl zwischen 0-27. Das
wurde eingehend in der Abhandlung über Lottozahlen abgehandelt. Das
geht dann wieder über eine Schleife. Die 26. mal eine unterschiedliche
Zahl generiert.
If exist beta_%Zufallszahl%_*.txt (goto
neueZahl) else echo %Zufallszahl% >beta_%Zufallszahl%_%x%.txt
Das ist dann die Prüfung If
exist beta_%Zufallszahl%_*.txt
,
ob ein Zufallszahlentextdokument besteht, in dem eine Zufallszahl im
Titel drin steht. Gibt es das nicht, dann wird ein Textdokument mit der
Durchlaufzahl x und der Zufallszahl gebildet (im Titel und Dokument).
for /f %%a in (beta_%Zufallszahl%_%x%.txt) do
for /f %%i in (alpha_%x%.txt)
do echo %%i >>beta_%Zufallszahl%.log
Diese Zeile befremdet Sie vielleicht, aber ist eine altbekannte Größe
für den Sternenhimmelstuermer. Bei zwei einzeiligen Dokumenten kann man
den Inhalt der Dokumente miteinander Kreuzen, so dass Sie als eine
Zeile im neuen Dokument stehen.
for /f %%a in (beta_%Zufallszahl%_%x%.txt) do
heißt übersetzt: Für den Inhalt hier absolut unnötigen for /f %%a des Dokumentes der
gerade gezogen Zufalsszahl beta_%Zufallszahl%_%x%.txt
tue den wichtigen gleichnamigen Inhalt im alpha_%x%.txt
wiedergeben in einem Logdokument mit Namen beta_%Zufallszahl%.log.
Wir haben jetzt also z. B. ein Zufallsdokument beta_13_1.txt im ersten Durchlauf, wenn 13 die
Zufallszahl ist. Der Inhalt ist egal. Dann haben wir ein alpha_1.txt in der zweiten
Hälfte des For-Befehls. Der 1.
Buchstabe im Alphabet ist ein a.
Wir haben nun also ein beta_13.log,
in dem ein a
steht.
Schön und gut wir haben nun also eine 13 und ein a. Also tauschen wir in einem
weiteren Schritt den 13. Buchstaben mit dem a aus...
goto :Schleife
:ende
set /a z=1
:anfang
for /f %%a in (beta_%z%.log) do for /f
%%i in (alpha_%z%.txt) do
echo %%i %%a %%a %%i >>chiffre.txt
Set /a z=%z%+1
if %z% GEQ 26 goto dele
goto :anfang
:dele
Die nächsten zwei Zeilen sind das Ende der ersten Schleife. 26 Mal wird einem Buchstaben eine Zahl
zugeordnet. Bei jedem Durchlauf wird geprüft, ob eine Zahl schon
zugeordnet wurde If exist beta_%Zufallszahl%_*.txt (goto
neueZahl) else echo %Zufallszahl% >beta_%Zufallszahl%_%x%.txt.
Ist das der Fall wird eine neue Zufallszahl gezogen. Ansonsten eine
neue Zahl einem Buchstaben zugeordnet.
Spätestens bei x=26 ist Schluss mit der
Schleife if %x% GEQ 26 goto ende
.
Falls Sie das noch nicht so verstanden haben: Wichtig ist nur zu
wissen, dass jedem Buchstaben nach dem Gesetz des Zufalls eine Zahl
zugeordnet wurde. Das fixieren wir nun in einem weiteren
Dokument....diesmal Zeile für Zeile:
set /a z=1
Wir setzen eine Variable z
auf 1
:anfang
Wir gehen in eine neue Schleife.
for /f %%a in (beta_%z%.log) do for /f
%%i in (alpha_%z%.txt) do
echo %%i %%a %%a %%i >>chiffre.txt
Wir haben nun wieder einen doppelten For-Befehl und verwenden ihn nun
so, wie man ihn normalerweise verwendet bei einer einzeligen
Textdatei!!! Bei zwei Zeilen würde da jede Menge Dokumente
herauskommen, weil alle Kreuzungsmöglichkeiten durch den For-Befehl
durchgegangen werden. Das ist der Stapelverarbeitung geschuldet und aus
zwei mach vier kann man nur selten gebrauchen und aus drei mach neun
noch weniger...
Der Befehl in falschem Deutsch übersetzt:
Für for den Inhalt %%a ( ist ein Buchstabe von
a-z per Zufall eben einer Zeile zugeordnet) von beta_%z%.log
(im ersten Durchlauf ist z=1. Wir wissen, dass es ein beta_1.log - beta_26.log vorliegt. ) tue do wie für den
Inhalt (%%i) von alpha_%z%.txt
(das ist im ersten Durchgang der Schleife definitiv ein a, im zweiten ein b) wiedergeben (do echo) den Inalt %%i (Das %%i bezieht sich auf den
zweiten Teil der Schleife, ist also bei z=1 im ersten Durchlauf ein a.
Das %%i bzw. a
wird dann nicht nur an erster, sondern auch an vierter Stelle
ausgegeben), dann den Inhalt von der ersten Hälfte des For-Befehls %%a zweimal und dann wieder
dann Inhalt des zweiten Dokuments %%i ergänzend in einen Chiffre
Text >>chiffre.txt.
Damit stet im chiffre.txt
z. B. im ersten Durchlauf a g g
a .
Wozu ist das gut? a wird
einmal später durch g
ersetzt und g durch a beim decodieren - eben
umgekehrt. Das mit VBS. Suchen und Ersetzen ist eine Spezialität von
VBS.
Für jemand der nur einen Zufallsbuchstaben haben will: Kürzen Sie die
Zeile. Einfachste Form: einfach nur %%a ausgeben. Dann steht im
Chiffre-Text nur ein zufällig generierter Buchstabe.
Set /a z=%z%+1
if %z% GEQ 26 goto dele
goto :anfang
:dele
Z wird nun auf 2 Set /a z=%z%+1 gesetzt. Das
heißt, dass 26 noch nicht erreicht
ist (if %z% GEQ 26 goto dele)
und somit die Schleife noch nicht verlassen wird. Aha, es werden nun 26
Buchstaben jeweils neue Buchstaben zugeordnet oder wenn Sie die Batch
abändern 26 unterschiedliche Buchstaben nach dem Zufallsprinzip
gezogen. Genausogut könnten Sie nur einen Zufallsbuchstaben
ziehen, wenn Sie die rote 26 in eine
1
umwandeln. Dann würde die Schleife nach Ziehung eines
Buchstabens beendet werden. Das natürlich nur, wenn Sie im
For-Befehl wie o. a. angegeben nur %%a schreiben, also :
for /f %%a in (beta_%z%.log) do for /f
%%i in (alpha_%z%.txt) do
echo %%a >>chiffre.txt
Tja, goto :anfang
ist das Ende der Anfang der zweiten Schleife, da so lange z noch nicht
26 ist, Buchstabe nach Buchstabe in den chiffre.txt eingepflegt
werden.
Wenn die 26 dann erreicht ist, dann hat jeder Buchstabe eine neue
einmalige Bedeutung oder eben pragmatisch gesagt: Sie haben 26 Zeilen a
vier Buchstaben. Die ersten zwei für das Codieren und die beiden andern
für das decodieren. Der If Befehl (if %z% GEQ 26
goto dele) wird aktiv und schickt die Batch zur letzten Zeile dele der Schleife.
del beta_*_*.txt
del beta_*.log
del alpha_*.txt
Die Hilsdokumente werden nun zerstört. Wer sich die ganzen
Hilfsdokumente zum Nachverfolgen anschauen will, der nehme diese drei
Befehle weg. Um Fehler zu überprüfen macht der Sternenhimmelstuermer
das auch-:)
Das war es auch schon. Sie sehen, niemand kann Nachverfolgen, wie Ihr
Buchstabencode verschlüsselt wurde. Jetzt kommt das fiese für
Codeknacker. Man kann den Schlüssel später auf einzelne Zeilen oder
Blöcke anwenden, indem man z. B. für jede Zeile einen neuen chiffre_1.txt, chiffre_2.txt kreiert.
Beim Suchen und Ersetzen in einem Textdokument hieße das, dass immer
ein Teilausschnitt aus einem vollständigen Alphabet, in einer Zeile
verwendet wird, also z. B. in der ersten Zeile eines unverschlüsselten
Textes werden die Buchstaben nach dem Dokument Chiffre_1 ersetzt.
Der Sternenhimmelstuermer behauptet, dass er mit dieser und wenigen
weiteren Schritten, die hier noch vorgestellt werden, einen
unknackbaren Code zumindest für SMS kreieren kann, die er dann in
Viererblöcken verschlüsseln würde - für jeden Block einen Chiffre_*.txt mit erweiterten
Alphabet und zufällig in der Reihe geänderten Blöcken.
Anpassung der Batch: Ziehung von mehreren
unterschiedlichen Buchstaben aus dem Alphabet und Ausdruck untereinander
Wenn Sie zwei oder sieben einmalige Buchstaben aus dem Alphabet ziehen
wollen, um z. B. ein lustiges Quiz daraus zu machen, dann müssen Sie
die erste Batch am Anfang anpassen. Das ist wirklich einfach: if %z% GEQ 26
goto dele
Die rote 26 in die Zahl der
Buchstaben umwandeln die Sie zufällig und
einmalig ziehen wollen. Die Zahl muss dann unter 26 sein und dann die
Zeile:
for /f %%a in (beta_%z%.log) do for /f %%i in
(alpha_%z%.txt) do echo
%%i %%a %%a %%i >>chiffre.txt
durch die Zeile: for /f %%a in
(beta_%z%.log) do for /f %%i in (alpha_%z%.txt) do echo %%a
>>chiffre.txt
ersetzen. Das war es schon.
Einen Zufallsbuchstaben ziehen
Das ist die gekürzte Fassung für die Ausgabe von einem
Zufallsbuchstaben in einem Textdokument.
set destination=%~dp0%
REM alphatext der durch
Austausch von Buchstaben sicher wird
>"%destination%alpha_1.txt"
ECHO a
>"%destination%alpha_2.txt"
ECHO b
>"%destination%alpha_3.txt"
ECHO c
>"%destination%alpha_4.txt"
ECHO d
>"%destination%alpha_5.txt"
ECHO e
>"%destination%alpha_6.txt"
ECHO f
>"%destination%alpha_7.txt"
ECHO g
>"%destination%alpha_8.txt"
ECHO h
>"%destination%alpha_9.txt"
ECHO i
>"%destination%alpha_10.txt"
ECHO j
>"%destination%alpha_11.txt"
ECHO k
>"%destination%alpha_12.txt"
ECHO l
>"%destination%alpha_13.txt"
ECHO m
>"%destination%alpha_14.txt"
ECHO n
>"%destination%alpha_15.txt"
ECHO o
>"%destination%alpha_16.txt"
ECHO p
>"%destination%alpha_17.txt"
ECHO q
>"%destination%alpha_18.txt"
ECHO r
>"%destination%alpha_19.txt"
ECHO s
>"%destination%alpha_20.txt"
ECHO t
>"%destination%alpha_21.txt"
ECHO u
>"%destination%alpha_22.txt"
ECHO v
>"%destination%alpha_23.txt"
ECHO w
>"%destination%alpha_24.txt"
ECHO x
>"%destination%alpha_25.txt"
ECHO y
>"%destination%alpha_26.txt"
ECHO z
REM Zuordnung von Buchstaben zur
Codierung und Decodierung
set /a x=0
:Schleife
if %x% GEQ 26 goto ende
set /a x=%x%+1
:neueZahl
SET MIN=1
SET MAX=26
SET /a
Zufallszahl=MIN+(MAX-MIN+1)*%random%/32768
If exist
beta_%Zufallszahl%_*.txt (goto neueZahl) else echo %Zufallszahl%
>beta_%Zufallszahl%_%x%.txt
for /f %%a in
(beta_%Zufallszahl%_%x%.txt) do for /f %%i in (alpha_%x%.txt) do echo
%%i >>beta_%Zufallszahl%.log
goto :Schleife
:ende
set /a z=1
for /f %%a in (beta_%z%.log) do
for /f %%i in (alpha_%z%.txt) do echo %%a >>chiffre.txt
:dele
del beta_*_*.txt
del beta_*.log
del alpha_*.txt
.
O. K., das geht natürlich eigentlich noch viel kürzer und ist nur ein
Abfallprodukt, da die o. a. Batch erst alle Stärken dieses Codes
ausspielen kann.
Gedankenansatz zur Vereinfachung der Programmierung
für Batchschreiber
Der Sternenhimmelstuermer denkt beim Batchschreiben objektorientiert.
Für Ihn sind die alpa_1.txt
-alpha_26.txt
ein sogenanntes Array. In jeder Nummer der Überschrift ist eine Nummer,
die auf der Metaebene die Positionsnummer innerhalb des Arrays ist -
wer sagt eigentlich, dass ein Array nicht in seine Einzelteile zerlegt
werden kann? Es bleibt immer noch eine Einheit - in diesem Fall das
Alphabet.
Das zweite "Array" sind die
beta_%Zufallszahl%en_Zahl der Ziehung(x). Beta ist dabei die Überschrift
des Arrays und die %Zufallszahl%
die drucheinandergewürfelte Positionen 1 -26. Danach versucht der
Sternenhimmelstuermer den Inhalt der beiden
Arrays zu kreuzen. Die Schwierigkeit dabei war es hie,r die
Zahlen des Arrays in beta_%Zufallszahl%en_Zahl der Ziehung(x) in Buchstaben umzuwandeln.
Das wird für jede Zeile in der Schleife mit der Zeile
for /f %%a in (beta_%Zufallszahl%_%x%.txt) do for /f %%i in
(alpha_%x%.txt) do echo %%i
gemacht. Der Trick ist dabei, dass das x die Zahlen 1 - 26
abdeckt und somit aus dem Alpha-Dokument-Array Zeile für Zeile
(eben in der Schleife) ein neues Beta-Array
erstellt wird,
dessen Reihenfolge sich aus der Zufallszahl bestimmt.
Am Ende werden die beiden Arrays je nach Bedürfnis angezapft. Das ist
dann ein Problem der Ausgabe:
Bei der Ausgabe von einem Zufallsbuchstaben ist eine zweite Schleife
nicht nötig, die Ausgabzeile lautet:
for /f %%a in (beta_%z%.log) do
for /f %%i in (alpha_%z%.txt) do echo %%a >>chiffre.txt
Der alte Buchstabe wird lediglich durch einen neuen ersetzt. Genausogut
könnte man %%a %%i
ausgeben. Wenn Z einer 1 entspricht ist also %%i =a und %%a irgendein Buchstabe.
Bei mehreren unterschiedlichen Buchstaben lautet die Zeile in der
zweiten Schleife:
for /f %%a in (beta_%z%.log) do
for /f %%i in (alpha_%z%.txt) do echo %%a >>chiffre.txt
Ja, dass ist ist dasselbe, weil wir nur die Zahl 26 in der Schleife
geändert haben, z. B. if
%z% GEQ 15 goto dele
zieht 15 zufällige Buchstaben aus dem Array Beta von den Positionen (z)
1-15
Fazit
Das Spielen mit dem Zufall macht Spaß und ist zumindest für den
Sternenhimmelstuermer easy. Die paar Codezeilen waren innerhalb von
zweieinhalb Stunden entworfen, da der Sternenhimmelstuermer noch nicht
wußte, wie er überhaupt an die Verschlüsselung herangeht, eine
annehmbare Leistung - Das Schreiben dauerte wesentlich länger.
Erfreulich- es gab diesmal keine Zeile, an der sich der
Sternenhimmelstuermer aufhängte. Langsam kann der Sternenhimmelstuermer
seine Gedanken im Code ausdrücken und das bedeutet, dass der Autor
dieser Seite dann mit dem Erscheinen von Windows 8 sich erstmal
zurückziehen kann, um sich dann konzentriert der KI zuzuwenden. Das
wird dann nicht mehr veröffentlicht. Der Sternenhimmelstuermer wird
dann vielleicht mit Windows 9 zurückkehren.
Die Zeit läuft ab und die letzte Abhandlung ist dann die
Vorstellung
der Anwendung Babel, mit deren freien Weiterentwicklung vielleicht dann
wirklich sichere Verschlüsselung möglich ist. Der Sternenhimmelstuermer
wird bei der Weiterentwicklung weiterhin auf ein zufallsbasiertes
System setzen, das dokumentiert in "Entschlüsselungstabellen"
festgehalten wird. Durch die Möglichkeit schnell neue Schlüssel- und
Entschlüsselungstabellen zu erstellen wird das für Hacker sehr
schwer...
Setzt man für jeden Buchstaben der zu verschlüssenden Worte einen
erweiterten chiffre.txt an, so wird der Code in fest definierten großen
Ausgabeblöcken unknackbar? Das dauert leider bei langen
Nachrichten zu lange...
Nachtrag: 25.04.2013: Im Rahmen der Abhandlung Babel to go wurden hier zwei Fehler entdeckt - die Batch war aber trotzdem lauffähig...
Zur
besseren Orientierung auf den über 911 (Din A 4) Tippseiten
in Abhandlungen von drei Generationen Windows der
Sternenenhimmelstuermerpage die individualisierte Suchmaschine von
Google mit Suchergebnissen nur von dieser Homepage: Selbst
der Sternenhimmelstuemer findet sich bei diesem umfassenden Content
trotz präziser Sortierung der Abhandlungen nur mit Hilfe von
Suchmaschinen zu
recht...
Loading
Haftungsausschluss - Das verwenden von Tipps oder Software auf dieser Seite auf eigene Gefahr.