Edit v5.001 from 2005-05-13 to 2023-08-11 by HSc
UUE-Encode/Decode
Die Aufgabe der UUE-Codierung/Decodierung
(/305/
S. 277-282: UUEncode)
ist auf einen Versandweg,
welcher nur Textzeichen akzeptiert,
auch binäre Daten übertragen zu können.
Dazu wurden die binären Daten beim Absender
durch die UUE-Kodierung in Text-Zeichen umgewandelt und
beim Empfänger mittels UUE-Dekodierung
wieder in eine binäre Datei zurück gewandelt.
Wie ist die Funktionsweise mit Beispiel Datei und
Methode?
Funktionsweise
Datei
Datei Sieb10B.COM, mit folgenden 17 Byte als Inhalt, wird im folgenden als Beispiel genutzt. Das Hex-Listing lautet:
Adresse: Code, hexadezimal und als ASCII-Zeichen
0000-0000H: 52 01 60 01 6E 01 7C 01-8A 01 98 01 A6 01 B4 01 =R.`.n.|.-�.�.�.�.
0000-0010H: C2 __ __ __ __ __ __ __-__ __ __ __ __ __ __ __ =Â
Methode
In den folgenden 5 Schritten wird eine Sieb10B.UUE - Datei generiert!
Nummer | 1. | 2. | 3. |
---|---|---|---|
Bytes | 52H | 01H | 60H |
Bits = 2a | 0101 0010B | 0000 0001B | 0110 0000B |
- In der zu generierenden Datei wird der Beginn des UUE-Bereiches durch
- das Wort >begin<,
- die Rechte auf die Datei in Oktalform >0644< und
- den originalen Namen der Datei >Sieb10B.COM<,
Beispiel: eMail vom 23.03. mit einer Datei in der Anlage
begin 0644 Sieb10B.COM -
Die Base64-Codierung, auch drei-zu-vier-Codierung genannt, beginnt:
Tabelle 02: Umstellung der 3 Mal 8 Bit auf 4 Mal 6 Bit 2b 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 B 2c 010100B 100000B 000101B 100000B 2d 00 010100B 00 100000B 00 000101B 00 100000B 0001 0100B 0010 0000B 0000 0101B 0010 0000B +20H 0011 0100B 0100 0000B 0010 0101B 0100 0000B ASCII 4 @ % @ -
Entnahme
von 3 Byte ab Adresse 0000-0000H: 52 01 60.
Siehe Tabelle 01, Zeile 2a.
Fall es weniger als 3 Bytes sind, sind diese mit Null-Bytes 00H aufzufüllen. Dies ist hier, in unserem Beispiel, ab Adresse 0000-0000F: 01 C2 00 der Fall. - Die 3 Bytes in jeweils 3 8Bit-Folgen
umwandeln.
Siehe Tabelle 02, Zeile 2b.
Zum Beispiel:
=52H 01H 60H
=0101 0010B 0000 0001B 0110 0000B - Die 3 8Bit-Folgen = 24Bit in 4 6Bit-Folgen = 24Bit umstellen. Siehe Tabelle 02, Zeile 2c. Der Wertebereich einer 6 Bit-Folge reicht von 00 0000B = 00H = 0D bis 11 1111B = 3FH = 63D
-
Die 6 Bit-Folgen werden mit zwei
Führungsnullen auf 8 Bit
erweitert. Siehe Tabelle 02, Zeile 2d.
Da die Führungsnullen keinem Einfluss auf die Größe haben, reicht der Wertebereich immer noch von 0D bis 63D. Aber die Anzahl der Bits hat sich damit von 3*8=4*6, plus die zwei Führungsnullen pro 6Bit-Folge, ergibt 4*(2+6)Bit=4*8Bit=32Bit erhöht. D.h. eine Datei, die damit Codiert wird, würde sich auf 32Bit/24Bit=4/3=133% vergrößern. - Da in der ASCII-Tabelle die Text-Zeichen ab 20H=0010 000B==32D mit dem Leerzeichen beginnen und davor sich die Steuerzeichen, wie z.Bsp. Zeilenvorschub, befindenen, wird der Wert der auf 8 Bit erweiterten 6 Bit-Folgen um 20H=10 0000B erhöht. Siehe Tabelle 02, Zeile +20H.
- Diese 8 Bit-Folgen werden in Hexadezimalzahlen umgewandelt und repräsentieren jeweils ein Zeichen aus der ASCII-Tabelle. Siehe Tabelle 02, Zeile ASCII.
|4@%@| | 6X!| |? &*| | 9@!| |I@&T| | <( | -
Entnahme
von 3 Byte ab Adresse 0000-0000H: 52 01 60.
Siehe Tabelle 01, Zeile 2a.
-
Oftmals wird in dem so generierten Text,
das Leerzeichen durch ` ersetzt!
Damit kann der Textblock besser erkannt werden,
da dieser nicht mehr durch Leerzeichen unterbrochen wird.
|4@%@| |`6X!| |?`&*| |`9@!| |I@&T| |`<(`| -
Die Textzeichen werden zu maximal 45 Zeichen pro Zeile in der
UUE-Datei eingetragen.
Vor jeder Zeile steht UUE-Kodiert die Anzahl der Zeichen in dieser Zeile.
In unserem Beispiel sind dies 6*4=24 Zeichen.
Plus 20H=32D, ergibt 56 und dies ist in der ASCII-Tabelle das Zeichen 8.
Damit würde bis jetzt unser Beispiel wie folgt aussehen:
eMail vom 23.03. mit einer Datei in der Anlage
begin 0644 Sieb10B.COM
84@%@`6X!?`&*`9@!I@&T`<(`
- Abgeschlossen wird die Datei mit
- einer, der vorletzten, Zeile von 0 Zeichen. Das bedeutet Anzahl gleich 0. Plus Leerzeichen 20H=32D ergibt 32D. Leerzeichen werden aber durch ` ersetzt. Dadurch kann man erkennen ob diese Version die Ersetzung durchführt oder nicht.
- Und der letzten Zeile mit dem Word >end<. Falls danach noch etwas kommt, hat dies nichts mit der eingelagerten UUE-Datei zu tun.
eMail vom 23.03. mit einer Datei in der Anlage
begin 0644 Sieb10B.COM
84@%@`6X!?`&*`9@!I@&T`<(`
`
end
No Virus found
und fertig!