AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Byte Interpreter - Bytes sinnvoll einsetzen
Thema durchsuchen
Ansicht
Themen-Optionen

Byte Interpreter - Bytes sinnvoll einsetzen

Ein Thema von NickelM · begonnen am 12. Feb 2014 · letzter Beitrag vom 13. Nov 2014
Antwort Antwort
Seite 1 von 2  1 2      
NickelM
Registriert seit: 22. Jul 2007
Hallo zusammmen,

Ideeherkunft : (wenn man das so nennen kann )
Hattet ihr das auch schonmal? Ihr wollt die Dateistruktur verstehen, d.h. wissen wie bei einem Dateiformat z.b. die Bytes zu interpretieren sind?
Man öffnet die Datei dan mit z.b. PSPad Hexeditor und versucht zu verstehen, wie die Bytes zusammen gehören und schreibt dieses das dann irgendwie auf
damit man dann ein Programm schreiben könnte, das dieses Format dan liest? Ich hatte dieses Problem schon oft, da ich mich sehr für Dateiformate oder Datenverkehr von Server/Client Anwendung interessiere.
Also dachte ich mir ich schreib mir ein Programm, womit ich genau dieses machen kann.
Nun, da ich mir dachte, ich könnte euch dieses Programm auch anbieten stell ichs mal hier rein.

Version : 0.0.1 (Erste Vorhab version, diese ist noch nicht in vollem Masse inder Praxis getestet worden, bitte meldet mir Fehler, DANKE )

Features:
- Bytes als einzelne Typen anzeigen lassen (Byte,Char(AnsiChar),WChar(WideChar),Int16,UInt16, Int32,UInt32,Single(32bit Kommazahl),Int64,UInt64,Double(64bit Kommazahl),String(AnsiString),WString(WideString))
- Direkte Eingabe als Hexcode
- Dateien darstellbar
- Die Anzahl von Bytes, die auf einmal angezeigt werden, wird anhand der Größe des Fensters berechnet.
- Wenn die Datei größer ist als die anzeigbaren Bytes, kann man mit der Scrollbar durch die Datei scrollen.
- Schematik : Alle Festgelegeten Typen können gespeichert/geladen werden. Es wird die Position und die Typinformationen gespeichert.

Features die noch in der Überlegung sind (ich würde mich um Feedback wegen der Ideen freuen):
- Stringlängen von Zahlentypen (z.b. Int16) abhängigmachen. D.h. der String wird dynamisch von der Länge her gelesen, anhand des Zahlenwertes.

Ich hoffe, das Programm wird für ein paar Leute eine Hilfe sein.
And hoffe auf viel Feedback
P.S. : Es ist kein Sourcecode dabei.

Gruß NickelM
Angehängte Dateien
Dateityp: rar ByteInterpreter.rar (227,1 KB, 62x aufgerufen)
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
 
Benutzerbild von Aphton
Aphton

 
Turbo Delphi für Win32
 
#2
  Alt 12. Feb 2014, 17:33
Interessantes Projekt mit Potential!
Ich hätt da ein paar Kritiken, hoffe du verkraftest es:
- es ist nirgends erklärt, wie "Schematiken" funktionieren
- momentan unterscheidet es sich nicht wirklich viel von nem mageren Hexeditor
- ich weiß nicht, inwiefern das machbar wäre, aber wäre es nicht schön, wenn du XML DTDs verwerten und dann den Inhalt von Daten durch das DTD farblich hervorheben könntest? vlt reicht aber auch deine "Schematik" ^_^

Verbesserungsvorschläge
- Anstatt bei den Offsets mit der Nummerierung bei 1 zu beginnen, fang lieber bei 0 an
- gib die Offsets als Hexwert an, nicht dezimal!
- "xxGG" wird als 0-0 erkannt

Edit: Lob
- die App scheint selbst >4gb (konkret 15gb) Daten zu verkraften.

Edit2: Ahh ok. es gibt ein Kontextmenü xD

Edit3: Ok, ist eig. recht interessant.
Weißt du, was die App um einiges mächtiger machen würde? Wenn man komplexe Datentypen (~records) definieren und angeben könnte, wann und wie oft (evt. abhängig von einem Feld) dieser komplexe Datensatz vorkommt:

Beispiel:
Datentyp T1 = [bool][int32][PascalString]
Bytestrom = 5[T1][T1][T1][T1][T1]
Man sagt nun, an Offset 0, wo die 5 steht, ist die Int32 Zahl, die angibt, wie oft der Datentyp T1 hintereinander vorkommt.

Bin auf Neuerungen gespannt!
Es heißt übrigens Interpreter

Geändert von Aphton (12. Feb 2014 um 17:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Desmulator
Desmulator
 
#3
  Alt 12. Feb 2014, 18:42
Edit3: Ok, ist eig. recht interessant.
Weißt du, was die App um einiges mächtiger machen würde? Wenn man komplexe Datentypen (~records) definieren und angeben könnte, wann und wie oft (evt. abhängig von einem Feld) dieser komplexe Datensatz vorkommt:
Dann aber auch direkt ein Parser der die Headerdateien von einigen Programmiersprachen auslesen kann. Sonst okay.
Lars
  Mit Zitat antworten Zitat
EWeiss
 
#4
  Alt 12. Feb 2014, 18:47
Was hat diese Anwendung mit App zu tun?
Dieser App Trip nervt nur.

Zitat:
Es heißt übrigens Interpreter
Jo aber sicherlich nicht App

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

 
Turbo Delphi für Win32
 
#5
  Alt 12. Feb 2014, 20:55
App kurz für Application, was soviel wie Anwendung oder auch Programm bedeutet!
Auch wenn "App" (m.M.n.-) fälschlicherweise als Smartphone-Apps verstanden wird..

Geändert von Aphton (13. Feb 2014 um 00:02 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#6
  Alt 13. Feb 2014, 05:54
Auch wenn "App" (m.M.n.-) fälschlicherweise als Smartphone-Apps verstanden wird..
OT:
Ok! Dann sorry.. hatte es auch so verstanden.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von pustekuchen
pustekuchen

 
Delphi 11 Alexandria
 
#7
  Alt 13. Feb 2014, 08:09
Super Programm!

Es wäre schön, wenn man ..
- eine feste Breite für die Zeile angeben könnte.
- Interpretieren von Steuerzeichen wie z.B. Carriage Return/new line (0x13, 0x10), etc..
- Definieren von Strukturen
- Markieren von mehreren Feldern
- Drucken
- Wenn man Swap Endian macht, dies auch besonders markieren (Zeichen in der Ecke, oder Farbe)
- Bereich einer Zeile angeben (Wie in Hex editoren)

Schonmal ein paar Vorschläge
  Mit Zitat antworten Zitat
NickelM

 
Delphi 2009 Professional
 
#8
  Alt 28. Feb 2014, 18:40
Danke für das Feedback bisher.

Antworten zu ein paar Fragen/Anregungen:
- eine feste Breite für die Zeile angeben könnte.
Meinst du eine bestimmte Anzahl von Bytes pro Zeile einstellbar machen?
- Interpretieren von Steuerzeichen wie z.B. Carriage Return/new line (0x13, 0x10), etc..
Ist im Datentyp String/Char bzw. WideString/WideChar mit enthalten. Die Werte werden fett angezeigt und als die Entsprechende bezeichnung angezeigt. Meinst du ich solle es zu einem eigenen Typ machen?
Warum?! Bzw. wie sollte man sowas ausdrucken? Mich würde interessieren, wie du dir so etwas im groben vorstellst.
- Wenn man Swap Endian macht, dies auch besonders markieren (Zeichen in der Ecke, oder Farbe)
An Farben hab ich allgemeint gedacht, dass verschiedene Typen verschiedene Farben haben. Vielleicht sogar einstellbar sind. Wenn sie fixed sind, weiß ich noch nicht welche ich nehmen, will keine "Augenkrebs" Farben verwenden.
Edit3: Ok, ist eig. recht interessant.
Weißt du, was die App um einiges mächtiger machen würde? Wenn man komplexe Datentypen (~records) definieren und angeben könnte, wann und wie oft (evt. abhängig von einem Feld) dieser komplexe Datensatz vorkommt:

Beispiel:
Datentyp T1 = [bool][int32][PascalString]
Bytestrom = 5[T1][T1][T1][T1][T1]
Man sagt nun, an Offset 0, wo die 5 steht, ist die Int32 Zahl, die angibt, wie oft der Datentyp T1 hintereinander vorkommt.
Hm, darüber habe ich auch nachgedacht, nur dafür müsste ich mir einen Parser für eine eigenen recht einfache Struktur ausdenken. Dies wird denke ich aber noch dauern, da ich vielleicht eher eine GUI, statt einen Parser machen will und sowas auszudenken ist recht komplex und nicht grad einfach.
- ich weiß nicht, inwiefern das machbar wäre, aber wäre es nicht schön, wenn du XML DTDs verwerten und dann den Inhalt von Daten durch das DTD farblich hervorheben könntest? vlt reicht aber auch deine "Schematik" ^_^
Hm, tut mir leid, aber dies soll halt kein XML-Viewer sein. Es sollen damit Binär-Dateien in für Programmierer verständlichen Typen dargestellt werden. Vielleicht als Plugin/Erweiterung/Extra wäre es eine Überlegung, aber dies wäre das erst viel später
Edit: Lob
- die App scheint selbst >4gb (konkret 15gb) Daten zu verkraften.
Das war auch der Sinn dahinter . Sonst wäre der Sinn meiner Meinung nach etwas verfehlt.

Ich werde demnächst ein paar Ideen versuchen umzusetzen, kann aber nicht sagen wann ich dazukomme, da ich recht beschäftigt bin die letzen Tage.

Gruß NickelM
Nickel
  Mit Zitat antworten Zitat
Benutzerbild von pustekuchen
pustekuchen

 
Delphi 11 Alexandria
 
#9
  Alt 10. Mär 2014, 16:17
Danke für das Feedback bisher.

Antworten zu ein paar Fragen/Anregungen:
- eine feste Breite für die Zeile angeben könnte.
Meinst du eine bestimmte Anzahl von Bytes pro Zeile einstellbar machen? Ja, Genau.
- Interpretieren von Steuerzeichen wie z.B. Carriage Return/new line (0x13, 0x10), etc..
Ist im Datentyp String/Char bzw. WideString/WideChar mit enthalten. Die Werte werden fett angezeigt und als die Entsprechende bezeichnung angezeigt. Meinst du ich solle es zu einem eigenen Typ machen?
Ahh, okay. Kann so bleiben. Lediglich der Inhalt sollte auch komplett lesbar sein, bei mir ist in den 2 Bytes nur "String: C" und noch ein halbes R zu lesen.
Warum?! Bzw. wie sollte man sowas ausdrucken? Mich würde interessieren, wie du dir so etwas im groben vorstellst.
Zum Debuggen Manchmal besser aufm Papier. Es wäre dann z.B. nur der dargestellte Bereich ausdruckbar.
- Wenn man Swap Endian macht, dies auch besonders markieren (Zeichen in der Ecke, oder Farbe)
An Farben hab ich allgemeint gedacht, dass verschiedene Typen verschiedene Farben haben. Vielleicht sogar einstellbar sind. Wenn sie fixed sind, weiß ich noch nicht welche ich nehmen, will keine "Augenkrebs" Farben verwenden.
Gut so
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

 
Delphi 10.2 Tokyo Professional
 
#10
  Alt 19. Sep 2014, 12:27
Hab mir das Projekt mal runtergeladen und finde es auch ganz gut! Ist ne gute Idee

Hast du seitdem nochmal was daran gemacht? Wäre sicher auch ganz nett wenn schon die Schemata für einige Dateitypen mitgeliefert wären. Es wäre vielleicht auch sehr hübsch wenn man Bereiche farbig umranden könnte. ("Das blaue ist der Bitmap Header"). Es gibt ja einige Datentypen die aus mehreren Headern bestehen. Dann müsste man diese Bereiche benennen können und eventuell müsste man einzelne Felder (String/Integer/usw) auch benennen können. Wäre zumindest ganz nett.
Michael
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz