[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
In diesem Kapitel werden nun alle Utilities von ‘RSYS’ beschrieben. Alle Utilities können per HotKey aufgerufen werden. In späteren Versionen von ‘RSYS’ werden sie als eigenständige Tasks laufen, sodaß auch mehrere Utilities gleichzeitig laufen können.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Mit dieser kleinen Utility kann die CRC-Checksumme
von
beliebigen Dateien berechnet werden. Entsprechend der Größe der Datei,
dessen CRC berechnet werden soll, muß die CRC-16
- oder die
CRC-32
-Methode gewählt werden.
Ich habe mehrere Programme, die CRC-Summen berechnen, zum Vergleich mit
meinen Routinen gestartet. Alle Programme gaben für ein und dieselbe
Datei andere Werte aus, als meine Routine. Ich suche den Fehler heute
noch. Wenn sich also eine hilfreiche Seele finden sollte, die den Fehler
findet, dieser ist eine Tüte Gummibärchen sicher :-)
Das erscheinende Window enthält mehrere Steuerelemente, die jetzt im einzelnen besprochen werden.
In diesem Text-Gadget wird der Dateiname der ausgewählten Datei, deren
CRC
-Summe berechnet werden soll, angezeigt.
Mit diesem Gadget kann die zu verwendete Berechnungsart (CRC-16
oder CRC-32
) gewählt werden.
Nach dem Anklicken dieses Gadgets erscheint ein FileRequester, der zu
einer Eingabe einer Datei auffordert. Wird eine existierende Datei
angewählt, wird sofort das File
-Gadget aktualisiert.
In diesem Gadget wird die berechnete Checksumme in Hexadezimalschreibweise dargestellt.
Das Gadget startet die Berechnung der CRC
-Checksumme.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Bei der Verschlüsselung der Daten werden zwei Methoden verwendet. Die
ROT 13
-Methode ist ein einfaches Verschlüsselungsverfahren, das die
Buchstaben eines Textes einfach um 13 Zeichen nach vorn oder zurück
gezählte Buchstaben macht. Dazu ein Beispiel: aus der Zeile
"Das ist ein Satz, der 1 mal kodiert werden soll!" 34 68 97 115 32 105 115 116 32 101 105 110 32 83 97 116 122 44 32 100 101 114 32 49 32 109 97 108 32 107 111 100 105 101 114 116 32 119 101 114 100 101 110 32 115 111 108 108 33 34
"Qnf vfg rva Fngm, qre 1 zny xbqvreg jreqra fbyy!" 34 81 110 102 32 118 102 103 32 114 118 97 32 70 110 103 109 44 32 113 114 101 32 49 32 122 110 121 32 120 98 113 118 114 101 103 32 106 114 101 113 114 97 32 102 98 121 121 33 34
Darunter habe ich mal die entsprechenden ASCII-Kodierungen geschrieben. Es ist deutlich zu erkennen, daß nur Buchstaben kodiert (verschoben) werden. Interpunktionen und Zahlen werden nicht berücksichtigt.
Das zweite Verfahren basiert auf einen zellularen Automaten ähnlich dem der Spielsimulation ‘Life’. Dabei wird ein Ring von Zellen angelegt, der dann durch ein vorgegebenes Paßwort mit Nummern aufgefüllt wird. Mit diesen Nummern schließlich, wird eine Datei kodiert. Diese Methode stammt von der Verschlüsselungsmethode, die in Olaf "Olsen" Barthels ‘term’ zur Kodierung des Telefonbuches verwendet wird.
Anm.:
Das Paßwort ist überaus WICHTIG! Es sollte erstens nie
vergessen und zweitens ein echtes Paßwort verwendet werden. Das
Paßwort-Gadget sollte also nie leer sein, da sonst die Methode zufällige
Verschlüsselungen erzeugt und diese Datei nie wieder restauriert werden
kann!
Im weiteren werden die Bedienungselemente des Crypt
-Windows vorgestellt.
Mit diesem Gadget kann mit einem FileRequester die Datei ausgewählt
werden, die verschlüsselt werden soll. Der Dateiname kann direkt
eingegeben werden oder über Select
per FileRequester.
Mit diesem Gadget kann mit einem FileRequester die Datei ausgewählt
werden, in der die verschlüsselten Daten abgespeichert werden sollen. Der
Dateiname kann direkt eingegeben werden oder über Select
per
FileRequester.
Dieses String-Gadget enthält das Paßwort zum Verschlüsseln der Datei nach
dem Verfahren mit dem zellularen Automaten
. Das Paßwort ist
zwingend erforderlich, jedoch wird die Korrektheit nicht überprüft. Wird
also keins angegeben, so ist das eine
Einbahnstraßen-Verschlüsselung! Die Datei kann nie wieder
restauriert werden!
Dieses Gadget ist abgeschaltet, falls die ROT13
-Methode verwendet
wird.
Hiermit kann die Methode gewählt werden, mit der die Daten verschlüsselt werden sollen.
Mit diesem Gadget wird die Verschlüsselung der Daten gestartet.
Mit diesem Gadget wird die Entschlüsselung der Daten gestartet.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Es kommt immer mal vor, daß man sich für den Aufbau von Dateien beschäftigt. Ein wichtige Dateiart ist hierbei die ladbare oder ausführbare Datei. Diese Dateien können vom System in den Arbeitsspeicher geladen und direkt ausgeführt werden.
Damit dieses korrekt vom System durchgeführt werden kann, müssen die
Dateien (Executables) einen bestimmten Aufbau besitzen, die sogenannte
Hunk-Struktur
. Eine Beschreibung dieser Hunk-Struktur würde an
dieser Stelle zu weit führen. Hierbei sei auf weiterführende Literatur
verwiesen, die diese Struktur in allen Einzelheiten erläutert.
Mit dieser Utility kann die Hunk-Struktur jeder ladbaren Datei ermittelt
und angezeigt werden. Zu diesen Dateien gehören beispielsweise Libraries,
Executables, Font-Dateien und Objekt-Bibliotheken. Desweiteren können auch
Fehler in der Hunk-Struktur angezeigt werden. Bei einem eventuell
aufgetretenen Fehler wird noch fünfmal versucht, einen korrekten
Hunk-Eintrag zu finden, danach wird abgebrochen. Die Anzeige der Struktur
kann jederzeit mit einem Klick auf das CloseGadget
abgebrochen werden.
Nun zu der Beschreibung der einzelnen Gadgets.
In diesem ListView wird die Hunk-Struktur in übersichtlicher Form dargestellt. In der ersten Zeile stehen der Name der Datei und die Größe. Dannach kommt hierarchisch angeordnet der Aufbau der Datei. Hier als Beispiel das Hunk-Listing des Programms ‘RSYS’ selbst.
File name : cprogs2:RSysDir/RSys File size : 140156 hunk_header (o: $0,#0 t: $3F3,#1011) Count hunks : #3 First hunk : #0 Last hunk : #2 Hunk #0, Length $1DE8C, #122508 Hunk #1, Length $4D58, #19800 Hunk #2, Length $4, #4 hunk_code (o: $20,#32 t: $3E9,#1001) Size: $1DE8C, #122508 (MEMF_FAST) hunk_reloc32 (o: $1DEB4,#122548 t: $3EC,#1004) #17 offsets in Hunk #0 #2 offsets in Hunk #1 hunk_end (o: $1DF18,#122648 t: $3F2,#1010) hunk_data (o: $1DF1C,#122652 t: $3EA,#1002) Size: $365C, #13916 (MEMF_FAST) hunk_reloc32 (o: $21580,#136576 t: $3EC,#1004) #17 offsets in Hunk #1 #868 offsets in Hunk #0 hunk_end (o: $2236C,#140140 t: $3F2,#1010) hunk_bss (o: $22370,#140144 t: $3EB,#1003) Size: $4, #4 (MEMF_FAST) hunk_end (o: $22378,#140152 t: $3F2,#1010)
Es erscheint ein FileRequester, mit dem die ladbare Datei ausgewählt werden kann. Danach wird die Struktur analysiert und als Liste angezeigt.
Mit einem FileRequester kann eine Datei ausgewählt werden, in der die
Liste abgespeichert werden soll. Ist der Text-Formatter
aktiviert,
erscheint nach einer postiven Auswahl das Text-Formatter
-Window.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Es gibt viele Programme, die das komfortable Suchen nach Dateien in Filesystemen unterstützen. Allerdings sind einige Programme mit Sonder- und Spezialfunktionen überladen, sodaß man schon eine Menge Hintergrundwissen einbringen muß, um die Programm überhaupt korrekt bedienen zu können. Dem habe ich hoffentlich Abhilfe schaffen können. Einfach, klein und fein macht diese Utility genau das, was sie soll: Dateien suchen.
Diese Utility arbeitet intensiv mit der Funktion ExAll() und den Funktionen MatchPattern()/MatchPatternNoCase() der DOS-Library. Dabei werden zuächst alle Dateien bestimmt und währenddessen untersucht, ob es sich jeweils um ein Verzeichnis oder eine Datei handelt. Trifft dann auch das Suchmuster zu, wird es in das ListView eingetragen.
Hier eine Beschreibung der Bedienungselemente.
In diesem ListView stehen alle angemeldeten Devices und Assigns. Wenn ein Eintrag angeklickt wird, erscheint der Eintrag in dem danebenliegenden ListView.
Damit werden alle die Verzeichnisse angewählt auf denen Dateien gesucht werden sollen. Jeder Eintrag, der in den beiden ListViews angeklickt wird, erscheint automatisch in dem anderen ListView. Bei einem Eintrag mit einem ‘-’ davor handelt es sich um ein Assign. Ich habe diese Kennzeichnung deshalb so gewählt, weil ich dann entsprechend die Einträge sortieren kann. Erst die echten, dann die logischen Devices.
Hier kann gewählt werden, ob die Dateien case sensitive (Groß-
und Kleinschreibung wird berücksichtigt) oder case insensitive
(Groß- und Kleinschreibung werden nicht unterschieden) gesucht werden.
Lautet z.B. das Suchmuster ‘Test.exe’, so wird mit No case
sense
sowohl die Datei ‘Test.exe’, als auch die Datei
‘TeSt.ExE’ gefunden.
Damit können alle Einträge vom linken ListView in das rechte gebracht
werden (Sel all
: alle Verzeichnisse werden durchsucht) und umgekehrt
(Sel none
: Kein Verzeichnis soll durchsucht werden).
Wurden Verzeichnisse ausgewählt und im Pattern-Gadget ein Suchmuster
eingegeben, so ist dieses Gadget anwählbar und startet die Suche in den
Verzeichnissen des Selected Devices
-ListViews. Wird das Gadget
während eine Suche angeklickt, wird nach einer Sicherheitabfrage der
Suchvorgang abgebrochen.
Nach der Anwahl erscheint ein Filerequester, in dem die Namen der
gefundenen Dateien in eine auszuwählende Datei abgespeichert werden können.
Ist der Text-Formatter
aktiviert,
erscheint nach einer postiven Auswahl das Text-Formatter
-Window.
Hier kann ein Suchmuster (Dateiname oder Pattern) eingegeben werden. Hierbei gelten die üblichen Wildcards und Suchmuster des AmigaOS.
Hier kann gewählt werden, was für ein Typ von Datei gefunden werden soll.
In diesem ListView erscheinen alle gefunden Einträge mit vollständiger
Pfadbezeichnung. Diese Liste kann nach dem Anklicken des Save found
list
-Gadgets in eine Datei abgespeichert werden.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Mit Format Disk
wird eine kleine Schnittstelle zum
‘Format’-Befehl des AmigaDOS angeboten. Die einzelnen Gadgets werden
im folgenden näher beschrieben.
In diesem Gadget steht der vollständige Pfadprogrammname des zu verwendenden ‘Format’-Befehls. Dieser lautet üblicherweise
‘SYS:System/Format’.
Mit dem nebenstehenden Select
-Gadget kann das
‘Format’-Programm mit einem Filerequester ausgewählt werden.
In diesem ListView erscheinen alle formatierbaren Devices alphabetisch geordnet. Das ausgewählte Device wird dann im zugehörigen Textgadget darunter angezeigt.
Hier wird der Name des Mediums (voreingestellt und systemkonform ‘Empty’) eingetragen.
Mit dieser Einstellung wird festgelegt, ob der ‘TrashCan’ samt Icon nach der Formatierung auf die frische Diskette kopiert werden soll.
Damit wird festgelegt, ob die Diskette mit dem neuen FastFileSystem des AmigaOS 2.0 formatiert werden soll, oder im alten Datenformat.
Hiermit wird das Handling der länderspezifischen Sonderzeichen in Dateinamen festgelegt.
In diesem Stringgadget ohne Namen steht der vollständige Befehl, der nach Festlegung aller Kriterien als eigenständiger Prozeß ausgeführt wird.
Damit wird der ‘Format’-Befehl in einem Shell-Window aufgerufen.
Damit wird der ‘Format’-Befehl in einem Shell-Window aufgerufen.
Zuvor wird die Option QUICK
an den Befehl drangehängt. Diese Option
startet die Formatierung des Directory-Bereiches der Diskette, also nicht
der ganzen Diskette.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Hierbei kam auch eine Routine zum Einsatz, die ich von Olsens ‘term’ geratzt habe. Leider funktioniert Olsens Routine nicht mit allen Fenstern, was an der Verwendung der Funktion ClipBlit() liegt, die zwar die ausgewählte BitMap eines Windows berücksichtigt, aber die überlappenden Bereiche anderer Fenster mit Datenmüll füllt. Außerdem verwendet Olsen die BitMap des zu einem Fenster gehörenden Screen-RastPorts anstelle des Window-RastPorts.
Dieses Problem der Überlappung habe ich durch die Verwendung der Routinen BltBitMap() und WindowToFront() behoben. Damit wird das zu speichernde Fenster nach vorne geholt, weswegen auch keine Überlappungen mit anderen Fenstern auftreten. Dieses Verfahren funktioniert natürlich nicht mit Backdrop-Fenstern.
Es muß aber eine Möglichkeit geben, nur den Fensterinhalt abspeichern
zu können. Immerhin kann es die DumpRastPort
-Routine des
‘printer.device’
auch. Wer also sachdienliche Hinweise zu diesem Thema hat, möge sich
bitte mit mir in Verbindung setzen.
In diesem ListView erscheinen alle geöffneten Windows, die im System bekannt sind. Dabei werden auch die aufgeführt, die auf anderen Screens als dem WorkBench Screen geöffnet wurden.
Wurde ein Fenster angewählt, wird dieses Gadget aktiviert. Nach dem Anklicken erscheint ein Filerequester mit der Aufforderung, eine Datei auszuwählen, in der das angewählte Window als IFF-Datei abgespeichert werden soll.
Damit kann die Window-Liste aktualisiert werden. Dies geschieht nach dem Abspeichern eines Windows automatisch.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Alle im ROM angelegten Libraries werden gecheckt, ob sie von anderen Programmen gepatcht wurden. Sehr nützlich, um eventuell installierte Viren aufzuspüren.
Dazu wird eine externe Datei verwendet, die in einem bestimmten Format
vorliegt. In dieser stehen alle Libraries und Library-Offsets drin, deren
Einträge im System überprüft werden sollen. Mit einem mitgelieferten
‘AREXX’-Programm kann diese Datei einfach aus den FD
-Files
erzeugt werden.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Mit dieser komfortablen Suchfunktion hat der Benutzer die Möglichkeit, in der Liste des Hauptfensters nach einem String suchen zu lassen. Die Suchmethode ist einfach implementiert worden, d.h. es wird die Liste von Anfang an (oder vom letzten gefundenen Eintrag aus) durchsucht und dabei getestet, ob sich der eingegebene String als Teilstring im Listeneintrag befindet.
War der Test erfolgreich, wird der gefundene Eintrag zum
obersten Eintrag im ListView gemacht. Der String ist hierbei
"case-sensitiv" einzugeben, Groß- und Kleinschreibung ist also zu
berücksichtigen! Die Taste ESC beendet die Eingabe und betrachtet
die Eingabe als abgebrochen, ebenso wie das Cancel
- und das
Closegadget.
Nach der Anwahl des entsprechenden Menüpunktes erscheint ein kleines Fenster mit drei Gadgets:
In diesem Gadget kann der Suchstring eingegeben werden. Groß- und Kleinschreibung muß berücksichtigt werden. Die Länge des Strings ist maximal 40 Zeichen lang. Nach dem Öffnen des Eingabefensters ist dieses Gadget automatisch aktiv.
Ist die Eingabe abgeschlossen, wird nach dem Gadget-Klick der String intern übernommen und eine Vorwärtssuche gestartet.
Die Eingabe wird abgebrochen. Der eventuell eingegebene String wird NICHT intern übernommen.
[Top] | [Contents] | [Index] | [ ? ] |
This document was generated on February 6, 2023 using texi2html 5.0.
The buttons in the navigation panels have the following meaning:
Button | Name | Go to | From 1.2.3 go to |
---|---|---|---|
[ << ] | FastBack | Beginning of this chapter or previous chapter | 1 |
[ < ] | Back | Previous section in reading order | 1.2.2 |
[ Up ] | Up | Up section | 1.2 |
[ > ] | Forward | Next section in reading order | 1.2.4 |
[ >> ] | FastForward | Next chapter | 2 |
[Top] | Top | Cover (top) of document | |
[Contents] | Contents | Table of contents | |
[Index] | Index | Index | |
[ ? ] | About | About (help) |
where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:
This document was generated on February 6, 2023 using texi2html 5.0.