Stand: 31. Juli 2019
über dieses Dokumentwas es hierin gibt
wo man die neuste Version bekommt
wie man den Verfasser kontaktiert
welche gesetzlichen Einschränkungen es gibtLizenzlosigkeit
Verfasserschutz
Vorbehalt für zusätzliche Einschränkungen für zukünftige Versionen
allgemeine Informationen zur BibliothekZweck
programmiertechnische Informationen zur BibliothekAbhängigkeiten
Auswirkungen auf Flaggen
Auswirkungen auf Register
Basisadresse
Fehler-Identifikationskennung
Übergabe von den Eingabe-Parameterwerten
Übergabe von den Rückgabe-Parameterwerten
die DetailsDatensätze
Ereignismeldungen
FunktionenNutzdatenentschlüsselndecodeverschlüsselnallgemein
Hinweis-Wert
ParameterÜbersicht
EingabeQuelle_und_Ziel_-_Nutzdaten_-_Adresse_-_virtueller_TeilRückgabe
Quelle_und_Ziel_-_Nutzdaten_-_Länge_in_Byte
Quelle_-_Passwort_-_Adresse_-_virtueller_Teil
Quelle_-_Passwort_-_Länge_in_Byte
VersionFehler_-_Identifikationskennungencodeallgemein
Hinweis-Wert
ParameterÜbersicht
EingabeQuelle_und_Ziel_-_Nutzdaten_-_Adresse_-_virtueller_TeilRückgabe
Quelle_und_Ziel_-_Nutzdaten_-_Länge_in_Byte
Quelle_-_Passwort_-_Adresse_-_virtueller_Teil
Quelle_-_Passwort_-_Länge_in_Byte
VersionFehler_-_Identifikationskennung
StichwortverzeichnisFunktionenNamenanhand von den Kategorien gruppiert
ungruppiert
weiteres Material zu diesem ThemaBibliotheken
Dokumenteüber DateiformateProgramme
Sonstiges
Aufnahme von weiteren Materialien
was es hierin gibt
Dieses Dokument
- beschreibt die Bibliothek "individual_encryption" und
- zeigt, wie die Funktionen von dieser Bibliothek benutzt werden können.
wo man die neuste Version bekommt
Derzeit nutze ich OnTheServer.de/Downloads/ um neue Versionen zugänglich zu machen. Sie müsste irgendwo dort in den Unterverzeichnissen sein; das kann sich hin und wieder ein bischen ändern.
Dort gibt es vielleicht auch dieses Dokument in anderen Sprachen.
Die Versions-Angabe von diesem Dokument steht oben rechts ("Stand: ...").
wie man den Verfasser kontaktiert
Der Verfasser von diesem Dokument kann mit der Hilfe von einer elektronischen Nachricht kontaktiert werden. Das hierfür eingerichtete Postfach ist mit der Hilfe von der folgenden Adresse erreichbar:Kontakt@On(entferne mich)TheServer.de
welche gesetzlichen Einschränkungen es gibt
Lizenzlosigkeit
Dieses Dokument
- ist an keine Lizenz gebunden.
- unterliegt nicht den Einschränkungen durch das Urhebergesetz.
- soll allgemeinfrei (public domain) behandelt werden. Also so, als wenn es sich um ein Eigentum von der Allgemeinheit handelt.
Im Übrigen soll alles, was man auf OnTheServer.de und den Subdomains öffentlich zugänglich findet, entsprechend behandelt werden.
Es gibt auf OnTheServer.de allerdings eine Ausnahme:Ich lege gelegentlich im Verzeichnis "OnTheServer.de/temp/" urheberrechtlich geschütztes Material ab.
Es ist nicht gestattet, auf irreführendeweise vorzutäuschen, dass das (ursprüngliche) Dokument an eine Lizenz gebunden wäre.
Verfasserschutz
Es ist nicht gestattet, auf irreführendeweise vorzutäuschen, dass man der (ursprüngliche) Verfasser vom Dokument wäre. Der (ursprüngliche) Verfasser muss jedoch nicht namentlich genannt werden.
Vorbehalt für zusätzliche Einschränkungen für zukünftige Versionen
Ich (der ursprüngliche Verfasser) behalte die Möglichkeit, Einschränkungen füraufzuerlegen. Von den Einschränkungen wären lediglich neue Versionen betroffen. Was bisher veröffentlicht wurde, erhält keine weiteren Einschränkungen.
- die Veränderung oder/und
- die Verbreitung
Von diesem Recht werde ich hoffentlich nie gebrauch machen müssen.
Zweck
Mit der Hilfe von den Funktionen von dieser Bibliothek können Nutzdaten gemäß der Verschlüsselungsmethode "individuelle Verschlüsselung"werden.
- entschlüsselt und
- verschlüsselt
Abhängigkeiten
Diese Bibliothek benötigt selbst keine Funktionen aus anderen Bibliotheken, damit ihre eigenen Funktionen funktionieren. Wenndann
- also ein Ding aus dieser Bibliothek verwendet wird,
- wird deshalb keine weitere Bibliothek ins Segment von der Anwendung geladen.
Auswirkungen auf Flaggen
Die Werte von allen Statusflaggen können durch einen Funktionsdurchlauf geändert werden:
- auxiliary carry flag (af)
- carry flag (cf)
- overflow flag (of)
- parity flag (pf)
- sign flag (sf)
- zero flag (zf)
Der Wert von der Steuerungsflaggewird durch einen Funktionsdurchlauf nicht geändert.
- "direction flag" ("df")
Auswirkungen auf Register
Beim Benutzen von den Funktionen sollte beachtet werden, dass die Werte von manchen Registern durch einen Funktionsdurchlauf geändert werden können. Es gibt aber auch Register, deren Werte beim Zurückkehren von der Funktion noch/wieder die Selben sind, wie sie waren, als die Funktion aufgerufen wurde.
Die Werte von den folgenden Registern werden durch einen Funktionsdurchlauf
- möglicherweise geändert:
- Allzweck-Register:
- extended accumulator (eax)
- Stapel-Register:
- extended stack pointer (esp)
Das Stapel-Registerwird geändert,
- "extended stack pointer" ("esp")
- um die übergebenen Parameterwerte vom Stapel zu löschen,
- um die Rücksprungadresse vom Stapel zu löschen und
- gegebenenfalls um Rückgabewerte auf dem Stapel zu hinterlassen.
Wenndann
- eine Funktion einen Rückgabewert auf dem Stapel hinterlässt,
- ist dies ausdrücklich angegeben.
- nicht geändert oder werden vor dem Zurückkehren wiederhergestellt:
- Allzweck-Register:
- extended base (ebx)
- extended counter (ecx)
- extended data (edx)
- Befehlssatzerweiterungs-Register
- Segment-Register
- Stapel-Register:
- extended base pointer (ebp)
- Zeiger-Register:
- extended destination index (edi)
- extended source index (esi)
Basisadresse
Basisadresse: Betriebssystem:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 0 00000000 00000000 00000000 00000000 2er-System
(Binär-System)0 10er-System
(Dezimal-System)0 00 00 00 00 16er-System
(Hexadezimal-System)Linux
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 10000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 2er-System
(Binär-System)268.435.456 10er-System
(Dezimal-System)10 00 00 00 00 00 00 10 16er-System
(Hexadezimal-System)Windows
Fehler-Identifikationskennung
Die Funktionen benutzen den Rückgabewert, welcher mit der Hilfe vom Register "extended accumulator" ("eax") übergeben wird, um bekannt zu machen, ob der Funktionsdurchlauf erfolgreich war. Bei jeder Funktion gilt folgendes:
- Im Erfolgsfall wird der Wert
als Rückgabewert zurückgegeben.
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 0 00000000 00000000 00000000 00000000 2er-System
(Binär-System)0 10er-System
(Dezimal-System)0 00 00 00 00 16er-System
(Hexadezimal-System)- Im Fehlerfall wird die Fehler-Identifikationskennung als Rückgabewert übergeben.
Diese Fehler-Identifikationskennung hat nie den Wert
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 0 00000000 00000000 00000000 00000000 2er-System
(Binär-System)0 10er-System
(Dezimal-System)0 00 00 00 00 16er-System
(Hexadezimal-System)
Der vollständige Rückgabewert setzt sich aus mehreren Unter-Werten zusammen:
231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20
Bedeutung: Wertigkeiten von den betroffenen Bits: Dieser Unterwert gibt an, in welcher Bibliothek der Fehler aufgetreten ist.
- 231
bis
230
und- 228
bis
221Dieser Unterwert gibt an, ob die Fehler-Identifikationskennung von der Windows-API emittiert wurde.
0 = Es handelt sich um eine Fehler-Identifikationskennung, welche von der Windows-API emittiert wurde.
1 = Es handelt sich um eine Fehler-Identifikationskennung, welche nicht von der Windows-API emittiert wurde, sondern von sonst einer Anwendung oder Bibliothek.
Der Wert von diesem "Feld" ist also immer "1".
- 229
Dieser Unterwert gibt an, in welcher Funktion der Fehler aufgetreten ist.
- 220
bis
214Dieser Unterwert gibt an, in welchem Abschnitt der Fehler aufgetreten ist.
- 213
bis
28Dieser Unterwert gibt an, worin der Fehler besteht.
- 27
bis
20
Übergabe von den Eingabe-Parameterwerten
Die Werte von den Eingabe-Parametern werden einer Funktion übergeben, indem
- der Aufrufer die Werte auf den Stapel ("stack") legt und
- die Funktion die Werte vom Stapel nimmt.
Der Aufrufer, also zum Beispiel die Anwendung, muss
- den ersten Parameter, also den linkesten Parameter, als letztes auf den Stapel legen und
- den letzten Parameter, also den rechtesten Parameter, als erstes auf den Stapel legen.
Anschließend nutzt der Aufrufer den Befehl "call".
Mit der Hilfe von diesem Befehl wird
- zunächst die Rücksprungadresse auf den Stapel gelegt.
- Anschließend wird die Kontrolle über den CPU der aufgerufenen Funktion übergeben.
Die aufgerufene Funktion liestvom Stapel. Dadurch werden diese vom Stapel gelöscht. Nachdem der Funktionsdurchlauf abgeschlossen ist, benutzt die Funktion die Rücksprungadresse, um zurück zu springen.
- die Rücksprungadresse und
- die Parameter
Durch den Rücksprung wird die Kontrolle über den CPU dem Aufrufer zurückgegeben.
Dieser Ablauf
- wird "stdcall" genannt und
- ist auch die Standard-Aufrufmethode für alle Funktionen von der Windows-API.
Übergabe von den Rückgabe-Parameterwerten
Bei den Rückgabe-Parametern gibt es 2 Gruppen:
- die Fehler-Identifikationskennung
- sonstige Daten
Jede Funktion speichert die Fehler-Identifikationskennung für die Übergabe im Allzweckregister
- "extended accumulator" ("eax").
Für diese Fehler-Identifikationskennung kann auch der Wert "0" zurückgegeben werden, um auszudrücken, dass kein Fehler aufgetreten ist.
Manche Funktionen haben allerdings weitere Rückgabe-Parameter. Das sind weitere Daten, welche die Funktion dem Aufrufer übergibt.
Wenndann
- eine Funktion weitere Rückgabe-Parameter hat,
- werden die Werte von den übrigen Rückgabe-Parametern dem Aufrufer übergeben, indem
- die Funktion die Werte auf den Stapel ("stack") legt und
- der Aufrufer die Werte vom Stapel nimmt.
Der Aufrufer, also zum Beispiel die Anwendung, muss
- den ersten Parameter, also den linkesten Parameter, als erstes vom Stapel nehmen und
- den letzten Parameter, also den rechtesten Parameter, als letztes vom Stapel nehmen.
Datensätze
- Bei der Kommunikation mit dieser Bibliothek sind keine Datensätze von Bedeutung. -
Ereignismeldungen
- Bei der Kommunikation mit dieser Bibliothek sind keine Ereignismeldungen von Bedeutung. -
Funktionen
Nutzdaten
entschlüsseln
decode
allgemein
Name: decode Beschreibung: Diese Funktion entschlüsselt die Nutzdaten mit der Hilfe vom angegebenen Passwort. Ereignismeldungen,
welche emittiert werden können:- Diese Funktion emittiert keine Ereignismeldung. -
Hinweis-Wert
Beschreibung: Ein Hinweis-Wert dient beim Dateiformat "portable executable" ("pe") um einen schnelleren Import zu ermöglichen. Größe: 2 Byte Variablentyp,
gemäß welchem der Wert zu interpretieren ist:Ganzzahl ohne Vorzeichen Wert:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 0 00000000 00000000 2er-System
(Binär-System)0 10er-System
(Dezimal-System)0 00 00 16er-System
(Hexadezimal-System)
Parameter
Übersicht
(Fehler_-_Identifikationskennung) = decode(Quelle_und_Ziel_-_Nutzdaten_-_Adresse_-_virtueller_Teil,)
Quelle_und_Ziel_-_Nutzdaten_-_Länge_in_Byte,
Quelle_-_Passwort_-_Adresse_-_virtueller_Teil,
Quelle_-_Passwort_-_Länge_in_Byte,
Version
Eingabe
Anzahl: 5
Quelle_und_Ziel_-_Nutzdaten_-_Adresse_-_virtueller_Teil
Beispiel:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 101011 00010100 00011110 11101000 11101000 00011110 00010100 00101011 2er-System
(Binär-System)722.738.920 10er-System
(Dezimal-System)2B 14 1E E8 E8 1E 14 2B 16er-System
(Hexadezimal-System)Beschreibung: Mit der Hilfe von diesem Wert wird die Adresse von der Speicherstelle angegeben, an welcher die Nutzdaten beginnen. Es handelt sich
- dieser Adresse um eine virtuelle Adresse vom Segment vom Programm.
- diesen Nutzdaten um jene Nutzdaten, welche
- verschlüsselt sind und
- als Quelle dienen sollen.
Diese Nutzdaten werden während dem Funktionsdurchlauf mit der Hilfe von den entschlüsselten Nutzdaten überschrieben. Die Länge von der Bytefolge ändert sich dadurch nicht.Größe: 4 Byte Speicherzelle,
welche für die Übergabe vom Wert dient:Stapel Variablentyp,
gemäß welchem der Wert zu interpretieren ist:Ganzzahl ohne Vorzeichen
Quelle_und_Ziel_-_Nutzdaten_-_Länge_in_Byte
Beispiel:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 101000 00101000 00000000 00000000 00000000 2er-System
(Binär-System)40 10er-System
(Dezimal-System)28 28 00 00 00 16er-System
(Hexadezimal-System)Beschreibung: siehe: hier Größe: 4 Byte Speicherzelle,
welche für die Übergabe vom Wert dient:Stapel Variablentyp,
gemäß welchem der Wert zu interpretieren ist:Ganzzahl ohne Vorzeichen
Quelle_-_Passwort_-_Adresse_-_virtueller_Teil
Beispiel:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 101011 00010100 00011111 00010000 00010000 00011111 00010100 00101011 2er-System
(Binär-System)722.738.960 10er-System
(Dezimal-System)2B 14 1F 10 10 1F 14 2B 16er-System
(Hexadezimal-System)Beschreibung: siehe: hier Größe: 4 Byte Speicherzelle,
welche für die Übergabe vom Wert dient:Stapel Variablentyp,
gemäß welchem der Wert zu interpretieren ist:Ganzzahl ohne Vorzeichen
Quelle_-_Passwort_-_Länge_in_Byte
Beispiel:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 1111 00001111 00000000 00000000 00000000 2er-System
(Binär-System)15 10er-System
(Dezimal-System)F 0F 00 00 00 16er-System
(Hexadezimal-System)Beschreibung: siehe: hier Größe: 4 Byte Speicherzelle,
welche für die Übergabe vom Wert dient:Stapel Variablentyp,
gemäß welchem der Wert zu interpretieren ist:Ganzzahl ohne Vorzeichen
Version
Beispiel:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 1 00000001 00000000 00000000 00000000 2er-System
(Binär-System)1 10er-System
(Dezimal-System)1 01 00 00 00 16er-System
(Hexadezimal-System)Beschreibung: siehe: hier Größe: 4 Byte Speicherzelle,
welche für die Übergabe vom Wert dient:Stapel Variablentyp,
gemäß welchem der Wert zu interpretieren ist:Ganzzahl ohne Vorzeichen
Rückgabe
Anzahl: 1
Fehler_-_Identifikationskennung
Beispiel:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 0 00000000 00000000 00000000 00000000 2er-System
(Binär-System)0 10er-System
(Dezimal-System)0 00 00 00 00 16er-System
(Hexadezimal-System)Beschreibung: siehe: hier Fehler-Identifikationskennungen,
welche zurückgegeben werden können:
Beschreibung:
Bibliothek:
(in welcher der Fehler aufgetreten ist)individual_encryption Funktion:
(in welcher der Fehler aufgetreten ist)gemeinsamer Code Abschnitt:
(in welchem der Fehler aufgetreten ist)Funktion.initialisieren.Parameterwerte überprüfen.wenn: Quelle_-_Passwort_-_Länge_in_Byte==0|d Fehler-Beschreibung: Es wurde der Wert "0|d" für den Parameter "Quelle_-_Passwort_-_Länge_in_Byte" übergeben.
Dies ist nicht zulässig.
Das Passwort ist zu kurz. Es muss mindestens der Wert "1|d" übergeben werden.Wert:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 100000 01000000 01000001 00000001 00000001 01000001 01000000 00100000 2er-System
(Binär-System)541.081.857 10er-System
(Dezimal-System)20 40 41 01 01 41 40 20 16er-System
(Hexadezimal-System)
Beschreibung:
Bibliothek:
(in welcher der Fehler aufgetreten ist)individual_encryption Funktion:
(in welcher der Fehler aufgetreten ist)gemeinsamer Code Abschnitt:
(in welchem der Fehler aufgetreten ist)Schlüssel erzeugen.auslesen.Wert ist ungeeignet.wenn: Passwort_-_Adresse_-_ursprünglich==Passwort_-_Adresse_-_momentan Fehler-Beschreibung: Das Passwort ist ungeeignet.
Dies ist nicht zulässig.
Die Verschlüsselungsmethode definiert einen Ablauf, mit dessen Hilfe aus einem Passwort ein Schlüssel erzeugt wird. Dieser Ablauf ist jedoch so definiert, dass beim übergebenen Passwort kein Schlüssel erzeugt werden kann.Wert:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 100000 01000000 01000010 00000001 00000001 01000010 01000000 00100000 2er-System
(Binär-System)541.082.113 10er-System
(Dezimal-System)20 40 42 01 01 42 40 20 16er-System
(Hexadezimal-System)
Beschreibung:
Bibliothek:
(in welcher der Fehler aufgetreten ist)individual_encryption Funktion:
(in welcher der Fehler aufgetreten ist)gemeinsamer Code Abschnitt:
(in welchem der Fehler aufgetreten ist)Funktion.initialisieren.Parameterwerte überprüfen.wenn: Quelle_-_Passwort_-_Länge_in_Byte>200|d Kilobyte Fehler-Beschreibung: Es wurde ein Wert für den Parameter "Quelle_-_Passwort_-_Länge_in_Byte" übergeben, welcher größer als 200|d Kilobyte ist.
Dies ist nicht zulässig.
Das Passwort ist zu lang. Es darf maximal der Wert "200|d * 1.024|d = 204.800|d" übergeben werden. Der Hintergrund hiervon besteht darin, dass das Passwort komprimiert auf dem Stapel zwischengespeichert wird. Mit der Hilfe von dieser Begrenzung ist das komprimierte Passwort auf dem Stapel
- bei der Version == "0.0" maximal "100|d Kilobyte"-groß und
- bei der Version >= "0.1" maximal "50|d Kilobyte"-groß.
Die Daten auf dem Stapel müssen in ihrer Größe begrenzt werden, da der Stapel vom Programm begrenzt ist. Im Normalfall wird bei einem "200|d Kilobyte"-großen Passwort jedoch ohnehin nur ein kleiner Teil vom Anfang vom Passwort verwendet, sodass größere Passwörter ohnehin keinen Sicherheitsgewinn bringen würden.Wert:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 100000 01000000 01000011 00000001 00000001 01000011 01000000 00100000 2er-System
(Binär-System)541.082.369 10er-System
(Dezimal-System)20 40 43 01 01 43 40 20 16er-System
(Hexadezimal-System)Größe: 4 Byte Speicherzelle,
welche für die Übergabe vom Wert dient:extended accumulator (eax) Variablentyp,
gemäß welchem der Wert zu interpretieren ist:Ganzzahl ohne Vorzeichen
verschlüsseln
encode
allgemein
Name: encode Beschreibung: Diese Funktion verschlüsselt die Nutzdaten mit der Hilfe vom angegebenen Passwort. Ereignismeldungen,
welche emittiert werden können:- Diese Funktion emittiert keine Ereignismeldung. -
Hinweis-Wert
Beschreibung: Ein Hinweis-Wert dient beim Dateiformat "portable executable" ("pe") um einen schnelleren Import zu ermöglichen. Größe: 2 Byte Variablentyp,
gemäß welchem der Wert zu interpretieren ist:Ganzzahl ohne Vorzeichen Wert:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 1 00000001 00000000 2er-System
(Binär-System)1 10er-System
(Dezimal-System)1 01 00 16er-System
(Hexadezimal-System)
Parameter
Übersicht
(Fehler_-_Identifikationskennung) = encode(Quelle_und_Ziel_-_Nutzdaten_-_Adresse_-_virtueller_Teil,)
Quelle_und_Ziel_-_Nutzdaten_-_Länge_in_Byte,
Quelle_-_Passwort_-_Adresse_-_virtueller_Teil,
Quelle_-_Passwort_-_Länge_in_Byte,
Version
Eingabe
Anzahl: 5
Quelle_und_Ziel_-_Nutzdaten_-_Adresse_-_virtueller_Teil
Beispiel:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 101011 00010100 00011110 11101000 11101000 00011110 00010100 00101011 2er-System
(Binär-System)722.738.920 10er-System
(Dezimal-System)2B 14 1E E8 E8 1E 14 2B 16er-System
(Hexadezimal-System)Beschreibung: Mit der Hilfe von diesem Wert wird die Adresse von der Speicherstelle angegeben, an welcher die Nutzdaten beginnen. Es handelt sich
- dieser Adresse um eine virtuelle Adresse vom Segment vom Programm.
- diesen Nutzdaten um jene Nutzdaten, welche
- noch unverschlüsselt sind und
- als Quelle dienen sollen.
Diese Nutzdaten werden während dem Funktionsdurchlauf mit der Hilfe von den verschlüsselten Nutzdaten überschrieben. Die Länge von der Bytefolge ändert sich dadurch nicht.Größe: 4 Byte Speicherzelle,
welche für die Übergabe vom Wert dient:Stapel Variablentyp,
gemäß welchem der Wert zu interpretieren ist:Ganzzahl ohne Vorzeichen
Quelle_und_Ziel_-_Nutzdaten_-_Länge_in_Byte
Beispiel:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 101000 00101000 00000000 00000000 00000000 2er-System
(Binär-System)40 10er-System
(Dezimal-System)28 28 00 00 00 16er-System
(Hexadezimal-System)Beschreibung: Mit der Hilfe von diesem Wert wird die Länge von den Nutzdaten in Byte angegeben. sind gleich lang.
- Die Quell-Nutzdaten und
- die Ziel-Nutzdaten
Größe: 4 Byte Speicherzelle,
welche für die Übergabe vom Wert dient:Stapel Variablentyp,
gemäß welchem der Wert zu interpretieren ist:Ganzzahl ohne Vorzeichen
Quelle_-_Passwort_-_Adresse_-_virtueller_Teil
Beispiel:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 101011 00010100 00011111 00010000 00010000 00011111 00010100 00101011 2er-System
(Binär-System)722.738.960 10er-System
(Dezimal-System)2B 14 1F 10 10 1F 14 2B 16er-System
(Hexadezimal-System)Beschreibung: Mit der Hilfe von diesem Wert wird die Adresse von der Speicherstelle angegeben, an welcher eine Zeichenkette beginnt. Es handelt sich bei
- dieser Adresse um eine virtuelle Adresse vom Segment vom Programm.
- dieser Zeichenkette um jene Zeichenkette, welche
- mit der Hilfe von der Zeichenkodierung "Unicode Character Set - 2 byte per character; little endian encoded" ("UCS-2LE") kodiert ist und
- das Passwort gespeichert hält.
Die Zeichenkette muss nicht mit der Hilfe von weiteren Bytes abgeschlossen sein, von welchen alle Bits auf "0|b" gesetzt sind, da die Länge von der Zeichenkette angegeben wird.
Im Kapitel "weiteres Material zu diesem Thema - Dokumente" ist ein Dokument über Zeichenkodierungen aufgelistet. In diesem Dokument ist auch die zu verwendende Zeichenkodierung beschrieben.Größe: 4 Byte Speicherzelle,
welche für die Übergabe vom Wert dient:Stapel Variablentyp,
gemäß welchem der Wert zu interpretieren ist:Ganzzahl ohne Vorzeichen
Quelle_-_Passwort_-_Länge_in_Byte
Beispiel:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 1111 00001111 00000000 00000000 00000000 2er-System
(Binär-System)15 10er-System
(Dezimal-System)F 0F 00 00 00 16er-System
(Hexadezimal-System)Beschreibung: Mit der Hilfe von diesem Wert wird die Länge vom der Zeichenkette in Byte angegeben. Es handelt sich bei
- dieser Zeichenkette um jene Zeichenkette, welche das Passwort gespeichert hält.
Größe: 4 Byte Speicherzelle,
welche für die Übergabe vom Wert dient:Stapel Variablentyp,
gemäß welchem der Wert zu interpretieren ist:Ganzzahl ohne Vorzeichen
Version
Beispiel:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 1 00000001 00000000 00000000 00000000 2er-System
(Binär-System)1 10er-System
(Dezimal-System)1 01 00 00 00 16er-System
(Hexadezimal-System)Beschreibung: Mit der Hilfe von diesem Wert wird die Version von der Verschlüsselungsmethode angegeben.
Es gibt die folgenden gültigen Werte:
Bedeutung: Wert: Es soll die Version "0.0" verwendet werden.
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 0 00000000 00000000 00000000 00000000 2er-System
(Binär-System)0 10er-System
(Dezimal-System)0 00 00 00 00 16er-System
(Hexadezimal-System)Es soll die Version "0.1" verwendet werden.
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 1 00000001 00000000 00000000 00000000 2er-System
(Binär-System)1 10er-System
(Dezimal-System)1 01 00 00 00 16er-System
(Hexadezimal-System)Es soll die Version "0.2" verwendet werden.
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 10 00000010 00000000 00000000 00000000 2er-System
(Binär-System)2 10er-System
(Dezimal-System)2 02 00 00 00 16er-System
(Hexadezimal-System)Es soll die höchste Version verwendet werden, welche die Bibliothek unterstützt.
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 2er-System
(Binär-System)4.294.967.295 10er-System
(Dezimal-System)FF FF FF FF FF FF FF FF 16er-System
(Hexadezimal-System)Größe: 4 Byte Speicherzelle,
welche für die Übergabe vom Wert dient:Stapel Variablentyp,
gemäß welchem der Wert zu interpretieren ist:Ganzzahl ohne Vorzeichen
Rückgabe
Anzahl: 1
Fehler_-_Identifikationskennung
Beispiel:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 0 00000000 00000000 00000000 00000000 2er-System
(Binär-System)0 10er-System
(Dezimal-System)0 00 00 00 00 16er-System
(Hexadezimal-System)Beschreibung: Wenn dann
- ein Fehler aufgetreten ist,
Ansonsten
- wird die Fehler-Identifikationskennung zurückgegeben.
Die Fehler-Identifikationskennung hat nie den Wert
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 0 00000000 00000000 00000000 00000000 2er-System
(Binär-System)0 10er-System
(Dezimal-System)0 00 00 00 00 16er-System
(Hexadezimal-System)
In diesem Fall sind die Nutzdaten vollständig ungeändert geblieben.
- wird der Wert
zurückgegeben.
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 0 00000000 00000000 00000000 00000000 2er-System
(Binär-System)0 10er-System
(Dezimal-System)0 00 00 00 00 16er-System
(Hexadezimal-System)Fehler-Identifikationskennungen,
welche zurückgegeben werden können:
Beschreibung:
Bibliothek:
(in welcher der Fehler aufgetreten ist)individual_encryption Funktion:
(in welcher der Fehler aufgetreten ist)gemeinsamer Code Abschnitt:
(in welchem der Fehler aufgetreten ist)Funktion.initialisieren.Parameterwerte überprüfen.wenn: Quelle_-_Passwort_-_Länge_in_Byte==0|d Fehler-Beschreibung: Es wurde der Wert "0|d" für den Parameter "Quelle_-_Passwort_-_Länge_in_Byte" übergeben.
Dies ist nicht zulässig.
Das Passwort ist zu kurz. Es muss mindestens der Wert "1|d" übergeben werden.Wert:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 100000 01000000 01000001 00000001 00000001 01000001 01000000 00100000 2er-System
(Binär-System)541.081.857 10er-System
(Dezimal-System)20 40 41 01 01 41 40 20 16er-System
(Hexadezimal-System)
Beschreibung:
Bibliothek:
(in welcher der Fehler aufgetreten ist)individual_encryption Funktion:
(in welcher der Fehler aufgetreten ist)gemeinsamer Code Abschnitt:
(in welchem der Fehler aufgetreten ist)Schlüssel erzeugen.auslesen.Wert ist ungeeignet.wenn: Passwort_-_Adresse_-_ursprünglich==Passwort_-_Adresse_-_momentan Fehler-Beschreibung: Das Passwort ist ungeeignet.
Dies ist nicht zulässig.
Die Verschlüsselungsmethode definiert einen Ablauf, mit dessen Hilfe aus einem Passwort ein Schlüssel erzeugt wird. Dieser Ablauf ist jedoch so definiert, dass beim übergebenen Passwort kein Schlüssel erzeugt werden kann.Wert:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 100000 01000000 01000010 00000001 00000001 01000010 01000000 00100000 2er-System
(Binär-System)541.082.113 10er-System
(Dezimal-System)20 40 42 01 01 42 40 20 16er-System
(Hexadezimal-System)
Beschreibung:
Bibliothek:
(in welcher der Fehler aufgetreten ist)individual_encryption Funktion:
(in welcher der Fehler aufgetreten ist)gemeinsamer Code Abschnitt:
(in welchem der Fehler aufgetreten ist)Funktion.initialisieren.Parameterwerte überprüfen.wenn: Quelle_-_Passwort_-_Länge_in_Byte>200|d Kilobyte Fehler-Beschreibung: Es wurde ein Wert für den Parameter "Quelle_-_Passwort_-_Länge_in_Byte" übergeben, welcher größer als 200|d Kilobyte ist.
Dies ist nicht zulässig.
Das Passwort ist zu lang. Es darf maximal der Wert "200|d * 1.024|d = 204.800|d" übergeben werden. Der Hintergrund hiervon besteht darin, dass das Passwort komprimiert auf dem Stapel zwischengespeichert wird. Mit der Hilfe von dieser Begrenzung ist das komprimierte Passwort auf dem Stapel
- bei der Version == "0.0" maximal "100|d Kilobyte"-groß und
- bei der Version >= "0.1" maximal "50|d Kilobyte"-groß.
Die Daten auf dem Stapel müssen in ihrer Größe begrenzt werden, da der Stapel vom Programm begrenzt ist. Im Normalfall wird bei einem "200|d Kilobyte"-großen Passwort jedoch ohnehin nur ein kleiner Teil vom Anfang vom Passwort verwendet, sodass größere Passwörter ohnehin keinen Sicherheitsgewinn bringen würden.Wert:
Wert gemäß Zahlensystem: der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen": 100000 01000000 01000011 00000001 00000001 01000011 01000000 00100000 2er-System
(Binär-System)541.082.369 10er-System
(Dezimal-System)20 40 43 01 01 43 40 20 16er-System
(Hexadezimal-System)Größe: 4 Byte Speicherzelle,
welche für die Übergabe vom Wert dient:extended accumulator (eax) Variablentyp,
gemäß welchem der Wert zu interpretieren ist:Ganzzahl ohne Vorzeichen
Funktionen
Namen
anhand von den Kategorien gruppiert
ungruppiert
Bibliotheken
Name Beschreibung: Weblink: vom Autor: von der Bibliothek: individual_encryption Dies ist die allgemeinfreie und kostenlose Bibliothek, welche in diesem Dokument beschrieben ist. ../../Betriebssystem-spezifisches/
- Linux/kompiliert/libraries/individual_encryption.so
- Windows/kompiliert/libraries/individual_encryption.dll
../../Betriebssystem-unspezifisches/
Dokumente
Name vom Sprache: Umfang vom Inhalt: Weblink: Autor: Dokument: Verschlüsselung - Verschlüsselungsmethoden - individuelle Verschlüsselung deutsch
- beschreibt die Verschlüsselungsmethode "individuelle Verschlüsselung", welche ein Ablauf ist, mit dessen Hilfe ein vom Passwort abhängiger
für Daten definiert wird
- Ent- und
- Verschlüsselungsalgorithmus
OnTheServer.de/Downloads/ Zeichenkodierungen
- beschreibt verschiedene Zeichenkodierungen
über Dateiformate
Name vom Sprache: Umfang vom Inhalt: Weblink: Autor: Dokument: Betriebssystem-spezifische - Linux - Dateiformate - ausführbare Dateien und Bibliotheken deutsch
- beschreibt das Dateiformat "executable and linking" ("elf"), also das Dateiformat, welches in Linux für
verwendet wird
- ausführbare Dateien und
- Bibliotheken
- zeigt Schritt für Schritt, wie mit der Hilfe von einem Hex-Editor
geschrieben werden kann.
- ein "Hallo Welt!"-Programm und
- eine Bibliothek mit einer "Hallo Welt!"-Funktion
OnTheServer.de/Downloads/ Betriebssystem-spezifische - Windows - Dateiformate - ausführbare Dateien und Bibliotheken
- behandelt das Dateiformat "portable executable" ("pe"), also das Dateiformat, welches in Windows für
verwendet wird
- ausführbare Dateien und
- Bibliotheken
- zeigt Schritt für Schritt, wie mit der Hilfe von einem Hex-Editor
geschrieben werden kann.
- ein "Hallo Welt!"-Programm und
- eine Bibliothek mit einer "Hallo Welt!"-Funktion
Programme
Name vom Beschreibung: notwendiges Betriebssystem: Sprache: Weblink: Autor: Programm: Steve Hutchesson Binary to Hex Editor "Binary to Hex Editor" ist ein kostenloses, minimalistisches, "20 Kilobyte"-großes Programm mit grafischer Benutzeroberfläche. Das Programm ist nicht allgemeinfrei und den Quelltext bekommt man glaube ich auch nicht.
Funktionen:
- Hexeditor, mit welchem man Rohdaten-Dateien öffnen und editieren kann
- Speicherung von der hexadezimal-Darstellung von einer Rohdaten-Datei als ASCII-kodierte Textdatei
- Speicherung von einer hexadezimal-Darstellung als Rohdaten-Datei
Nachteilhaft ist allerdings, dass es lange braucht und viel Arbeitsspeicher notwendig ist, um große Dateien zu öffnen.Windows englisch movsd.com/download/b2hedit.zip Demonstrationsprogramm Dies ist ein kostenloses Konsolen-Programm. Das Programm ist allgemeinfrei.
Funktionen:
- kann mit der Hilfe von der Bibliothek und einem Passwort eine Datei
- entschlüsseln und
- verschlüsseln,
- kann im Fehlerfall eine Fehler-Identifikationskennung anzeigen
- Linux oder
- Windows
deutsch ../../Betriebssystem-spezifisches/ Fehler-Identifikationskennung → Fehlermeldung Dies ist ein kostenloses Konsolen-Programm. Das Programm ist allgemeinfrei.
Funktionen:
- kann anhand von einer vorgegebenen Fehler-Identifikationskennung eine Fehlermeldung anzeigen
Windows OnTheServer.de/Downloads/
Sonstiges
Name vom Beschreibung: Sprache: Weblink: Autor: Material: Import-Definitionsdatei für Minicode Diese Datei enthält die Import-Definitionen, um die Bibliothek "individual_encryption" mit der Hilfe von der Programmiersprache "Minicode" zu verwenden. Minicode ../Minicode/
individual_encryption.mico-imde
Aufnahme von weiteren Materialien
Wenndann
- Sie weitere Materialien zu diesem Thema haben, von welchen Sie wollen, dass sie in diese Auflistungen aufgenommen werden,
- können Sie mir gerne die Materialien oder einen Link zu ihnen zusenden.
Sie dürfen durchaus auch Ihre eigenen Materialien zuschicken.
Bei den zugesendeten Materialien werde ich beurteilen, ob sie sich für die Auflistung eignen. Manche Materialien werden nicht aufgenommen, weil beispielsweise ein Hinweis enthalten ist, dassEs besteht kein Anspruch darauf, dass zugesendete Materialien aufgenommen werden.
- eine Verbreitung nicht gestattet ist oder
- nur unter Bedingungen, welche ich nicht erfüllen will.
Link zum Kapitel "wie man den Verfasser kontaktiert".