Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:hexeditor

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
schule:hexeditor [2015-12-28 08:54] – [Analyse einer Bilddatei] Reihenfolge marco.bakeraschule:hexeditor [2021-04-17 13:36] (aktuell) – [Analyse einer Bilddatei] link fix pintman
Zeile 1: Zeile 1:
 +====== 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.
 +
 +{{:schule:prog:hexeditor-use-case.png?nolink|}}
 +
 +
 +===== 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 [[blog>bildanalyse-ein-tiefer-einblick-in-das-windows-bitmap-bildformat-bmp|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 [[https://teachinglondoncomputing.org/pixel-puzzles/|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 [[https://media.ccc.de/v/31c3_-_5930_-_en_-_saal_6_-_201412291400_-_funky_file_formats_-_ange_albertini|Funky File Formats]] vom 31C3 zeigt, wie man unterschiedliche Dateiformate ineinander einbetten kann.
 +  * Textdateien lassen sich in unterschiedlichen Kodierungen (Formaten) abspeichern -- z.B. in [[wpde>ASCII]] (7Bit, keine Umlaute), [[wpde>ISO 8859-1]] (genannt //latin1//, 8-Bit-Format mit Umlauten aber ohne €-Zeichen) oder [[wpde>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 [[http://setosa.io/ev/image-kernels/|Image Kernels Explained Visually]] zeigt interaktiv wie das Schärfen von Bildern und anderen Bildfilter funktionieren.