schule:hexeditor
Inhaltsverzeichnis
Hexeditor
Auftrag
- Der Editor soll in der Lage sein, hauseigene Dateien zu öffnen, zu verändern und verändert abzuspeichern.
- Er soll den Inhalt der Dateien in hexadezimaler Form anzeigen.
- Er soll über eine Suchfunktion zum Auffinden bestimmter Passagen verfügen.
- Es handelt sich um eine Windows-Forms-Anwendung.
Als Anwendungsfalldiagramm.
Dateioperation: Datei öffnen und anzeigen
Der Artikel Dateioperationen beschreibt den Umgang mit Dateien.
Hausaufgabe: Konvertierung von Dezimal- in Hexadezimalzahl
Informiere dich über die Schreibweise Hexadezimaler Zahlen und entwickle den Algorithmus der Methode dezimalNachHex(iZahl: int): string
. Er wandelt eine Zahl aus unserem Zehnersystem in eine Hexzahl um. Die Form ist beliebig.
Datei einlesen, Bytes in Hexzahlen konvertieren und anzeigen
- Erstelle eine einfache Textdatei test.txt mit dem Inhalt
ABC
- Lies die Datei byteweise ein und konvertiere das Ergebnis in eine Hexzahl.
- Zeige das Ergebnis an.
Analyse einer Bilddatei
Analysiere eine 24Bit-Bitmapdatei. Nutze dazu den Blogartikel Analyse des BMP-Bildformates
- Identifiziere, wo erkennbar ist, dass es sich um eine Bitmapdatei handelt.
- Wo sind die Dateigröße,
- die Auflösung und
- die Farbinformationen abgelegt?
Bilder können auch komprimiert abgespeichert werden. Die Pixel Puzzle-Arbeitsblätter zeigen eine Möglichkeit, wie man alle Bildinformationen speichern kann, ohne jeden Pixel explizit abspeichern zu müssen. Überlege dir, wie du es machen könntest, bevor du die Seite öffnest:
Anwendungsfall "Datei speichern"
- neue Methode:
int hexNachDezimal(string sHex)
- Hexwerte im Textfeld in string aufteilen (
Split()
) - Datei öffnen (Klasse
FileStream
) - Jeden Hexwert in Bytewert konvertieren und in die Datei schreiben (
WriteByte()
). - Datei schließen (
Close()
)
Links
- Der Vortrag Funky File Formats vom 31C3 zeigt, wie man unterschiedliche Dateiformate ineinander einbetten kann.
- Textdateien lassen sich in unterschiedlichen Kodierungen (Formaten) abspeichern – z.B. in ASCII (7Bit, keine Umlaute), ISO 8859-1 (genannt latin1, 8-Bit-Format mit Umlauten aber ohne €-Zeichen) oder UTF8 (bis zu 8 Byte, abwärtskompatibel).
- Einen tieferen Einstieg in die Arbeit eine Computers auf der Ebene von Assembleranweisungen wird in Kap. „0x250 Getting Your Hands Dirty“ in Hacking - The Art Of Exploitation beschrieben.
- Der Artikel Image Kernels Explained Visually zeigt interaktiv wie das Schärfen von Bildern und anderen Bildfilter funktionieren.
schule/hexeditor.txt · Zuletzt geändert: 2021-04-17 13:36 von pintman