Autor Beitrag
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 3657
Erhaltene Danke: 600

Win XP x86, Win 8.1 x64
Lazarus Snapshot; Delphi 7,2007,XE; PHP (PHPEdit,PhpStorm); JS; Java(Eclipse)
BeitragVerfasst: Di 01.03.16 17:04 
Holla, da hat sich viel getan! :zustimm: :anfleh:

Drei Anmerkungen, dann hat Tiny Hexer endlich einen Nachfolger gefunden:

Eine alte Frage:
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Zusätzliche Gruppierungslücken nach X Gruppen:

Also wenn man Einzelbytes einzeln hat, dass man nach je 4 oder 8 Bytes zusätzlich eine Leerzeichenspalte einblenden lassen kann.


Und was auch toll ist in TH ist der Struktureditor, der zum Beispiel PE-oder Dateisystemheader aufdröseln kann, und dann zu den jeweiligen Offsets springen kann. Das macht für Disk-Editoren (gerade bei Imagedateien) auch Sinn, weil man damit z.B. den MBR reinschauen kann und von dort aus die Partitionen suchen.
Zum gleichen Thema: wenn man eine Partition öffnen will und nicht Administrator ist, kommt einfach eine "Zugriff verweigert"-Meldung. Eine etwas eindeutigere Fehlermeldung wäre praktisch.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18724
Erhaltene Danke: 1627

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 01.03.16 17:07 
Ja, die Strukturanzeige ist das einzige, das ich wirklich sehr vermisse. ;)
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1586
Erhaltene Danke: 231


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Di 01.03.16 17:26 
Maël, Dein Hexeditor ist ja wirklich ein einmaliges Ergebnis im Bereich der mit Delphi programmierten Freewares.

Was mich jedoch erheblich stört - und was auch im Gegensatz zum sonstigen Niveau dieses Deines Programmes steht - sind gleich mehrere sprachliche Fehler, mit denen man in der ersten Messagebox (der portablen Version) "begrüßt" wird.
mael Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 190
Erhaltene Danke: 31


Delphi XE3 Prof.
BeitragVerfasst: Di 01.03.16 17:33 
user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Maël, Dein Hexeditor ist ja wirklich ein einmaliges Ergebnis im Bereich der mit Delphi programmierten Freewares.

Was mich jedoch erheblich stört - und was auch im Gegensatz zum sonstigen Niveau dieses Deines Programmes steht - sind gleich mehrere sprachliche Fehler, mit denen man in der ersten Messagebox (der portablen Version) "begrüßt" wird.

Auch diese Fehler gerne melden, braucht keine enttäuschte Vorrede ;) Mir ist bisher nur eine denglische Formulierung, "auf eine portable Art" (war: "in einer portablen Art"), aufgefallen. Die Meldung beim Start ist schon seit Jahren drin, möglich dass ich da noch was übersehen habe. Schreib mir doch was dich genauer stört per PN.
ssb-blume
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 369
Erhaltene Danke: 7

XP, W7, W8
Deutschland
BeitragVerfasst: Mi 02.03.16 11:02 
Ich verwenden den HxD schon seit 2009. Wirklich super.

Hansi

_________________
Brain: an apparatus with which we think we think.
mael Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 190
Erhaltene Danke: 31


Delphi XE3 Prof.
BeitragVerfasst: Do 03.03.16 15:40 
Danke für das Feedback soweit. Gerne mehr, vorallem Fehlerberichte damit ich dies vor dem Release korrigieren kann.

Die aktuelle Version gibt es unter: mh-nexus.de/downloads/HxD20BetaDeu.zip

Ich habe schon mal die Kommafehler entfernt und etwas umformuliert, da das wichtig für die Übersetzer ist. Sonst soweit keine weiteren Unterschiede zur ZIP-Datei vor zwei Tagen.
mael Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 190
Erhaltene Danke: 31


Delphi XE3 Prof.
BeitragVerfasst: Do 03.03.16 15:46 
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:

Eine alte Frage:
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Zusätzliche Gruppierungslücken nach X Gruppen:

Also wenn man Einzelbytes einzeln hat, dass man nach je 4 oder 8 Bytes zusätzlich eine Leerzeichenspalte einblenden lassen kann.

Vielleicht mal später, würde als nächstes (nach dem Release) eher gerne größere Features implementieren. So eine Art Feature ist klein vom Effekt, aber bedeutet größere Änderungen an der Zeichen-/Auswahl-/Hitpoint-Logik.

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:

Und was auch toll ist in TH ist der Struktureditor, der zum Beispiel PE-oder Dateisystemheader aufdröseln kann, und dann zu den jeweiligen Offsets springen kann. Das macht für Disk-Editoren (gerade bei Imagedateien) auch Sinn, weil man damit z.B. den MBR reinschauen kann und von dort aus die Partitionen suchen.

Das kommt auf jeden Fall (nach dem Release von 2.0), der Dateninspektor war ein erster Schritt dahin.

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:

Zum gleichen Thema: wenn man eine Partition öffnen will und nicht Administrator ist, kommt einfach eine "Zugriff verweigert"-Meldung. Eine etwas eindeutigere Fehlermeldung wäre praktisch.

Guter Vorschlag, werde ich noch ändern.

Danke an alle für ihr Feedback, schön zu sehen, dass Interesse besteht :)
mael Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 190
Erhaltene Danke: 31


Delphi XE3 Prof.
BeitragVerfasst: Mi 29.03.17 16:35 
HxD ist als 2.0 RC verfügbar.

Es gibt im Prinzip nur noch einen Cachingfehler der Rest sollte stabil sein.

Der Cachingfehler bewirkt einfach nur, dass Dateien, die gelöscht oder nicht lesbar sind, mit Fragezeichen dargestellt werden, bis sie wieder lesbar sind. Sonst sorgt der Cache dafür dass die schon gelesenen/dargestellten Bereiche erhalten bleiben und macht es so etwas praktischer.

mh-nexus.de/downloads/HxDSetup.zip

Für diesen Beitrag haben gedankt: Christian S., jaenicke, Martok, Narses, uall@ogc, ub60
mael Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 190
Erhaltene Danke: 31


Delphi XE3 Prof.
BeitragVerfasst: Do 30.03.17 16:51 
Es gab eine kleine Fehlerkorrektur für das Speichern. Gleicher Link wie oben.
user32
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 55
Erhaltene Danke: 5



BeitragVerfasst: So 02.04.17 06:15 
Ist schon seit Jahren mein Lieblings Hexeditor, dabei wusste ich nicht (oder hab es vergessen), dass der hier aus dem Forum stammt!
mael Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 190
Erhaltene Danke: 31


Delphi XE3 Prof.
BeitragVerfasst: Di 31.10.17 16:00 
Hallo.

Ich habe über die Monate weitere Fehlerkorrekturen (inklusive des Cachingfehlers) und Änderungen gemacht.

mh-nexus.de/downloads/HxDSetup.zip


Jetzt sollte es fertig für den Produktiveinsatz sein. Wenn ihr noch Fehler bemerkt, bitte melden.

Für diesen Beitrag haben gedankt: BenBE, Delphi-Laie
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1586
Erhaltene Danke: 231


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Di 31.10.17 22:26 
Mir gefällt dieses Programm, doch noch besser fände ich eine installationslose bzw. portable Version des Hex-Editors.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20442
Erhaltene Danke: 2260

Win 10
C# (VS 2019)
BeitragVerfasst: Di 31.10.17 22:38 
Im Anfangsposting dieses Threads ist eine Liste mit Downloads verlinkt, wenn man dort nach unten scrollt, gibt es auch portable Versionen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".

Für diesen Beitrag haben gedankt: BenBE, Delphi-Laie, mael
mael Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 190
Erhaltene Danke: 31


Delphi XE3 Prof.
BeitragVerfasst: Di 31.10.17 23:19 
user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Mir gefällt dieses Programm, doch noch besser fände ich eine installationslose bzw. portable Version des Hex-Editors.

Das Setup kann eine portable Version erzeugen, es ist ein "All-In-One"-Paket. Ein weiterer Vorteil ist, dass man so auch eine schreibgeschützte Version erzeugen kann (z.B. für CDs/schreibgeschützte USB-Sticks), und vorher die Einstellungen ändern kann.

Es ist zuverlässiger als die Unzip-Methode.

user profile iconChristian S. hat folgendes geschrieben Zum zitierten Posting springen:
Im Anfangsposting dieses Threads ist eine Liste mit Downloads verlinkt, wenn man dort nach unten scrollt, gibt es auch portable Versionen.

Die Downloads dort sind noch die Version 1.7.7.0.
Symbroson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Di 31.10.17 23:33 
Entschuldige die Frage, aber wofür ist dieser Hex-Editor gut? Also ich meine wer bitte kann hexadezimalschrift/code/binaries so bearbeiten, dass am Ende noch etwas sinnvolles bei rauskommt?
Ich kann mir das wirklich nicht vorstellen.
Bitte klär(t) mich auf :)
Danke!!

LG,
Symbroson

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
mael Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 190
Erhaltene Danke: 31


Delphi XE3 Prof.
BeitragVerfasst: Mi 01.11.17 00:24 
user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Also ich meine wer bitte kann hexadezimalschrift/code/binaries so bearbeiten, dass am Ende noch etwas sinnvolles bei rauskommt?

Falls Englisch kein Problem ist, hilft das vielleicht etwas weiter:
blog.mh-nexus.de/201...ata-in-a-hex-editor/

Für diesen Beitrag haben gedankt: Symbroson
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1569
Erhaltene Danke: 273


Delphi 10 Seattle Prof.
BeitragVerfasst: Mi 01.11.17 08:50 
user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Entschuldige die Frage, aber wofür ist dieser Hex-Editor gut?

Immer dann, wenn es auf jedes Byte ankommt. :wink:
Es kommt natürlich darauf an, was für Arten von Programmen man schreibt. Der Datenbankentwickler (wie ich es bin) wird vermutlich eher selten einen Hexeditor verwenden.

Aber trotzdem benutze ich ihn manchmal. Wenn ich zum Beispiel Schnittstellen bedienen muss. Die verlangen eine ganz klare Struktur der Daten. Z.B. wird bei Ascii-Schnittstellen oft verlangt, dass ein Datensatz mit LF abschließt. Wenn es mit CR + LF abschließt sind manche Schnittstelle so pingelig und akzeptieren das nicht. Die meisten Texteditoren (notepad, etc.) akzeptieren aber beide Varianten. Da fällt einem also nichts auf.
Dann schaut man sich seine Datei im Hexeditor an und kann dann sehen, was am Datensatzende wirklich steht.

Oder man bekommt Daten von einem anderen Hersteller (auf welchem Weg auch immer, als Datei oder über irgendwelche Webschnittstelle, per RS232, usw...). Dann schaut man es sich im Hexeditor an, um festzustellen, was da genau drin steht, um die Daten im Programm richtig zu interpretieren.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)

Für diesen Beitrag haben gedankt: Symbroson
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1586
Erhaltene Danke: 231


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Mi 01.11.17 12:20 
user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Also ich meine wer bitte kann hexadezimalschrift/code/binaries so bearbeiten, dass am Ende noch etwas sinnvolles bei rauskommt?


Das mußte in der Computer-Urzeit jeder und in der Computer-Frühzeit wohl noch fast jeder, der programmierte, beherrschen.

Erst mit dem Aufkommen der ersten Programmiersprachen (inklusiv Assembler) gab es diesbezüglich eine leichte Entspannung.

Die ersten dieser Übersetzungsprogramme mußten logischerweise komplett Byte für Byte "manuell" entworfen und vor allem implementiert werden, da es noch keine Programme gab, die Wörter bzw. Mnemonics (die Wörter, die Assembler) verstehen. Es gibt eben keinen unendlichen Abstieg.


Zuletzt bearbeitet von Delphi-Laie am Mi 01.11.17 23:21, insgesamt 1-mal bearbeitet

Für diesen Beitrag haben gedankt: Symbroson
mael Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 190
Erhaltene Danke: 31


Delphi XE3 Prof.
BeitragVerfasst: Mi 01.11.17 17:49 
user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Entschuldige die Frage, aber wofür ist dieser Hex-Editor gut?
Ich kann mir das wirklich nicht vorstellen.

Alle Daten im Computer müssen irgendwie dargestellt werden. Bei digitalen Computern sind das Folgen von 0 und 1.

Dieses abstrakte Konzept lässt sich besser anhand mechanischer Spieluhren verstehen. Deren Musik (bzw. die zu spielenden Noten) sind auf einem Zylinder als Erhebungen gespeichert.
user defined image
Der Tonkamm hat verschieden lange Stahlzungen. Wird so eine Stahlzunge angehoben und dann "losgelassen" erzeugt sie einen Ton -- je kürzer die Stahlzunge, desto höher der Ton.
Eine horizontale "Zeile" entlang des Zylinders bestimmt also welche Zungen zu einem Zeitpunkt x erhoben werden, und dadurch welche Töne gespielt werden. So wie auf einem Klavier, welche Tasten man gleichzeitig mit den Fingern drückt.
Dreht der Zylinder weiter, erreicht die nächste Zeile den Tonkamm und wird gespielt.

Man kann so eine Zeile wie ein Byte interpretieren: eine Folge von acht Bit (0 oder 1) sind ein Byte, so wie eine Folge von 18 Erhebungen (oder Ebenen) auf dem Zylinder eine Zeile sind.

Man kann also diese Erhebungen/Ebenen auf diesem Zylinder auch als Bytefolgen darstellen. Hier würde man 3 Byte (=24Bit) pro Zeile nehmen, da man mindestens 18 bit braucht. Es blieben von den 24 Bit also 6 Bit übrig, die man einfach ignoriert.
Liest man eine Datei die wie eben beschrieben codiert ist, und spielt für jedes Bit das 1 ist einen der Bitposition entsprechend hohen Ton, dann könnte man die Musik des Zylinders reproduzieren.
Die Darstellung der Musik als Zylinder oder als Datei wären also äquivalent: Sie kodieren die gleiche Information, und erzeugen mit passenden Interpretatoren/Abspielgeräten, die gleichen Effekte/Musik.

Solche Kodierungen sind nicht immer einfach zu erkennen, deswegen gibt es einen Dateninspektor in der Version 2.0, der übliche Dekodierungen automatisch anzeigt. Die rechte Spalte in einem Hexeditor ist auch nur eine Dekodierung der Bytefolgen als Text, unter der Annahme dass der Text gemäß eine bestimmten Kodierung wie ASCII oder UTF-8 kodiert ist. Ist das nicht der Fall sieht die rechte Spalte eher chaotisch oder unsinnig aus.

Bei noch komplexeren Datenformaten sind Struktureditoren hilfreich.


Schreibt mal aber die Datei selbst, ist man sich im Klaren über das Datenformat, und kann dann im Hexeditor nachsehen ob auch wirklich geschrieben wurde was geschrieben werden sollte. Z.b. ob die richtige Textkodierung verwendet wurde, die Bytefolge richtig ist (Little-Endian-Maschinen speichern 32-Bit-Integer in einer anderen Byte-Reihenfolge als Big-Endian-Maschinen), tatsächlich ein 32-Bit-Integer und nicht nur 16-Bit-Integer gespeichert wurde (Vermeidung von eventuellem Datenverlust).

Ein gutes Beispiel sind auch Bitmaps. Bitmaps sind einfach Folgen von Pixeln. Jedes Pixel is ein Byte-Trippel, also je ein Byte für Rot, Grün, und Blau. Da lässt sich schonmal ein Fehler anhand der Zahlen erkennen, wenn das Bild wenige Farben oder viele Flächen verwendet.
Im Programm werden Bitmaps/Bilder auch nur als Arrays von Zahlen dargestellt, also muss man lernen auf gewisse Art damit umzugehen, ähnlich wie im Hexeditor.
Man kann z.B. abrubte Kontrastwechsel erkennen, wenn man nach großen Zahlennterschieden zwischen zwei benachbarten Pixeln sucht.

Ich hoffe all das gibt eine bessere Intuition.


Hexeditoren zeigen einfach die Kodierung auf dem niedrigsten Niveau, ohne auf die physische Kodierung (Strom, mechanische Erhebungen usw.) einzugehen.

Diese Idee der Kodierung ist fundamental um zu verstehen wie man die echte Welt in einem Computer modellieren kann. Daher auch mein Interesse an Hexeditoren und allgemein Interpretation von Datenformaten usw. KI und Machine Learning ist auch sehr interessant, z.B. um Muster in Daten zu finden, Datentypen zu identifizieren, usw. Im Prinzip ist das alles das Gleiche: Numerische/Symbolische Modelle der Welt und wie man das praktisch umsetzt.

Es hat damit angefangen dass ich Spiele gesehen habe wo man durch Hexeditoren die Leben, Fähigkeiten oder sonstigen Spieleigenschaften ändern konnte. Irgendwie war das magisch und ich wollte das besser verstehen.


P.S.:
Bei digitalen Computern gibt es zwei mögliche Zustände, 0 und 1 was elektrisch gesehen als 0V und 5V realisiert wird (bei aktuellen Prozessoren kann anstatt 5V auch nur 0.8V verwendet werden um 1 zu repräsentieren). Wie bei mechanischen Computern/Spieluhren, sind die Bits also eigentlich keine Zahlen, sondern Symbole die zwei Zustände unterscheiden. Man kann sie aber auch als Zahlen interpretieren und damit Rechnen, weil das häufig nützlich ist.


Zuletzt bearbeitet von mael am Mi 01.11.17 18:17, insgesamt 3-mal bearbeitet

Für diesen Beitrag haben gedankt: Symbroson
Symbroson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Mi 01.11.17 18:09 
Ok danke euch :)
Ich glaube ich hab den Sinn jetzt verstanden ^^

Im Grunde bewitkt der Hex-Editor also, dass man jedes Zeichen einer Datei lesen und bearbeiten kann. Was ja bei normalen Text-Editoren nicht der Fall ist, geschweigedenn diese in ruhe lassen.
Die Idee/Notwendigkeit kam also noch vor Assembler - das ist heftig :shock:

Danke nochmal :)

LG,
Alex

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)