Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:hexeditor

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

  1. Erstelle eine einfache Textdatei test.txt mit dem Inhalt ABC
  2. Lies die Datei byteweise ein und konvertiere das Ergebnis in eine Hexzahl.
  3. Zeige das Ergebnis an.

Analyse einer Bilddatei

Analysiere eine 24Bit-Bitmapdatei. Nutze dazu den Blogartikel Analyse des BMP-Bildformates

  1. Identifiziere, wo erkennbar ist, dass es sich um eine Bitmapdatei handelt.
  2. Wo sind die Dateigröße,
    1. die Auflösung und
    2. 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())
  • 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