Entwickler-Ecke

Freeware Projekte - HxD - schneller Hexeditor, Disk-Editor und RAM-Editor


mael - So 06.02.05 16:19
Titel: HxD - schneller Hexeditor, Disk-Editor und RAM-Editor
Neue Version 2.4 (28.2.2020), siehe letzten Post

Links setzen
Wem mein Programm HxD gefällt, der kann gerne einen Link auf meine Seite ( http://mh-nexus.de/hxd/ ) setzen.

Beschreibung
HxD ist ein schneller Hexeditor, den ich seit ein paar Jahren entwickle und der jetzt in der ersten öffentlichen/stabilen Version vorliegt :D.

Ich habe den Hexeditor komplett selbst geschrieben, er basiert nicht auf einem TCustomGrid oder Ähnlichem. (Also alles außer ToolBar2000/TBX und den Digests (SHA-1, MD-5,...))

Kurzer Funktionsüberblick:



ACHTUNG:
Verwende den Schreibmodus des Diskeditors nur wenn Du genau weißt was Du tust! Man kann leicht durch falsches Editieren der Festplatte ein System unbootbar machen.

user defined image

Download portable und installierbare Version 2.4.0.0: https://mh-nexus.de/de/downloads.php?product=HxD20

Updates (Download oben):

Ich würde mich über Tests und Vorschläge (natürlich auch Lob :D) freuen.


wulfskin - So 06.02.05 16:29

Hallo,

gefällt mir bis jetzt ganz gut! Was mir persöhnlich allerdings noch fehlt, ist ein Vergleichsmodus. Ich benutze gerade den Hex Workshop und der hat eine geniale Vergleichoption, mit der man sofort weiss, was sich geändert hat!

Aber weiter so. Das wird was!

GRuß hApe!


MrSaint - So 06.02.05 16:32

Hei!

Fettes Lob von mir, das Tool gefällt mir extremst :) Wollte mir sowieso mal wieder nach nem brauchbaren Hexeditor schauen und da hab ich gerade das hier entdeckt und ich muss sagen, dass das Tool bei mir auf jheden Fall zum Einstaz kommt! Besonders gut find ich jetzt auf Anhieb, dass man eben auch Laufwerke problemlos anschauen kann und vor allem auch, dass er nicht die ganze Datei (also wenn man ne normale Datei öffnet) zuerst in den Speicher kopiert, bevor es weiter geht, sondern die (geh ich dann mal davon aus) direkt von der HDD holt. Das ermöglicht es auch problemlos mal ne 600 MB Datei oder so schnell anzuscauen ohne lange Wartezeiten.

Echt: Daumen nach oben!



MrSaint


AXMD - So 06.02.05 17:28

Also ich muss sagen das Programm gefällt mir ausserordentlich. Design ist echt gut, Funktionalität ebenfalls. Hab noch nichts gefunden was nicht funktioniert hätte oder buggy gewesen wäre.
Hauptgrund dafür, dass ich jetzt deinen Hexeditor verwenden werden: die Geschwindigkeit.

Super :tongue:

AXMD


Kroni - So 06.02.05 17:29

WOOOW
Super!
Das Dingen ist echt klasse....=)
Wie viele Seiten Quellcode ist das wenn man mal so fragen darf?
GROßES LOB


mael - So 06.02.05 17:40

wulfskin hat folgendes geschrieben:
Ich benutze gerade den Hex Workshop und der hat eine geniale Vergleichoption, mit der man sofort weiss, was sich geändert hat!

Danke, guter Vorschlag, werde ich in nächster Version umsetzen.

wulfskin hat folgendes geschrieben:

Aber weiter so. Das wird was!

:D


WeBsPaCe - So 06.02.05 17:44

Kroni hat folgendes geschrieben:
Wie viele Seiten Quellcode ist das wenn man mal so fragen darf?

Das wollte ich auch gerade fragen! :D Ist das Projekt OpenSource?

Echt klasse, der Editor. Wirklich! Ich verneige mich... :flehan: :lol:


mael - So 06.02.05 17:45

MrSaint hat folgendes geschrieben:

Fettes Lob von mir, das Tool gefällt mir extremst :) [...]das Tool bei mir auf jheden Fall zum Einstaz kommt!

Danke, das ist ein echter Ansporn. :D

MrSaint hat folgendes geschrieben:
dass er nicht die ganze Datei (also wenn man ne normale Datei öffnet) zuerst in den Speicher kopiert, bevor es weiter geht, sondern die (geh ich dann mal davon aus) direkt von der HDD holt.

Stimmt, so mache ich das.

AXMD hat folgendes geschrieben:
Also ich muss sagen das Programm gefällt mir ausserordentlich. Design ist echt gut, Funktionalität ebenfalls. Hab noch nichts gefunden was nicht funktioniert hätte oder buggy gewesen wäre.
Hauptgrund dafür, dass ich jetzt deinen Hexeditor verwenden werden: die Geschwindigkeit.

Super :tongue:

AXMD


Schön, wenn das so weiter geht, heb ich ab vor Freude :lol:

Moderiert von user profile iconraziel: Beiträge zusammengefasst


AXMD - So 06.02.05 17:49

mael hat folgendes geschrieben:
AXMD hat folgendes geschrieben:
Also ich muss sagen das Programm gefällt mir ausserordentlich. Design ist echt gut, Funktionalität ebenfalls. Hab noch nichts gefunden was nicht funktioniert hätte oder buggy gewesen wäre.
Hauptgrund dafür, dass ich jetzt deinen Hexeditor verwenden werden: die Geschwindigkeit.

Super :tongue:

AXMD


Schön, wenn das so weiter geht, heb ich ab vor Freude :lol:


Nicht abheben, noch mehr Features implementieren; irgendwas gibt's bestimmt noch was fehlt - auch wenn mir grade nix einfällt :twisted:

AXMD


Tino - So 06.02.05 18:00

Hallo!

Das Programm gefällt mir auch sehr gut. Werde wahrschneilich meinen alten HEX-Editor von der Platte schmeißen und Deinen in Zukunft verwenden. ;-)

Allerdings habe ich trotzdem ein paar Punkte:

Wie gesagt: ein tolles Programm!

Gruß
Tino


mael - So 06.02.05 18:01

Kroni hat folgendes geschrieben:
WOOOW
Super!
Das Dingen ist echt klasse....=)
Wie viele Seiten Quellcode ist das wenn man mal so fragen darf?
GROßES LOB


Danke :P,

EDIT: Ich habe nochmal neu berechnet (hatte ein paar Dateien vergessen die in Unterordnern waren) es sind aktuell 24316 Zeilen, dabei ist natürlich nur selbstgeschriebener Kode gezählt, keine Fremdkomponenten. Aber die Zeilenanzahl bzw. die Quellcodegröße gibt sowieso nicht direkt über den Arbeitsaufwand Auskunft.

WeBsPaCe hat folgendes geschrieben:
Kroni hat folgendes geschrieben:
Wie viele Seiten Quellcode ist das wenn man mal so fragen darf?

Das wollte ich auch gerade fragen! :D Ist das Projekt OpenSource?

Echt klasse, der Editor. Wirklich! Ich verneige mich... :flehan: :lol:

Danke.
OpenSource ist es nicht aber es bleibt garantiert Freeware und ich werde auch versuchen alle Vorschläge umzusetzen. Sollte ich jemals das Programm nicht weiterentwickeln (was ich kaum glaube, steckt schon zuviel Zeit drin) mache ich es aber OpenSource.
Wenn Du Fragen hast zur Umsetzung spezieller Features gebe ich aber gerne Auskunft.

Moderiert von user profile iconraziel: Beiträge zusammengefasst


Kroni - So 06.02.05 18:10

Warum zeigt mir der HexEditor lauter ?????? an , wenn ich ein Progg ausm Arbeitsspeicher laden will??


mael - So 06.02.05 18:10

AXMD hat folgendes geschrieben:
mael hat folgendes geschrieben:
AXMD hat folgendes geschrieben:
Also ich muss sagen das Programm gefällt mir ausserordentlich. Design ist echt gut, Funktionalität ebenfalls. Hab noch nichts gefunden was nicht funktioniert hätte oder buggy gewesen wäre.
Hauptgrund dafür, dass ich jetzt deinen Hexeditor verwenden werden: die Geschwindigkeit.

Super :tongue:

AXMD


Schön, wenn das so weiter geht, heb ich ab vor Freude :lol:


Nicht abheben, noch mehr Features implementieren; irgendwas gibt's bestimmt noch was fehlt - auch wenn mir grade nix einfällt :twisted:

AXMD

Nicht im Sinne vor Arroganz, sondern Freude. Es ist einfach schön zu sehen, daß auch andere Leute mein Programm mögen.

Und keine Angst, das war erst der Anfang in 2-3 Wochen habe ich Semesterferien und dann wird weiterentwickelt :-)

Kroni hat folgendes geschrieben:
Warum zeigt mir der HexEditor lauter ?????? an , wenn ich ein Progg ausm Arbeitsspeicher laden will??

Das liegt daran, daß eine Menge der möglichen 4 GB des Arbeitsspeicher in den meisten Programmen nicht zugewiesen sind. Gehe mal an den Offset 400000 (Hexadezimal), da haben die meisten Programme die EXE geladen.

Ich habe vor eine Art Data-Folding einzuführen (analog zu Code-Folding) um das Navigieren komfortabler zu machen, das dauert aber noch etwas.
EDIT: Data-Folding ist jetzt in den aktuellen Versionen drin.

Moderiert von user profile iconraziel: Beiträge zusammengefasst


AXMD - So 06.02.05 18:21

Kurze Bitte: bitte bei mehreren Beiträgen die Edit-Funktion des jeweils ersten verwenden. Danke :)

AXMD


Kroni - So 06.02.05 18:22

Jop, ganz weit unten bei Offset 077D10FF3H (H für Hexadezimal) gehts los=)


mael - So 06.02.05 18:35

Tino hat folgendes geschrieben:
Hallo!
Das Programm gefällt mir auch sehr gut. Werde wahrschneilich meinen alten HEX-Editor von der Platte schmeißen und Deinen in Zukunft verwenden. ;-)

Cool :D

Tino hat folgendes geschrieben:

Kann man auch eine "normale" Toolbar und Menü anzeigen? Ich habs halt immer ganz gerne, dass alle Programm grundsätzlich gleich aussehen. Vor allem bei solchen grundlegenden Elementen wie das Menü oder die Toolbar.

Etwa so?
XP-Styles:
user defined image
Ohne Styles:
user defined image

Tino hat folgendes geschrieben:
Bei dem Fenster Optionen könnte man das Vorschau-Kontrol so einstellen, dass dieses mit der Tab-Taste nicht erreichbar ist. Eventl. auch Readonly.
Ok

Tino hat folgendes geschrieben:
Wenn man bei dem Fenster Prüfziffern einen Doppelklick auf die Listbox macht sollte diese Aktion automatisch das Fenster mit OK schließen.
Ok

Tino hat folgendes geschrieben:
Bei dem Toolwindow "Prüfziffern" wäre es schön wenn man alle oder einzelne Prüfziffern löschen und in die Zwischenablage exportieren könnte.

Per Tastenkürzel(ENTF, STRG+C) und Popupmenü? Oder anders?

AXMD hat folgendes geschrieben:
Kurze Bitte: bitte bei mehreren Beiträgen die Edit-Funktion des jeweils ersten verwenden. Danke :)

Du meinst wenn ich eine neue Version hochlade oder was? Ich verstehe nicht ganz.

Moderiert von user profile iconraziel: Beiträge zusammengefasst


raziel - So 06.02.05 18:42

Nein er meint, wenn du siehst, dass in der Zwischenzeit jemand anders gepostet hat und du auch darauf antworten willst, bitte keinen neuen Post beginnen, sondern einfach den bereits vorhandenen Editieren, Danke :)
Deine letzten beiden Einträge hab ich bereits zusammengefasst ;)

Zu deinem Programm: Find ich super! Habs mir zwar erst kurz ansehen können, aber bisher bin ich begeistert. :)

raziel


mael - So 06.02.05 19:07

raziel hat folgendes geschrieben:
Deine letzten beiden Einträge hab ich bereits zusammengefasst ;)

Ah, das Beste sind doch immer Beispiele, Danke ;-)

raziel hat folgendes geschrieben:

Zu deinem Programm: Find ich super! Habs mir zwar erst kurz ansehen können, aber bisher bin ich begeistert. :)

Freut mich.


retnyg - Di 22.02.05 15:17

sieht echt super aus das programm. kann man damit eigentlich auch den bootsektor exportieren/importieren ? meiner ansicht nach ein wichtiges feature.


mael - Di 22.02.05 15:34

retnyg hat folgendes geschrieben:
sieht echt super aus das programm. kann man damit eigentlich auch den bootsektor exportieren/importieren ? meiner ansicht nach ein wichtiges feature.

Kann man, ich habe vor Kurzem eine Trennlinie eingebaut (ist im Update von HxD, das in ein paar Tagen kommt)
Man kann einfach per Copy&Paste den Bootsektor (einfach der erste Sektor) kopieren, ersetzen, in eine neue Datei speichern oder auf ein neues Laufwerk kopieren.
Im Prinzip wird ein Laufwerk einfach wie eine Datei behandelt. Die Trennlinie dient dann nur der Uebersichtlichkeit.


retnyg - Di 22.02.05 15:56

wäre aber fein wenn es einen befehl im menü gäbe z.b. export boot sektor, woraufhin n dialog mit dem filename kommt.
und das selbe mit import.
damit man nicht aus versehen ein byte zu viel oder zu wenig kopiert.


mael - Sa 26.02.05 13:48

retnyg hat folgendes geschrieben:
wäre aber fein wenn es einen befehl im menü gäbe z.b. export boot sektor, woraufhin n dialog mit dem filename kommt.
und das selbe mit import.
damit man nicht aus versehen ein byte zu viel oder zu wenig kopiert.

Baue ich noch ein unter der Sparte Drive-Tools, wird es wohl aber nicht mehr in die nächste Version schaffen, die kommt nämlich heute oder morgen.


uall@ogc - Sa 26.02.05 13:58

zu wünschen wäre noch
1) rechtsklick suchen
2) rechtsklick zu adresse gehen
3) beim ram anzeigen nur speicher anzeigen der wirklich auch da ist d.h. wo du readprocessmemory auch speicher bekommst den speicher da zwischen kannste ja irgendwie raustrennen

und noch 2 "bugs"
1) audio CDs werdennet unterstützt
2) nimmt man eine CD raus und packt ne andere rein meckert der immer das die CD gefunden wurde


mael - Sa 26.02.05 14:06

uall@ogc hat folgendes geschrieben:

3) beim ram anzeigen nur speicher anzeigen der wirklich auch da ist d.h. wo du readprocessmemory auch speicher bekommst den speicher da zwischen kannste ja irgendwie raustrennen

Wie schon in der Antwort an Kroni erwähnt, werde ich eine Art Data-Folding einführen.
Das ist allerdings etwas aufwendiger und dauert noch.

Was die Kontextmenü-Dinger angeht: Ich bin kein Fan von großen Kontextmenüs, wie sieht es mit den Tastenkombinationen STRG+G (Go to) und STRG+F (Find) aus?
Mit denen geht es noch schneller.


uall@ogc - Sa 26.02.05 14:08

dafür bin ich zu sehr an HexWorkShop32 gewöhnt ;>
aber bau mal ne unterstützung für adio Cds ein (müsste doch machbar sein oder net, kenn den aufbau nicht so)


mael - Sa 26.02.05 14:17

uall@ogc hat folgendes geschrieben:
dafür bin ich zu sehr an HexWorkShop32 gewöhnt ;>

Habe ich mir fast schon gedacht ;-) Sei mir nicht böse aber ich habe nicht vor HexWorkShop nachzubauen.

uall@ogc hat folgendes geschrieben:

aber bau mal ne unterstützung für adio Cds ein (müsste doch machbar sein oder net, kenn den aufbau nicht so)

Geht wenn man sie als physisches Laufwerk öffnet. Allerdings gibt es bei Audio-CDs häufiger nicht lesbare Teile, werde noch schauen daß hier die Lesefehler besser übergangen werden können.

EDIT: Audio CDs sind mit Windows NT ohne SPTI und dem schon genannten Aufwand nicht möglich. Ich habe nochmal nachgeforscht: Windows NT gibt immer 0 aus bei reinen Audio CDs, nur bei Mixed Mode (also mit Datenteil) wird der Datenteil gelesen.


uall@ogc - Sa 26.02.05 14:25

bei mir wird die audio CD (physisches laufwerk) reine #0 angezeigt


mael - Sa 26.02.05 15:18

uall@ogc hat folgendes geschrieben:
bei mir wird die audio CD (physisches laufwerk) reine #0 angezeigt
Kann am Kopierschutz oder am Laufwerk liegen. Gehe mal ganz ans Ende da steht meistens etwas.
Was den Inhalt angeht stimmt er bei mir mit WinHex überein, die 0'en sind das was Windows NT liefert da kann man nicht viel machen (außer SPTI)

Falls Du über Umwege eine Audio-CD kopieren willst: Das ist nicht möglich, da Audio CDs keine Daten-CDs sind. Der Aufbau ist anders und da müßte man über SPTI darauf zugreifen.
Das ist nicht wirklich der Einsatzbereich eines Hexeditors und würde vom Aufwand grob geschätz dem Nachbau der Lesefunktion von CloneCD oder ähnlichen Programmen gleichkommen.
Der interessante Teil so einer Lesefunktion, also die Umgehung des Kopierschutzes, ist dabei auch leider illegal.


mael - So 27.02.05 20:02

Update von HXD auf Version 1.2

Changelog:


Download (577 KB): http://mh-nexus.de/downloads/HxDde.zip

Freue mich weiter über eure Kommentare (auch gerne weiter positiv :lol:)


zemy - So 27.02.05 20:22

Schon krass, was du da zusammengezimmert hast :D Mir ist aber ne Kleinigkeit aufgefallen.... Festplatte geöffnet, will mir ne Statistik anzeigen lassen (ich weiß, ca. 40GB an Daten zum durchforsten) und das Prog schaltet sich ab... ohne Fehlermeldungen o.ä. Absicht?

MfG Zemy


mael - So 27.02.05 20:33

zemy hat folgendes geschrieben:
Mir ist aber ne Kleinigkeit aufgefallen.... Festplatte geöffnet, will mir ne Statistik anzeigen lassen (ich weiß, ca. 40GB an Daten zum durchforsten) und das Prog schaltet sich ab... ohne Fehlermeldungen o.ä. Absicht?

EDIT: Wurde in Version 1.2.1 gefixt.


mael - Di 01.03.05 20:09

Update von HXD auf Version 1.2.1

Changelog:


Download (577 KB): http://mh-nexus.de/downloads/HxDde.zip


mael - Sa 12.03.05 22:58

Damit ihr nicht denkt es passiert nichts mehr, hier eine Übersicht der kommenden Hauptfunktionen:


  1. Data-Folding, zum Falten/Verstecken nicht zugewiesener Bereiche im RAM-Editor (die Teile die aus lauter Fragezeichen bestehen)
  2. Disk-Editor für Win9X
  3. Vergleichsfunktion für Dateien
  4. Disktools (Klonen, MBR/Boot-Record kopieren, ...)


Momentan arbeite ich gerade am Data-Folding.
Die anderen Funktionen kommen dann zusammen mit ein paar kleineren Änderungen/Funktionen jeweils als 1.x Versionen auf dem Weg zur Version 2.0.


Lannes - So 13.03.05 00:34

Hallo,

ich warte schon drauf :D, aber mach Dir keinen Stress :eyecrazy:

was noch fehlt :
- Fortschrittsanzeige bei z.B. Kopieren als HTML
- Druckereinrichtung
Fehler ? : Exportieren wird bei mir nicht ausgeführt
Vorschlag : Data-Folding auch bei \Exportieren unter und \Kopieren als berücksichtigen.

MfG Lannes


mael - So 13.03.05 14:10

user profile iconLannes hat folgendes geschrieben:

Fehler ? : Exportieren wird bei mir nicht ausgeführt

Wie das, kannst Du näher beschreiben (=bei mir geht es)?

Hast Du jetzt schon WinXP oder noch NT 4.0 ?


Lannes - So 13.03.05 14:42

Hallo,

Datenträger a: geöffnet, dann Menü \Datei\Exportieren\HTML
= keine Reaktion
Wenn eine Datei geöffnet wird, dann geht es.

Immer noch beide WinXP und NT 4.0

MfG Lannes


retnyg - Di 22.03.05 03:28

hatte vorhin das erste mal richtig zeit mal etwas zu testen. besonders gut gefällt mir, dass man auch etwas einfach so rauslöschen kann.
auch die export-funktionen scheinen sehr praktisch zu sein, wenn sie denn funktionieren würden:
wie lannes bereits sagte geht gar nichts wenn im datenträger modus,
habe eine test.exe auf meinem desktop geöffnet: exportiere pascal: desktop\test.pas
-> meldung: desktop\test.exe konnte nicht erstellt werden.
(falls da möglicherweise die routinen noch nicht existieren kannst du diese gerne aus meinem shellcode converter [http://www.delphi-forum.de/viewtopic.php?t=35109&highlight=shellcode+converter] nehmen)
leider kann ich das bootsektor importieren/exportieren immer noch nicht finden.
Ansonsten: echt super ! :D


mael - Di 22.03.05 14:35

user profile iconretnyg hat folgendes geschrieben:

auch die export-funktionen scheinen sehr praktisch zu sein, wenn sie denn funktionieren würden [...]

Jetzt mal nicht pauschalisieren, es geht nur mit logischen Datenträgern nicht, und daß auch nur weil der automatisch erzeugte Dateinamen dann einen Doppelpunkt enthält, A: würde z.B. zu A:.pas was kein gültiger Dateiname ist, deshalb wird der SaveDialog nicht angezeigt. Ist also ein absolut kleiner Fehler, der sogar gefixt ist, nur noch nicht oben weil eben das Datafolding noch nicht fertig ist, was die Hauptneuerung des nächsten Updates wird.
Der andere Fehler den Du erwähnst, ist auch nur ein Namensproblem der auch schon gefixt ist, und kommt...
Ich kann dich beruhigen ich mache keine Vaporware, die Sachen sind schon implementiert, Du kannst das an der "Kopieren als"-Funktion überprüfen. Die tut nämlich dasselbe nur eben wird es nicht in eine Datei, sondern in die Zwischenablage geschrieben.

user profile iconretnyg hat folgendes geschrieben:

leider kann ich das bootsektor importieren/exportieren immer noch nicht finden.

Habe ich doch schon gesagt wann es kommt :roll:, siehe hier [http://www.delphi-forum.de/viewtopic.php?p=228491#228491]
Ich muß die Sachen in der Reihenfolge implementieren wie die Wünsche vorgetragen wurden, das Datafolding ist ja auch fast fertig aber ist eben nicht ganz trivial, wenn auch vielleicht nicht direkt einsehbar.


mael - Mo 04.04.05 21:17

Also, das Data-Folding Feature ist schon ziemlich fertig, es gibt noch einige Zeichenprobleme in Sonderfällen.

Wer schonmal einen Blick darauf werfen will, hier ist ein Preview:

user defined image

Es sieht vielleicht nicht nach viel aus, mußte aber bisher so ziemlich den ganzen Zeichencode umstellen. Ein Vorteil ist auch, daß dadurch die geplanten integrierten Templates ein Stück leichter umzusetzen sein werden.
(Also wenn z.B. ein Bild vorkommt, ein Mini-Bildeditor, wenn Programmcode dann Disassembleranzeige und die anderen üblicheren Dinger die es bei Templates in Hexeditoren gibt, aber eben integriert und nicht in einem extra Fenster).

Diese Woche kann ich nicht weiter am Data-Folding arbeiten, aber spätestens in einem Monat sollte es fertig sein.


galagher - So 10.04.05 14:52

Hab's auch schon auf meiner Festplatte! Sehr gutes Programm, werde HxD nun statt meinem (uralten) DOS-Hex-Editor benutzen. Kleine unverschämte Bitte:
Könntest du eine Möglichkeit zum Speichern des OEM/DOS-Schriftsatzes einbauen? Wenn ich die Schriftart ASCII VGA (ascii.fon) einstelle, werden beim nächsten Programmstart die Zeichen nicht so, wie es sein sollte, dargestellt. (Hatte das Problem auch bei einem meiner Programme).

Ansonsten ein Programm, das echt nützlich ist!


uall@ogc - So 10.04.05 15:07

kannst das so machen das alle änderungen die man vornimmt rot angezeigt werden bis zum nächsten speichern (wi beim Hexworkshop)?


mael - So 10.04.05 15:30

user profile icongalagher hat folgendes geschrieben:
Hab's auch schon auf meiner Festplatte! Sehr gutes Programm, werde HxD nun statt meinem (uralten) DOS-Hex-Editor benutzen.

Danke :D

user profile icongalagher hat folgendes geschrieben:
Könntest du eine Möglichkeit zum Speichern des OEM/DOS-Schriftsatzes einbauen? Wenn ich die Schriftart ASCII VGA (ascii.fon) einstelle, werden beim nächsten Programmstart die Zeichen nicht so, wie es sein sollte, dargestellt. (Hatte das Problem auch bei einem meiner Programme).

Sieht so aus, als ob Windows den Font mit Arial oder sowas ersetzen würde, ich schau mal was man da machen kann.

Übrigens: mein Programm verwendet intern Unicode um die Zeichen darzustellen, daher müßten eigentlich auch mit Courier New alle Sonderzeichen erscheinen
(wenn man Ansicht | Zeichensatz | DOS/IBM-ASCII auswählt).

user profile iconuall@ogc hat folgendes geschrieben:
kannst das so machen das alle änderungen die man vornimmt rot angezeigt werden bis zum nächsten speichern (wi beim Hexworkshop)?

Ja, aber erst nach dem Disk-Editor für Win9X, das Data-Folding ist so verdammt schwer, daß ich erstmal eine Pause vom Bearbeiten des Zeichencodes brauchen werde ;-)
Edit: In aktuellen Versionen enthalten.


galagher - So 10.04.05 15:45

user profile iconmael hat folgendes geschrieben:
Sieht so aus, als ob Windows den Font mit Arial oder sowas ersetzen würde, ich schau mal was man da machen kann.

Übrigens: mein Programm verwendet intern Unicode um die Zeichen darzustellen, daher müßten eigentlich auch mit Courier New alle Sonderzeichen erscheinen
(wenn man Ansicht | Zeichensatz | DOS/IBM-ASCII auswählt).

Sonderzeichen schon, aber ascci.fon sieht aus wie der MS-DOS-Font, also nicht nur alle Zeichen gleich breit, sondern auch sonst exakt wie die DOS-Schrift - #3 ist also ein "Herz" usw.
Jedenfalls danke, dass du auf meinen Vorschlag geantwortet hast!

//Edit: Ich hab' das bei meinem Programm gelöst, indem ich einfach Font.Charset als Integer in einer INI-Datei abgespeichert hab!


mael - So 10.04.05 15:50

user profile icongalagher hat folgendes geschrieben:
Könntest du eine Möglichkeit zum Speichern des OEM/DOS-Schriftsatzes einbauen? Wenn ich die Schriftart ASCII VGA (ascii.fon) einstelle, werden beim nächsten Programmstart die Zeichen nicht so, wie es sein sollte, dargestellt. (Hatte das Problem auch bei einem meiner Programme).

So habe gerade den Fehler gefixt (kommt dann mit nächstem Programm-Update). Da Du auch das Problem hattest und vielleicht an einer Lösung interessiert bist:
Man muß nicht nur Font.Name, Font.Size, Font.Style, sondern auch Font.Charset und Font.Pitch abspeichern, sonst wählt Windows einen anderen "passenden" Font.
Z.B. weil Charset von ascii.fon DOS/OEM und nicht Ansi ist, aber Arial Ansi unterstüzt.


mael - So 10.04.05 15:54

user profile icongalagher hat folgendes geschrieben:
exakt wie die DOS-Schrift - #3 ist also ein "Herz" usw.

Das geht auch mit Courier New (vielleicht hast Du eine alte Version ?).
Einfach 03 im Hex-Teil eingeben und Zeichensatz auf DOS/IBM-ASCII umstellen, bei mir erscheint dann ein Herz.

user profile icongalagher hat folgendes geschrieben:

//Edit: Ich hab' das bei meinem Programm gelöst, indem ich einfach Font.Charset als Integer in einer INI-Datei abgespeichert hab!

Dann kannst Du ja meinen obige Erklärung ignorieren, ich war zu langsam mit posten :-)


galagher - So 10.04.05 22:16

user profile iconmael hat folgendes geschrieben:
Einfach 03 im Hex-Teil eingeben und Zeichensatz auf DOS/IBM-ASCII umstellen, bei mir erscheint dann ein Herz.

Bei mir nicht, egal, welchen Zeichensatz ich einstelle. Aber egal, das Programm ist echt gut!


mael - So 10.04.05 23:24

user profile icongalagher hat folgendes geschrieben:
user profile iconmael hat folgendes geschrieben:
Einfach 03 im Hex-Teil eingeben und Zeichensatz auf DOS/IBM-ASCII umstellen, bei mir erscheint dann ein Herz.

Bei mir nicht, egal, welchen Zeichensatz ich einstelle. Aber egal, das Programm ist echt gut!

Ja danke, ich möchte halt, daß es überall so läuft wie es geplant war.
Welche Windows und Internet Explorer Version hast Du denn?


galagher - Di 12.04.05 22:24

user profile iconmael hat folgendes geschrieben:

Welche Windows und Internet Explorer Version hast Du denn?

Win Me (ich verwende Mozilla), IE-Version 6.0.2800 ... Sorry für die verspätete Antwort!


mael - Mi 13.04.05 18:34

Update von HxD auf Version 1.3 Beta

Changelog:


Download (580 KB): http://mh-nexus.de/downloads/HxDBeta.zip

Nach längerer Zeit ist Data-Folding also jetzt implementiert.
Somit ist jetzt HxD der erste Hexeditor der Data-Folding anbietet! (ich habe dies bei keinem Hexeditor bisher gesehen, absolut sicher garantieren, daß es der erste ist kann ich aber natürlich nicht).

Vor allem für den RAM-Editor ist dies interessant, da es jetzt viel übersichtlicher ist. Die Implementierung erlaubt Daten-Falten auch mit normalen Dateien, sinnvoll wird das aber erst wenn die integrierten Templates da sind (kommt in 2.0 oder 3.0 Version).

Sicherlich ist euch auch aufgefallen, daß es Beta ist. Der Grund sind die wirklich umfangreichen Änderungen die sich ergeben haben. Wenn ihr Fehler findet bitte meldet sie.

Freue mich auf Feedback, denn das ist ja der Lohn eines Freeware-Programmierers.


galagher - Mi 13.04.05 18:45

user profile iconmael hat folgendes geschrieben:
Update von HXD auf Version 1.3 Beta

:D Hab's schon mal kurz ausprobiert - sehr gut! Aber könnte mich jemand mal aufklären, was Data-Folding ist? Nie gehört...


mael - Mi 13.04.05 18:51

user profile icongalagher hat folgendes geschrieben:
user profile iconmael hat folgendes geschrieben:
Update von HXD auf Version 1.3 Beta

:D Hab's schon mal kurz ausprobiert - sehr gut! Aber könnte mich jemand mal aufklären, was Data-Folding ist? Nie gehört...

Habe das Wort auch noch nie gehört :lol:
Ich habe das Wort einfach analog zu Code-Folding gebildet.

Code-Folding ist das was man in Quelltext-Editoren (Delphi 2005, MSVS .NET) vorfindet.
Damit kann man Teile des Quelltextes zusammenfalten, so als ob es Papier wäre. Z.B. kann man dann Funktionen nur noch zum Funktions-Kopf falten, der Funktions-Rumpf wird dann versteckt.

Data-Folding findet man im RAM-Editor (Klick mal auf die +/- Knöpfe).


uall@ogc - Mi 13.04.05 18:57

du könntest den verfügbarne speicher bei ram ja auch noch irendwo in einer liste anzeigen lasse. wie ollydebug, und daneben schreiben welche rechte die pages haben
und so lange die änderungen net rot geschrieben werden benutze ich den net 8)


mael - Mi 13.04.05 19:05

user profile iconuall@ogc hat folgendes geschrieben:
du könntest den verfügbarne speicher bei ram ja auch noch irendwo in einer liste anzeigen lasse. wie ollydebug, und daneben schreiben welche rechte die pages haben
und so lange die änderungen net rot geschrieben werden benutze ich den net 8)

Die Reihenfolge der Implementierung habe ich schon das letzte Mal angegeben.
Und sonst: Mußt ihn auch nicht benutzen, ich mache mir schließlich eine Menge Arbeit, da werde ich bestimmt nicht auch noch darum betteln, daß andere von der Gratis-Arbeit profitieren.


galagher - Mi 13.04.05 20:12

Bei "Extras/Laufwerk öffnen" erscheinen zwar "Logische Laufwerke" und "Physische Laufwerke", aber sonst nichts. Wie wähle ich ein Laufwerk aus?


mael - Mi 13.04.05 20:19

user profile icongalagher hat folgendes geschrieben:
Bei "Extras/Laufwerk öffnen" erscheinen zwar "Logische Laufwerke" und "Physische Laufwerke", aber sonst nichts. Wie wähle ich ein Laufwerk aus?

Disk-Editor ist bis jetzt nur für Windows NT, 2000, XP usw. verfügbar.
Aber, Du hast Glück ;-) Win9X Unterstützung ist in Arbeit und wird das nächste Feature sein.


galagher - Mi 13.04.05 20:31

user profile iconmael hat folgendes geschrieben:
Aber, Du hast Glück ;-) Win9X Unterstützung ist in Arbeit und wird das nächste Feature sein.
Super! :P


mael - Mo 02.05.05 15:59

Update von HxD auf Version 1.4 Beta

Changelog:


Download (590 KB): http://mh-nexus.de/downloads/HxDBeta.zip


F34r0fTh3D4rk - Mo 02.05.05 16:17

das mim markieren find ich geil, wie hast du des alles eingebaut, bzw angepasst ?

was ist das für ne komponente ?

die komponenten sind sowieso alle so stylisch, das menü usw, repekt :D


mael - Mo 02.05.05 16:44

user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
das mim markieren find ich geil, wie hast du des alles eingebaut, bzw angepasst ?

was ist das für ne komponente ?

die komponenten sind sowieso alle so stylisch, das menü usw, repekt :D

Danke.

Also das Menü und die Toolbars sind mit TBX und TB2K realisiert ( http://www.g32.org/tbx/index.html und http://jrsoftware.org/tb2k.php ).

Die Hexeditorkomponente habe ich komplett selbst geschrieben, sie basiert auf TCustomControl. Es gibt jetzt keinen Geheimtip um das zu erreichen, man muß es von A-Z programmieren (das geht nicht mit der TRichEdit oder TMemo-Komponente).

Die Markierung kann man durch Regions erreichen, siehe dazu die Windows API.


F34r0fTh3D4rk - Mo 02.05.05 16:53

is schon heftig :lol: funzt auch super und flüssig, lässt sich gut mit arbeiten :)


mael - Di 03.05.05 20:57

user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
is schon heftig :lol: funzt auch super und flüssig, lässt sich gut mit arbeiten :)

Danke.

Übrigens:
Gestern hat man mir noch einen Zeichenfehler gemeldet. Daher habe ich auch eine neue gefixte Version hochgeladen.

An alle die Win9x benutzen, könnt ihr den Disk-Editor ausprobieren (ist ja gerade neu für Win9x gemacht, ein paar andere Systeme zum Testen als meins wären sicher sinnvoll)?


mael - Fr 13.05.05 21:28

Update von HxD auf Version 1.4.1 Beta

Changelog:



Ich habe mich entschieden wieder ein nicht final Update hochzuladen, weil einige wichtige Fehler korrigiert wurden. Insbesondere wurde ein Fehler ausgemerzt der Speicher überschrieben hat und dadurch in bestimmten Situationen HxD zum Absturz brachte.

Download (590 KB): http://mh-nexus.de/downloads/HxDBeta.zip


galagher - Fr 13.05.05 21:46

Wie bereits gesagt, mein alter MS-DOS-Hex-Editor (1992 !) hat nun ausgedient! Ich sehe mir doch mal gern hin und wieder Dateien "pur" an, und da ist so ein Programm gerade richtig!


feivel3333 - Fr 13.05.05 22:15

Hey, Super-Editor! Muss ich sagen. Einfach zu bedienen, alles erklärt sich von selbst.
Aber sag mir doch mal, womit erzeugst du so genial aussehende Menüs? Liegt es an meinem Delphi ( Version 5 !), dass ich so was nicht hinbekomme?

Gruß, AS


mael - Fr 13.05.05 23:24

user profile iconfeivel3333 hat folgendes geschrieben:
Hey, Super-Editor! Muss ich sagen. Einfach zu bedienen, alles erklärt sich von selbst.

Danke :)

user profile iconfeivel3333 hat folgendes geschrieben:

Aber sag mir doch mal, womit erzeugst du so genial aussehende Menüs? Liegt es an meinem Delphi ( Version 5 !), dass ich so was nicht hinbekomme?

Ich verwende dazu die Komponenten TBX und TB2K.

user profile icongalagher hat folgendes geschrieben:
Wie bereits gesagt, mein alter MS-DOS-Hex-Editor (1992 !) hat nun ausgedient! Ich sehe mir doch mal gern hin und wieder Dateien "pur" an, und da ist so ein Programm gerade richtig!

Freut mich ;-)

Und wie läuft der Disk-Editor unter Windows ME?


uall@ogc - Sa 14.05.05 11:08

ist leider immer noch meine 2. wahl nach hexworkshop, aber vielleicht willste das ja ändern. 1 sache fehlt mir seit längerem schon und ich habs schon paar malgesagt...

bitte machs doch so das alle änderungen rot angezeigt werden, das ist wirklich wichtig da ich manchmal was in ner exe änder bischen hin und her scrolel und ich dann wieder die änderung nicht finde...

danke


feivel3333 - Sa 14.05.05 11:40

Sind die Menükomponenten TBX und TB2K ohne weiteres irgendwo zu bekommen, oder hast du die gekauft?
Wenn man sie irgendwo bekommt, kannst du mir sagen, wo? Das wäre sehr nett.

Vielen Dank im Voraus,
Gruß, André


mael - Sa 14.05.05 17:38

user profile iconuall@ogc hat folgendes geschrieben:
1 sache fehlt mir seit längerem schon und ich habs schon paar malgesagt...
Ich habe auch schon ein paar mal gesagt, daß ich die Features in der Reihenfolge implementiere wie die Anfragen kamen. Das hier war nur ein Bugfix-release. Dann kommt wahrscheinlich noch ein weiteres Bugfix-release, dann Datei-Vergleich und dann die Hervorhebung der Änderungen.

user profile iconuall@ogc hat folgendes geschrieben:

bitte machs doch so das alle änderungen rot angezeigt werden, das ist wirklich wichtig da ich manchmal was in ner exe änder bischen hin und her scrolel und ich dann wieder die änderung nicht finde...

Die Wichtigkeit ist mir klar, es wird auch kommen, aber eben in der oben angegebenen Reihenfolge.

user profile iconfeivel3333 hat folgendes geschrieben:
Sind die Menükomponenten TBX und TB2K ohne weiteres irgendwo zu bekommen, oder hast du die gekauft?
Wenn man sie irgendwo bekommt, kannst du mir sagen, wo? Das wäre sehr nett.
Sind Freeware/OpenSource, zu bekommen unter http://jrsoftware.org und http://g32.org/tbx/index.html


feivel3333 - Di 17.05.05 12:58

Vielen Dank für den Tip, werde sie mir heute Abend mal ins Delphi integrieren.

Gruß, Feivel


mael - Do 09.06.05 16:22

Update von HxD auf Version 1.4.2.0

Changelog:



Diese Version ist stable, solltet ihr Fehler finden, bitte melden.

Download (596 KB): http://mh-nexus.de/downloads/HxDde.zip


galagher - Di 19.07.05 21:41

Hallo!
Habe einen Bug entdeckt:
Ich wollte mit dem Datentyp "Hex-Wert" 0D0A durch 9F ersetzen, aber das Programm beendet das Ersetzen nicht, stattdessen blendet sich ein Fortschrittsbalken ein, der aber nicht mehr verschwindet - das Programm hängt und man kann es nur noch per Taskmanager abschiessen!

Dazu - das ist jetzt keine Kritik, da HxD ansonsten ein super-Programm ist! - ein Vorschlag:
Die Datei ist knapp mehr als 1000 Bytes gross, das Ersetzen müsste doch in weit weniger als 1 Sekunde erledigt sein. Man könnte doch ein Mindestgrösse festlegen, ab der der Fortschrittsbalken erscheint, aber bei so kleinen Dateien ist das doch unnötig, da man dann den Balken ja nicht einmal sieht, weil es so schnell geht! (Da das Programm aber "hängt", bleibt eben auch der Balken stehen).

Beim Esetzen mit Datentyp "Text-String" klappt alles.


mael - Di 19.07.05 23:55

user profile icongalagher hat folgendes geschrieben:
Habe einen Bug entdeckt[...]

Ja, kann ihn nachvollziehen. Eine neue Version ist gerade noch in Entwicklung mit einigen Neuerungen die noch nicht für eine Veröffentlichung reif sind, daher dauert der Bugfix wohl noch ein bisschen.

user profile icongalagher hat folgendes geschrieben:

Man könnte doch ein Mindestgrösse festlegen, ab der der Fortschrittsbalken erscheint, aber bei so kleinen Dateien ist das doch unnötig, da man dann den Balken ja nicht einmal sieht, weil es so schnell geht!

Eigentlich habe ich eine Minimaldauer eingestellt ab der der Fortschritt angezeigt wird, da muß ich dann wohl noch etwas daran feilen, vielleicht liegt es aber auch am oberen Bug.


Robert.Wachtel - Mi 20.07.05 21:09

user profile iconmael hat folgendes geschrieben:
[...] Eine neue Version ist gerade noch in Entwicklung mit einigen Neuerungen [...]

Da hätte ich auch noch einen Feature Request:

Könntest Du den Offset auch in anderen Zahlensystemen (v.a. dezimal und oktal) anzeigen lassen?


mael - Fr 22.07.05 01:08

user profile iconRobert.Wachtel hat folgendes geschrieben:

Könntest Du den Offset auch in anderen Zahlensystemen (v.a. dezimal und oktal) anzeigen lassen?

Ok, oktal und dezimal mache ich noch rein, aber keine weiteren Zahlensysteme, weil es sonst in den Fenstern mit Offsets zu unübersichtlich wird (Gehe zu, Block markieren, ...)


en!gma - Sa 23.07.05 23:57

also so ist es ein super editor, aber irgendwie funktioniert das mit dem goto bei mir nicht.
erstmal fände ich es besser, wenn ich auch 0 am anfang schreiben könnte.
ok kann man drüber streiten ob es besser ist, aber für mich persönlich übersichtlicher.
naja aber ansonsten zeigt er meine offsets garnicht erst an.
er sagt, dass es diesen offset nicht gäbe obwohl ich weiss, dass es ihn gibt


mael - So 24.07.05 01:18

user profile iconen!gma hat folgendes geschrieben:

naja aber ansonsten zeigt er meine offsets garnicht erst an.

Was meinst Du damit? (er zeigt "deine" Offsets nicht an)?

user profile iconen!gma hat folgendes geschrieben:

er sagt, dass es diesen offset nicht gäbe obwohl ich weiss, dass es ihn gibt

Bitte konkretere Angaben: Wie groß ist die Datei? Welche Offsets gehen nicht?
Denn: Ich habe diese Probleme nicht.


en!gma - So 24.07.05 12:40

ich möchte eine exe datei reinladen.
diese ist 2,18mb gross
und ich möchte zum offset 004B6F94 gelangen.
also öffne ich die datei mit hxd, drücke alt+g
und tippe dort 4B6F94 ein.
er sagt, dass es diesen offset nicht gibt.
scrolle ich ganz nach unten, zeigt er mir alle offsets bis 0022EFF0 an.
soweit funktioniert die suche auch.
alles darunter kann ich einfach nicht erreichen


uall@ogc - So 24.07.05 14:13

sorry enigma ich glaub du verwechselst da was

virtualaddressen bei nem PE file <> daten in einer exe

wenn die 2.18 mb umrechnes siehste das es nur bis 0022xxxx geht
so wie du dir das vorstellst funzt das nicht


en!gma - So 24.07.05 14:47

dann muss ich wohl was verwechseln sorry :/
aber wie kann ich das denn so angezeigt bekommen?
denn in anderen hex editoren komm ich ja so an die addresse


uall@ogc - So 24.07.05 14:57

ichglaub kaum das andere hexeditoren das anzeigen köennen, es sei denn sie interpretieren die exe datei/pe header

wenn die section im code liegt kannste eventl einfach 00400000 abziehen dann haste das offset ansonsten musst du mit nem PElese tool die virtualadresse in die relative adresse vo0n der datei umrechen.

das geht zum beispiel mit lordpe, dann schauste dir die sections an und guckt in welcher section die virtuelle adresse liegt, daneben sollte dann auch angezigt werden wie die relative adrese zu der datei ist die differenz einfach dazuaddieren

beispiel:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
offset: 0040F131

section VA  section size  fileoffset filesize
00401000    0000F000      00001000   0000A000
0040F000    0000C000      0000B000   0000C000

//das offset liegt in der 2. section also die VA abziehen und fileoffset addieren
0040F131-0040F000+0000B000 = 0000B131


en!gma - So 24.07.05 15:00

naja ok danke.
hab eigentlich gedacht, dass sowas jeder hex editor kann.
hab ich mich wohl vertan.

aber so eine funktion wäre super für HxD :D


uall@ogc - So 24.07.05 15:04

glaub ollydbg ist dafür besser geeignet, damit öffnest einfach einen prozess, kannst direkt die asm befehle patchen und dann einfach den bereich markieren -> rechtsklick -> copy to executable -> selection

dann hast des direkt als gepatchte exe


mael - So 24.07.05 15:11

Navigation in PE Dateien (und anderen Dateiformaten), mit korrekter Darstellung der jeweiligen Bereiche (also Code als Assembler, Resourcen wie Bitmaps und Text in einem integrierten Bildeditor, bzw. Texteditor) ist geplant.
Wann das kommt kann ich aber beim besten Willen nicht sagen, meine TODO-Liste ist noch recht lang. Aber es gibt dafür ja andere, spezialisierte Programme wie uall@ogc schon erwähnt hat.
Bitte aber Fragen zu solchen Programmen in einem anderen Thread.


retnyg - Sa 13.08.05 18:34

mael, ich versuche gerade sektoren der festplatte auszulesen.
ich vermute du machst das bei HxD mit NtCreateFile.
könntest du einen kleinen code-schnipsel posten der das veranschaulicht ? danke :)

edit: habs selber hingekriegt

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Button1Click(Sender: TObject);
var hDevice: Thandle;
    buffer: string;
    read: cardinal;
begin
  memo1.clear;
  hDevice := CreateFile('\\.\PHYSICALDRIVE0',GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING,
  FILE_FLAG_SEQUENTIAL_SCAN, 0);
  if hDevice <> INVALID_HANDLE_VALUE then begin
    setlength(buffer,512);
    readfile(hDevice, pointer(@buffer[1])^, 512, read, nil);
    closehandle(hDevice);
    memo1.Lines.add(buffer);
  end;
end;


uall@ogc - Sa 13.08.05 19:36

eigentlich machst du das schon richtig

vielleicht mal
\\.\PHYSICALDRIVE0 in\\.\C:

ändern

desweietren muss der buffer die richtige größe haben
stdmaäßig ist das 512 bei disketten und 4096 auffer platte (clustergröße)


mael - Sa 13.08.05 20:50

Ich habe mal dazu in der DP einen Beitrag geschrieben: http://www.delphipraxis.net/post310776.html#310776

Wichtig ist vor allem noch IOCTL_DISK_GET_DRIVE_GEOMETRY um die Bytes pro Sektor zu bestimmen, außerdem funktioniert die Methode nur unter WinNT+, Win9x benötigt eine 16-Bit DLL oder einen Treiber in der man mit Hilfe des BIOS und DPMI die Festplatte/Disketten ansprechen kann.


galagher - Do 18.08.05 20:06

Ich will ja nicht drängen - aber gibt's ein Update ohne den Bug?


JRegier - Mo 05.09.05 06:41

user profile iconmael hat folgendes geschrieben:
retnyg hat folgendes geschrieben:
sieht echt super aus das programm. kann man damit eigentlich auch den bootsektor exportieren/importieren ? meiner ansicht nach ein wichtiges feature.

Kann man, ich habe vor Kurzem eine Trennlinie eingebaut (ist im Update von HxD, das in ein paar Tagen kommt)
Man kann einfach per Copy&Paste den Bootsektor (einfach der erste Sektor) kopieren, ersetzen, in eine neue Datei speichern oder auf ein neues Laufwerk kopieren.
Im Prinzip wird ein Laufwerk einfach wie eine Datei behandelt. Die Trennlinie dient dann nur der Uebersichtlichkeit.


Ich habe noch nicht viel mit HexEditoren gearbeitet und habe auch nicht richtig getestet!

Aber das Das Design gefällt mir! Ich würde auch gern meine Programme so ein Design verpassen! Besonders die Farbverläufe gefallen mir
und ich würde, da ich anders nicht weiß, Images auf die Komponenten setzen und mit Farbverlauf füllen aber sag mal bekommt man das auch
als solche Komponenten? Wo kann man soetwas kostenlos downloaden?

//EDIT

Ah ,hatte nicht gesehen dass dieser Thread mehrere Seiten hat! Und die Antwort ist schon klar!


mael - Mi 21.09.05 15:35

So, die neue Version ist nun endlich fertig!
Nicht alles erscheint spektakulär, aber damit sowas anständig schnell läuft (Hervorhebung von Veränderungen), mußte schon einiger Aufwand betrieben werden.
Eine ausführliche Auflistung der Änderungen folgt unten.

Update von HxD auf Version 1.5.0.0 Beta

Changelog:


Viele weitere interne Verbesserungen, unter anderem kann man jetzt einzelne Bereiche verschieden Formatieren, was sinnvoll ist um später z.B. Suchergebnisse hervorzuheben, oder Teile mit einem "Marker" zu färben. Bis jetzt wird dies nur zur roten Hervorhebung von veränderten Daten verwendet.

Diese Version ist Beta.
Ich hoffe sie gefällt euch, ich freue mich über Feedback!

Download (609 KB): http://mh-nexus.de/downloads/HxDBeta.zip


mael - Di 27.09.05 18:27

Update auf Version 1.5.1.0 Beta


Download (634 KB): http://mh-nexus.de/downloads/HxDBeta.zip


mael - Sa 01.10.05 12:36

Noch irgendwelche Fehler gefunden?

Übrigens war gestern ab 23:00 Uhr bis 7:00 heute früh meine Seite nicht erreichbar weil mein Provider umgezogen ist. Wenn der Download nicht geklappt hat also einfach nochmal probieren.


mael - Fr 07.10.05 15:11

Update auf Version 1.5.2.0



Außerdem habe ich die Lizenz aktualisiert: Ist jetzt auf Deutsch und neu formuliert, dies ändert aber nichts daran, daß HxD Freeware ist.

Diese Version ist stable.



Download (702KB): http://mh-nexus.de/downloads/HxDde.zip


0xCC - Mi 18.01.06 05:26

der editor ist echt genial, aber eines fehlt noch: ich krieg seit version 1.4 die meldung dass ab der nächsten version mehr als 16 mb in die zwischenablage kopiert werden sollen.
ich hab hier ein mpeg, dass einen fehler ab einer gewissen stelle hat, ich würde nun gerne mal einen grossen bereich am ende markieren und in eine neue datei exportieren. kann ich das sonst irgendwie bewerkstelligen, ohne ein eigenes programm zu schreiben ?


Tilman - Mi 18.01.06 16:54

Also erstmal Hut ab, tolles Programm. Habe neulich einen Hexeditor gebraucht und bevor ich es bei Freeware.de oder so versuch an diesen Thread erinnert und den Editor geladen. Super!

zwei kleine Anmerkungen hätte ich jedoch:

- Wenn die Lizenz jetzt auf Deutsch ist dann ändere doch auch "Changelog.txt" und "readme.txt" auf Deutsch, macht ja so keinen Sinn mehr.

-
Zitat:
Der Benutzer verwendet die Software ausschließlich auf eigenes Risiko,
insbesondere wissend, daß sie nicht für den Gebrauch in hochsensiblen Umgebungen
entwickelt wurde und vorgesehen ist, die einen fehlerfreien Ablauf erfordern und
wo ein Versagen, mißbräuchliche oder unangemessene Anwendung [highlight]leicht zu
Todesfällen[/highlight], Verletzungen oder großen physischen, ökonomischen oder
Umwelt-Schäden führen kann.


Etwas seltsam gewählt. Angenommen die Software läuft auf einem Computer der die Brandmelder eines Wohnblocks verwaltet (k.a. ob das realistisch ist), dann könnte es durch eine fehlfunktion nicht leicht zu Todesfällen führen, aber ein gewisses Risiko bestünde dennoch ;-)

Aber das Proggi ist echt Spitze und hat einen festen Platz auf meiner Festplatte gefunden!


mael - Do 19.01.06 01:58

user profile icon0xCC hat folgendes geschrieben:
kann ich das sonst irgendwie bewerkstelligen, ohne ein eigenes programm zu schreiben ?

Ich bin gerade dabei diese Funktion (mit anderen Änderungen am Clipboard) einzubauen.
Vielleicht schaffe ich eine Testversion am Wochenende (wäre aber nicht für den allgemeinen Einsatz tauglich).

Was du sonst noch machen kannst:
- Speichere unter einem anderen Dateinamen (dauert eine Weile und HxD zeigt keine Fortschrittsanzeige an, aber auch wenn es so aussieht, das Programm hängt nicht!).
- Lösche den Bereich den Du nicht brauchst

user profile iconTilman hat folgendes geschrieben:
Wenn die Lizenz jetzt auf Deutsch ist dann ändere doch auch "Changelog.txt" und "readme.txt" auf Deutsch, macht ja so keinen Sinn mehr.

Klar, mache ich für Version 2.0, dann wird auch ein Teil der Webseite auf Deutsch sein, bisher beschäftigt mich der Rest aber genug.

user profile iconTilman hat folgendes geschrieben:
dann könnte es durch eine fehlfunktion nicht leicht zu Todesfällen führen, aber ein gewisses Risiko bestünde dennoch ;-)

Was meinst Du damit? Das es nicht leicht passieren kann und ich "leicht" weglassen sollte?
1.) Ich habe diesen Teil aus der Lizenz eines anderen Hexeditors ;-)

2.) Überleg Dir mal ein Gerät das im medizinischen Bereich verwendet wird: z.B. etwas was mit Röntgenstrahlen arbeitet. Da hat damals mal ein Assemblerprogrammierer blöderweise Bedienfehler nicht abgefangen, was bei einigen Leuten schwere Verbrennung verursacht hat, bzw. auch zum Tod geführt hat. Solche Geräte können z.B. leicht durch Programme die ins System eingreifen können folgenschwere Fehler hervorrufen. Solche Umgebungen sind also grundsätzlich für Hexeditoren ungeignet.
System sind viel fehleranfälliger als man denkt, vor allem rechnen viele nicht damit das man ihnen "reinpfuscht". Das ist also ein Hinweis darauf das man dies tunlichst lassen sollte.


galagher - Do 19.01.06 22:25

Hallo!

@mael:
Wenn man Zeichen ersetzen möchte, erscheint der Hinweis "Diese Ersetzung verändert die Dateigrösse [...]", was aber nicht stimmt, wenn der "Ersatz"text nicht länger ist als der zu ersetzende Text. Könntest du das noch ändern?


Tilman - Do 19.01.06 23:21

Ja, ich meinte das "leicht" ;-) ansonsten ist die Klausel oaky. Ich würde z.B. schreiben dass das Programm nicht auf sensiblen Umgebungen ausgeführt werden sollte oder so.


mael - Fr 20.01.06 17:29

user profile icongalagher hat folgendes geschrieben:
Hallo!

@mael:
Wenn man Zeichen ersetzen möchte, erscheint der Hinweis "Diese Ersetzung verändert die Dateigrösse [...]", was aber nicht stimmt, wenn der "Ersatz"text nicht länger ist als der zu ersetzende Text. Könntest du das noch ändern?

Danke für den Hinweis, ist schon bekannt und gefixt, bisher ist aber die neue Version noch nicht veröffentlichungsreif, wegen der Features die noch nicht komplett sind.

user profile iconTilman hat folgendes geschrieben:
Ja, ich meinte das "leicht" ;-) ansonsten ist die Klausel oaky. Ich würde z.B. schreiben dass das Programm nicht auf sensiblen Umgebungen ausgeführt werden sollte oder so.

Klingt wohl besser ohne "leicht", ändere ich ab (das mit dem Tod lasse ich aber ;-).


Jojojoxx - Do 26.01.06 01:04

WOW!! Mir gefällt das Programm auch sehr gut.
Respekt vor der Leistung, das muss man erstmal schaffen!!! :wink:

mfg

Jojo


mael - Sa 18.03.06 21:58

Hallo,

nach langer Zeit und Arbeit gibt es nun die Version 1.6.0.0 Beta von HxD.
Es hat sich eine Menge getan wie man an folgender Liste erkennen kann. Ich mußte irgendwo Schluß machen, daher hat es der Dateivergleich nicht mehr in diese Version geschafft.



Download (737KB): http://mh-nexus.de/downloads/HxDBetade.zip

Hoffe es gefällt euch,
Maël.


JRegier - Sa 18.03.06 22:30

Jojojoxx du hast ihn so gelobt für seine Leistung und nun hat er sich mächtig ins Zeug gelegt. :zustimm:


Delete - Sa 18.03.06 23:15

Mensch, dein Proggie wird immer besser :D Einfach spitze dein Tool :zustimm:


Jojojoxx - So 19.03.06 11:21

Hi!

Ich benutz als Hex-Editor auch nur noch dein Tool. Ist einfach das beste!!!!
Vielen Dank dafür!

mfg

Jojo


mael - So 19.03.06 18:14

Danke für das Lob :beer:


Gausi - So 19.03.06 18:36

Ich find das Ding auch einfach nur Spitze. Aber eine Funktion wünsche ich mir noch, die ich da noch nicht drin gefunden habe:

Es wäre schön, wenn man einige Stellen farblich hervorheben könnte. Z.B. wenn man einen bestimmten Dateityp untersuchen will, um da gewisse Informationen rauszulesen. Dann wäre es schön, wenn man gewisse markante Stellen markieren könnte. Das würde z.B. ein Reverse Engineering wesentlich komfortabler gestalten.

Hatte letztens das Problem, dass ein (fremdes) Stück Code zum Auslesen von WMA-Tags nicht richtig funktionierte. Zur Fehlersuche hab ich dann versucht, den Code manuell nachzuvollziehen um die Stelle zu finden, wo es hakt und wie die Datei an der entsprechenden Stelle aussieht.
Aber sich ohne Doku, ohne Kommentare und ohne Markierungen durch ein wma-File durchwurschteln macht keinen Spass ;-)


mael - Mo 20.03.06 15:13

Also nur um die Funktion klar zu fassen:
Farbliche Hervorhebung von Passagen mit wählbarer Farbe.

Wahrscheinlich wäre eine Liste der Markierungen auch nicht schlecht (dockbares Fenster), zur Übersicht und zum Navigieren.
Dann könnte man in die Liste auch noch Namen bzw. Kommentare zu den Markierungen schreiben, die dann als Hinweisfenster(ToolTip) erscheinen, wenn man mit der Maus über die Markierung fährt.

Ist das ungefähr was Du Dir vorstellst?


Gausi - Mo 20.03.06 15:21

Ja, das ist wohl das, was ich mir so vorstelle. Das mit den Tooltipps und der Listenauswahl wäre natürlich absolut super, besonders wenns mal komplizierter wird. Für den Anfang würde mir eine einfache farbliche Hervorhebung reichen - so wie man z.B. beim Thunderbird einige Mails durch die Zifferntasten unterschiedlich markieren kann.

Aber so, wie der Rest des Programms aussieht, machst du das dann direkt richtig gründlich, was? :zustimm:


mael - Mo 20.03.06 15:47

Habe es auf meine TODO-Liste gemacht.


galagher - Mo 20.03.06 20:51

Wie schon so oft gesagt: Tolles Programm!


mael - Mi 22.03.06 14:30

@galagher: Freut mich auch immer wieder.

Noch eine Sache (habe zwar schon in der DP gefragt aber melden tut sich dort keiner):

Hat jemand Windows Server 2003 bzw Windows XP SP2 mit aktivierter DEP (Data Execution Prevention)?
Also dieses besagte NX-Bit das Pufferüberlaufe verhindern soll.

Windows zeigt bei Anwendungen die sich nicht korrekt verhalten eine Fehlermeldung mit dem Titel "Datenausführungsschutz" oder DEP oder so ähnlich an. Habe mal gelesen das Delphi-Programme da ein paar Probleme haben.

Könnte jemand der so ein System hat bitte mal testen ob HxD irgendwelche Fehler hervorruft?


jaenicke - Mi 22.03.06 15:22

Mach ich, habe XP SP2 mit DEP, aber die nervt manchmal tierisch...
(Kann man die eigentlich deaktivieren?)

Na ja, jedenfalls teste ich das Proggi mal mit der Datenausführungsverhinderung. Wenn ich dran denke, weiß ich morgen mehr...

Übrigens: Der Windows-Explorer wurde in der Standardsystemkonfiguration direkt nach der Installation (ohne jegliche weitere Software bis auf die Systemtreiber) durch die Datenausführungsverhinderung beendet. Lustig, oder? Und den kann man nicht als Ausnahme markieren.
Insofern: Ich kann mir gut vorstellen, dass da einiges nicht läuft (bisher musste ich 14 meiner Programme anpassen).


Delete - Mi 22.03.06 15:46

[OT]
Wegen deinen DEP-Problem hat MS gestern einen Patch veröffentlicht.

http://www.microsoft.com/downloads/details.aspx?FamilyID=e216d6f0-2dbd-4449-96e2-f0d05651fd6a&DisplayLang=de

Vllt hilft das
[/OT]


jaenicke - Do 23.03.06 10:32

Also, auch mit DEP funktioniert es erstmal. Ob wirklich alles geht, muss ich noch testen, aber starten tuts erstmal und auch das Editieren von Dateien geht.

@user profile iconMagicAndre1981: Das ist zwar nicht das Problem, was ich meinte, aber danke, das könnte eine Erklärung sein, warum der Rechner manchmal nach dem Ruhezustand beim TV kucken nach kurzer Zeit einen blauen Bildschirm zeigt...


mael - Do 23.03.06 14:36

@jaenicke: Danke schon mal. Ich habe gestern Abend noch eine leicht geänderte Version (komplett in Deutsch) hochgeladen. Kannst Du vielleicht mit dieser weitertesten?


jaenicke - Do 23.03.06 14:37

Klar, lade ich gleich noch herunter.


jaenicke - Fr 24.03.06 15:30

Also erstmal läuft es. Jetzt werde ich das ganze noch mit der 64-Bit Edition von XP testen.

Aber wie kann das Ding so schnell sein??? Ich hab ne 2 GB Datei geöffnet, und alle anderen Hex-Editoren haben da ne Grätsche gemacht oder Minuten zum Öffnen gebraucht.
Und hier: Im Bruchteil einer Sekunde war die Datei offen. Geil.

Kompliment, das ist spitze gemacht. :zustimm: :flehan:
Den Editor hätt ich schon früher oft brauchen können, nur kannte ich den nicht.

Was auch super wäre (und ich auch schon bei meinem noch nicht veröffentlichten HexEditor einzubauen dabei bin):
Unterstützung für die Analyse von Pascal-Records an einer bestimmten Stelle der Datei oder sogar per Folding.
Mittels Pascal-Interpretern klappt das ganz gut.
Man gibt einen Record ein, und lässt diesen dann an bestimmten Stellen der Datei versuchen auszulesen. So könnte man eigene Dateiformate viel besser debuggen. (Dafür hatte ich meinen Editor nur geschrieben...)

Und was die Optimierung der Dateigröße angeht: Wie wärs, die noch weiter zu verkleinern? Ich nehme an, du kennst Exe-Packer? Nach dem packen mit UPX (kostenlos, OSS) gibt es bei mir weder Probleme noch Geschwindigkeitsverluste. (Siehe PN)


mael - Fr 24.03.06 16:37

Danke.

UPX kenne ich, es gibt einige Nachteile http://jrsoftware.org/striprlc.php#execomp
wenn ich die auch selber nicht so schlimm finde, ist es mir trotzdem lieber jedem die Wahl zu lassen.
Wer es noch kleiner will kann ja UPX verwenden.

Die Grundidee die diese hohe Geschwindigkeit erlaubt, ist nur die gerade nötigen Daten zu lesen und nicht die ganze Datei. Etwas komplizierter wird das wenn man überschreiben bzw. einfügen/löschen erlaubt. Es gibt noch andere Hexeditoren, außer HxD, die das können, z.B. WinHex oder Hex Workshop, aber da bin ich auch recht stolz drauf, siehe Thread-Titel ;-)

Das mit den Records habe ich auch vor (nach ver 2.0), mit Visualisierungen der einzelnen Abschnitte entsprechend ihres Datentyps (Integer, Float, string, Bitmap, ...) direkt im Hexeditor Fenster, rudimentäre Codeerzeugung um Dateiformat einzulesen, ...
Auch bei mir der eigentliche Grund alles anzufangen, bis das kommt ist aber noch ein weiter Weg.

user profile iconjaenicke hat folgendes geschrieben:
Was auch super wäre (und ich auch schon bei meinem noch nicht veröffentlichten HexEditor einzubauen dabei bin):
Unterstützung für die Analyse von Pascal-Records an einer bestimmten Stelle der Datei oder sogar per Folding.

Hört sich gut an, kann ich da mal einen Blick drauf werfen?


galagher - Fr 24.03.06 19:51

user profile iconjaenicke hat folgendes geschrieben:
Den Editor hätt ich schon früher oft brauchen können, nur kannte ich den nicht.
Absolut. Genau! Leute, der ist es!


jaenicke - Mo 27.03.06 12:01

Also, ich hab das Programm jetzt unter XP 32-Bit, XP 64-Bit und Server 2003 jeweils mit Hard- und mit Software-DEP getestet.
Das läuft alles super. (Anders als viele andere Software, die ich nach dem anschalten der DEP für alle Programme von der DEP ausschließen musste, wie bspw. TVGenial...)

Deshalb: Super, dass HxD da kein Problem hat.

Was die Records angeht: Tja, wenn es mal zuverlässig funktionieren würde...
Das dauert noch etwas, bis ich das stabil bekommen habe... Ich denke mal, soweit, wie ich jetzt bin, kriegst du das auch selbst relativ schnell hin...
Das Problem sind Speicherzugriffsfehler, die ich ca. bei jedem vierten Test bekomme...


mael - Di 28.03.06 15:24

user profile iconjaenicke hat folgendes geschrieben:
Also, ich hab das Programm jetzt unter XP 32-Bit, XP 64-Bit und Server 2003 jeweils mit Hard- und mit Software-DEP getestet.
Das läuft alles super.

Danke fürs Testen.


Zyklame - Sa 15.04.06 14:56

Ist ein super Hex Editor

Hier noch ein paar Anregungen:
- eine Verlaufs liste wäre nicht schlecht
- Datei aktualisiesen
- und beim Laden zur letzten geöffneten Datei springen (Ordner)

denn es nervt zeitweise sich ständig duch die ganzen Ordner wühlen zu müssen um eine Datei neu zu öffnen


rochus - Do 20.04.06 08:45

Hi!
Sehr schönes Programm, hab es auch ziemlich viel im Einsatz. Ein Bug, der mir auch jetzt erst aufgefallen ist: Wenn man unter einer Mehrbildschirmlösung arbeitet und HxD auf dem rechten Monitor hat, öffnet sich das Menü auf dem anderen Monitor am Rand. Hab mal ein Screenshot zur Verdeutlichung angehängt. Da kannst du wahrscheinlich recht wenig dafür sondern eher die Komponente...

Gruß


mael - Do 20.04.06 18:03

user profile iconZyklame hat folgendes geschrieben:

eine Verlaufs liste wäre nicht schlecht

Im Datei-Menü die letzten x geöffneten Dateien anzeigen?

user profile iconZyklame hat folgendes geschrieben:

Datei aktualisiesen

Was meinst Du? Es gibt einen Menüpunkt Ansicht|Aktualisieren (F5)

user profile iconZyklame hat folgendes geschrieben:

und beim Laden zur letzten geöffneten Datei springen (Ordner)
Okay, als Option. Was ist mit Ordner genauer gemeint?

user profile iconrochus hat folgendes geschrieben:
Wenn man unter einer Mehrbildschirmlösung arbeitet und HxD auf dem rechten Monitor hat, öffnet sich das Menü auf dem anderen Monitor am Rand.

Ja liegt an der Komponente, da ich kein System mit mehr als einem Monitor habe, muß ich mal direkt beim dem "Hersteller" fragen.


mael - Do 20.04.06 19:40

So, das dürfte das Multimonitorproblem lösen (siehe Anhang). Bitte um Feedback, da ich wie gesagt kein System habe wo ich das testen kann.


jaenicke - Do 20.04.06 19:45

Teste ich nachher mal. Da ich ein Surround-Display mit 4 TFTs habe (SLI), ist das der Härtetest schlechthin...

Komisch, dass mir der Fehler gar nicht aufgefallen ist, hmmm...


jaenicke - Do 20.04.06 19:52

user profile iconmael hat folgendes geschrieben:
user profile iconZyklame hat folgendes geschrieben:

Datei aktualisiesen

Was meinst Du? Es gibt einen Menüpunkt Ansicht|Aktualisieren (F5)

Was auf jeden Fall sinnvoll wäre, wäre, das System im Hintergrund zu überwachen, damit, wenn ein anderes Programm die Datei ändert, eine Meldung angezeigt wird mit dem Angebot, die Datei neu zu laden.

Was mein (normaler Text-)editor außerdem noch macht, ist, eine Datei, die umbenannt wird, im Editor automatisch ebenfalls umzubenennen. Auch bekommt der mit, wenn die Datei gelöscht oder verschoben wird. Das mit der Änderung ist ja schon Standard heute (siehe bspw. Delphi).

Wie das geht? Mit ReadDirectoryChangesW. Aber da gibts ja genug Komponenten, die das kapseln.
Zum Beispiel hier:
http://sme.belgium.eu.net/~vip107/dirmon.zip
Weitere gibts ebenso hier unter Changes:
http://www.efg2.com/Lab/Library/Delphi/IO/Directories.htm

// EDIT:
Ach, ich merk schon: HxD lässt ja Änderungen oder Umbenennungen der Datei gar nicht zu, auch wenn das Programm im Hintergrund oder minimiert ist.
Damit hat sich das ganze Thema ja erledigt...


jaenicke - Fr 21.04.06 11:36

Es scheint zu funktionieren, allerdings ist das Menü verschoben (ca. 50 Pixel nach links und 100 nach oben). Ich bin mir aber noch nicht sicher, ob das durch das Programm fürs Surround-Display verursacht wird. Dieses hat bei der alten Verison übrigens auch das Menü auf den richtigen Bildschirm gelegt, sodass ich von dem Fehler nichts gemerkt habe und damit war das Menü auch an der richtigen Stelle.
(Ich habe nicht die in XP eingebaute Multimonitorunterstützung benutzt...)

Bis Montag teste ich das mal auf einem anderen Rechner mit 2 Monitoren ohne Zusatzsoftware.

Sollte es doch nicht richtig funktionieren, poste ich Montag auch einen Screenshot.


mael - Fr 21.04.06 13:57

Okay, danke. Was vielleicht gut wäre, ist zuerst zu versuchen, den Fehler zu reproduzieren, sprich mit der alten Version zu testen und dann zu schauen ob es bei der neuen weg ist.


rochus - Fr 21.04.06 16:03

Hi.
Auf 2 Monitoren ohne Zusatzsoftware funktioniert das Menü jetzt einwandfrei.


mael - Sa 22.04.06 21:58

Danke.
@jaenicke: Ich denke das reicht dann und Du brauchst am Montag nicht zu testen.


Born-to-Frag - Di 09.05.06 22:45

Hallo!

Also erstmal: Klasse Hex Editor! Der einzige den ich noch benutze ;)

Was vielleicht noch gut wäre: Wenn ich einen Text markiere und dann ihn überschreiben will, macht er das nicht sondern fügt ihr am anfang an wo ich angefangen habe zu merkieren.


greetz


EDIT: Nochwas: Man sollte vielleicht einstellen können ob man beim doppelklick auf .lnk dateien diese geöffnet werden oder ob zum (falls Ordner) Ordner gewechselt wird...


mael - Mi 10.05.06 01:48

user profile iconBorn-to-Frag hat folgendes geschrieben:

Was vielleicht noch gut wäre: Wenn ich einen Text markiere und dann ihn überschreiben will, macht er das nicht sondern fügt ihr am anfang an wo ich angefangen habe zu merkieren.

Das ist abhängig vom Modus. Im Überschreibenmodus (Standard) verhält es sich wie Du beschrieben hast, im Einfügemodus werden die markierten Daten gelöscht.
Um den Modus zu wechseln die "Einfg"-Taste drücken; der aktuelle Modus wird in der Statusleiste ganz rechts angezeigt.

user profile iconBorn-to-Frag hat folgendes geschrieben:

EDIT: Nochwas: Man sollte vielleicht einstellen können ob man beim doppelklick auf .lnk dateien diese geöffnet werden oder ob zum (falls Ordner) Ordner gewechselt wird...

Wie wäre ein Checkbox "Verknüpfung selbst als Datei öffnen" im Datei Öffnen-Dialog unter der Checkbox Schreibgeschützt?


Jakob Schöttl - Fr 12.05.06 14:43
Titel: schön
Toll echt,
aber eine Funktion fände ich noch gut, aber das passt wohl nicht mehr rein vom layout.

...wenn man die Bytes auch als integer zusammenfassen könnte, und int64, also gängige zahlentypen für programmierer. :nixweiss:


0xCC - Fr 12.05.06 15:19

und wenn wir gerade dabei sind: es wäre nett wenn es bei rechtsklick auf eine beliebige datei den kontextmenüeintrag "mit HxD öffnen" gäbe. und das automatisch (per menüpunkt zu installieren vllt? oder per fragedialog, falls der entsprechende eintrag nicht im ini file gefunden wurde...)

das betreffende file sollte sich dann natürlich in einem neuen mdi fenster öffnen


mael - Fr 12.05.06 15:25
Titel: Re: schön
user profile iconbokaj hat folgendes geschrieben:
Toll echt,
aber eine Funktion fände ich noch gut, aber das passt wohl nicht mehr rein vom layout.

...wenn man die Bytes auch als integer zusammenfassen könnte, und int64, also gängige zahlentypen für programmierer. :nixweiss:

Gruppieren von Bytes ist geplant, wie es genau aussehen wird weiß ich noch nicht.

user profile icon0xCC hat folgendes geschrieben:
rechtsklick auf eine beliebige datei den kontextmenüeintrag "mit HxD öffnen" gäbe

Unter Extras|Optionen|Allgemein gibt es einen Eintrag "HxD in Windows-Kontextmenü eintragen". Im Windows Kontextmenü heißt dann der Eintrag "HxD".


0xCC - Fr 12.05.06 15:33
Titel: Re: schön
user profile iconmael hat folgendes geschrieben:

Gruppieren von Bytes ist geplant, wie es genau aussehen wird weiß ich noch nicht.

man könnte 2,4,8 bytes markieren und wenn der mauscursor darauf ruht, die werte als zahlen im little und big endian darstellen (als tooltip)


mael - Fr 12.05.06 16:02

Für sowas wird es einen "Dateninspektor" geben, ähnlich dem wie HexWorkshop es macht.


galagher - Fr 12.05.06 18:13

Das Programm wird ja noch besser! :zustimm: *** lob lob ***


Born-to-Frag - Fr 12.05.06 18:41

user profile iconmael hat folgendes geschrieben:
user profile iconBorn-to-Frag hat folgendes geschrieben:

Was vielleicht noch gut wäre: Wenn ich einen Text markiere und dann ihn überschreiben will, macht er das nicht sondern fügt ihr am anfang an wo ich angefangen habe zu merkieren.

Das ist abhängig vom Modus. Im Überschreibenmodus (Standard) verhält es sich wie Du beschrieben hast, im Einfügemodus werden die markierten Daten gelöscht.
Um den Modus zu wechseln die "Einfg"-Taste drücken; der aktuelle Modus wird in der Statusleiste ganz rechts angezeigt.


Ich rede ja vom Einfügen-Modus. Ich markiere ein paar Bytes und drücke dann eine Taste.. normalerweise würde es doch überschrieben werden?! Also bei mir nicht..


greetz


mael - Fr 12.05.06 19:59

user profile iconBorn-to-Frag hat folgendes geschrieben:
Ich rede ja vom Einfügen-Modus. Ich markiere ein paar Bytes und drücke dann eine Taste.. normalerweise würde es doch überschrieben werden?! Also bei mir nicht..

Was heißt überschreiben, du meinst ersetzen, oder? Also wie in einem normalen Texteditor: Text markieren, Buchstabe drücken => markierter Text wird gelöscht und der Buchstabe eingefügt.

Falls Du das meinst, bei mir geht's. Ist die Datei schreibgeschützt, steht in der Statusleiste auch einfügen?

Sonst probier mal die Datei im Anhang ist gerade meine aktuelle Version (sind noch paar Kleinigkeiten, dann ist es die Stable).


Born-to-Frag - So 14.05.06 09:59

Du hast Recht, jetzt funktionierts (Immernoch mit der Version wie vorher), war also anscheinend irgendein Bug :gruebel:

Mal sehen ob ich irgendwann noch mal so was hab dann kann ich dir ja mal sagen was ich g emacht hab..


greetz


mael - Fr 26.05.06 17:28

Die wesentlichen Neuerungen sind modernere Icons und Verlauf/Chronik für Dateien und die Suchen und Ersetzen-Dialoge. Außerdem natürlich Bug-Fixes.

Update von HxD auf Version 1.6.1.0 stable

Changelog:


Download (748 KB): http://mh-nexus.de/downloads/HxDde.zip


Jakob Schöttl - Sa 16.09.06 09:18

Mal eine Frage: kann man bei WinXP beliebige Dateien Öffnen mit HxD? Wäre ne tolle Funktion.

Übrigens, ich habs ausprobiert, aber in dem "Öffnen mit"-Fenster wird HxD gar nicht in die Liste hinzugefügt, wenn ich "Durchsuchen" drücke, das heißt ich kanns gar nicht probieren, ob es schon geht :nixweiss:


jaenicke - So 17.09.06 19:25

Wenn das im Editor selber so eingestellt ist, dann steht der direkt im Kontextmenü vom Explorer drin...


mael - So 17.09.06 20:19

Es gibt eine Option dafür unter Extras|Optionen...
Sie lautet: "HxD in Windows-Kontextmenü eintragen"


galagher - Mi 20.09.06 21:35

user profile iconJakob Schöttl hat folgendes geschrieben:
Mal eine Frage: kann man bei WinXP beliebige Dateien Öffnen mit HxD?

Hallo!
Ja, ausser, Windows oder ein anderes Programm hält die Datei zur selben Zeit geöffnet. Ich habe zB. versucht, C:\NTDETECT.COM zu öffnen -> Zugriff verweigert.

@mael: Wäre toll, wenn man geöffnete Dateien im Lesemodus mit HxD öffnen könnte, auch, wenn ich im Moment keinen praktischen Nutzen darin sehe!


_frank_ - Mi 20.09.06 22:18

Wann können wir mit der 1.7 rechnen? Was willst du noch einbauen (evtl bookmark-support wäre noch interessant)?

Gruß Frank


wulfskin - Mi 20.09.06 22:39

Ich verweise mal ganz dezent auf den zweiten Beitrag: Bitte, bitte eine Vergleichsfunktion! :)


mael - Do 21.09.06 01:05

user profile icongalagher hat folgendes geschrieben:
Ja, ausser, Windows oder ein anderes Programm hält die Datei zur selben Zeit geöffnet. Ich habe zB. versucht, C:\NTDETECT.COM zu öffnen -> Zugriff verweigert.

Mit der Version (1.6.1) auf meiner Webseite geht es soweit ich sehen kann.
Falls es mit der Version bei Dir nicht geht, lade sie nochmal runter, ich glaube ich habe mal ein paar Kleinigkeiten geändert ohne die Versionsnummer zu erhöhen.

user profile icon_frank_ hat folgendes geschrieben:
Wann können wir mit der 1.7 rechnen?

Kann ich nicht genau sagen. Ich stecke zwar viel Freizeit rein, hatte aber erst seit einem Monat wieder mehr davon und einiges ist aufwändig. Kann sein, daß es 2 Monate werden, vielleicht mehr, vielleicht weniger.

user profile icon_frank_ hat folgendes geschrieben:
Was willst du noch einbauen (evtl bookmark-support wäre noch interessant)?

Einfache Lesezeichen gibt es schon, wie in Delphi: Strg+Umsch+Ziffer setzt ein Lesezeichen, Strg+Ziffer springt zu einem Lesezeichen. Gausi hatte da noch etwas mehr vorgeschlagen, das kommt aber nicht so schnell.

Was unter anderem in der Version 1.7 kommt ist:


@wulfskin: Ich weiß es ist lange her daß Du gefragt hast, es gab halt immer wieder Sachen die notwendig waren, bevor der Dateivergleich implementiert werden kann. Aber in 1.7 wird er drin sein!

Die Hauptzeit habe ich in eine ganz neue Datenstruktur samt Algorithmus entwickelt die die bearbeitete Datei darstellt. Dabei gab es immer wieder Probleme und ich muß das nochmal gut durchdenken/die Korrektheit beweisen.

Meine bisherigen Tests zeigen aber eine sehr gute Geschwindigkeit auch noch bei Millionen von Einfügungen/Löschungen. Besonders fällt das z.B. beim Ersetzen auf was in der alten Version recht langsam ist, die neue Version ist bisher schneller als alles was ich gesehen habe. Ich hoffe nur wirklich, daß ich zeigen kann daß der Algorithmus immer korrekt ist. Wenn ja, dann wird das richtig cool :party:


galagher - Fr 22.09.06 22:14

user profile iconmael hat folgendes geschrieben:
user profile icongalagher hat folgendes geschrieben:
Ja, ausser, Windows oder ein anderes Programm hält die Datei zur selben Zeit geöffnet. Ich habe zB. versucht, C:\NTDETECT.COM zu öffnen -> Zugriff verweigert.

Mit der Version (1.6.1) auf meiner Webseite geht es soweit ich sehen kann.
Falls es mit der Version bei Dir nicht geht, lade sie nochmal runter, ich glaube ich habe mal ein paar Kleinigkeiten geändert ohne die Versionsnummer zu erhöhen.

Klappt leider nicht. Aber egal, andere Editoren und (Textverarbeitungs)Programme können das normalerweise auch nicht!


mael - Do 12.10.06 17:43
Titel: HxD kommt in CHIP-Titelthema vor
In der aktuellen Ausgabe von CHIP 11/2006, kommt HxD im Rahmen des Titelthemas vor (CHIP Notfall-Packet) und liegt der Heft-CD bei.

Es handelt sich um Tipps zur Datenrettung. Zwar ist der Teil zu HxD nicht lang, aber immerhin ein Beitrag in den gedruckten Medien :party:


galagher - Fr 13.10.06 16:27
Titel: Re: HxD kommt in CHIP-Titelthema vor
Gratulation! :zustimm:


Manina - Mi 22.11.06 20:48

Hallo Mael !

Erstmal :zustimm: für ein tolles Programm ! Gefällt mir sehr.

But now: Is it a bug or a feature ? :gruebel:

Wenn ich HxD über das Explorer-Kontextmenü mit einer *.lnk starte, öffnet er die verknüpfte Datei, also z.B. eine exe.

Über Datei / Öffnen macht er den Link selber auf ...

Ist das so gewollt, oder wie kann man es erklären ?

Gruß, Bernd.


mael - Fr 24.11.06 10:45

user profile iconManina hat folgendes geschrieben:

Über Datei / Öffnen macht er den Link selber auf ...

Das ist so gewollt.

user profile iconManina hat folgendes geschrieben:

Wenn ich HxD über das Explorer-Kontextmenü mit einer *.lnk starte, öffnet er die verknüpfte Datei, also z.B. eine exe.

Das eigentlich auch.

Hm, die aktuelle Lösung ist nicht ganz glücklich gewählt. Wahrscheinlich muß ich eine Option einführen im Dateidialog...


galagher - Fr 22.12.06 18:01

Hallo!

@mael:
Du hast offenbar den selben "Bug" in deinem fsMDIForm-Programm wie ich in meinem: Wenn man 3 leere MDI's erzeugt, haben diese die Caption Unbenannt1 .. Unbenannt3. Klar, soll ja auch so sein. Wenn man das Unbenannt2-MDI schliesst und ein neues MDI erzeugt, hat dieses auch die Caption Unbenannt3 - es gibt jetzt also zwei MDI-Formulare mit der Caption Unbenannt3!

Egal, wie man es macht, wenn man ein MDI schliesst, dessen "Zahl" kleiner als die des zuletzt erzeugten ist, hat man zwei mit identer Caption, beide jeweils mit der "höchsten Zahl", also bei vier MDI's 2x Unbenannt4.

Das ist nun kein wirklicher Fehler, deshalb habe ich auch "Bug" in Anführungszeichen geschrieben, aber es ist irgendwie unschön. Also habe ich mir gedacht, man kann das lösen, indem man das MDI-Formular einfach in Unbenannt umbenennt und beim Erzeugen die Caption so zuweist:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure ...
begin
Unbenannt := TUnbenannt.Create(Self);
//...
ActiveMDIChild.Caption := ActiveMDIChild.Name;
//...

Geht auch, aber wenn man eine Datei öffnet (wobei ich beim Erzeugen des MDI's zunächst programmintern die selbe Prozedur wie beim Erzeugen eines neuen, leeren MDI's aufrufe) erhöht sich die "Zahl" in der Caption ebenfalls und man hat dann zB. Unbenannt1, C:\Texte\WasWeissIch.txt, Unbenannt3.

Wie kann man das korrigieren, sodass neue, leere MDI's fortlaufend nummeriert werden, egal, was der Benutzer macht?


galagher - Fr 22.12.06 18:19

user profile icongalagher hat folgendes geschrieben:
Wie kann man das korrigieren, sodass neue, leere MDI's fortlaufend nummeriert werden, egal, was der Benutzer macht?

Es könnte es funktionieren, indem man dem MDI beim Öffnen einer Datei einen andern namen gibt, zB. den Dateinamen, der komponentenname darf allerdings nur alphanummerische Zeichen enthalten, weshalb ich eine Funktion ExtractCharAlphaNumeric benutze:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  for FCount := 0 to OpenDialog1.Files.Count-1 do
  begin
   Inc(MDICnt);  //Zähler für geöffnete MDI's
   Unbenannt := TUnbenannt.Create(Self);
   //Jeder Komponentenname muss einmalig sein, sonst gibt's ein leeres Fenster
   //statt dem Datei-Inhalt, deshalb hänge ich einfach MDICnt an!
   Unbenannt.Name := ExtractCharAlphaNumeric(OpenDialog1.Files[FCount]+IntToStr(MDICnt));


So klappt es, aber kann es irgendwann zu einem Fehler im Programm kommen, wenn man den Komponentennamen ändert? Ich denke, nein, denn das Programm macht das ja auch - es ändert bei jeder neuen Instanz der Komponente deren Namen!?


mael - Sa 23.12.06 00:46

Ich mache es jetzt wie Word einfach immer nur die Anzahl unbenannter Fenster hochzählen sobald ein neues Unbenannt-Fenster geöffnet wird und nicht mehr verringern wenn ein Unbenannt-Fenster geschlossen wird.
Dann klappt alles.
Man kann natürlich auch in einer Liste speichern welche Zahlen schon vergeben wurden, und daraus die kleinste nicht vergebene suchen. Ist aber meiner Meinung nach unnötig kompliziert. Hauptsache die Nummern unterscheiden sich.


galagher - Sa 23.12.06 08:31

user profile iconmael hat folgendes geschrieben:
Ich mache es jetzt wie Word einfach immer nur die Anzahl unbenannter Fenster hochzählen sobald ein neues Unbenannt-Fenster geöffnet wird und nicht mehr verringern wenn ein Unbenannt-Fenster geschlossen wird.

Ja, geht natürlich auch! Ist sicher am einfachsten.


Jakob Schöttl - Sa 23.12.06 11:34

(Bisschen zu spät)

Ihr habt mich nicht ganz verstanden

user profile iconJakob Schöttl hat folgendes geschrieben:
Übrigens, ich habs ausprobiert, aber in dem "Öffnen mit"-Fenster wird HxD gar nicht in die Liste hinzugefügt, wenn ich "Durchsuchen" drücke, das heißt ich kanns gar nicht probieren, ob es schon geht :nixweiss:


also Rechtsklick auf eine datei -> Öffnen mit...
und dann kann ich HxD nicht hinzufügen.

Kann jemand bei sich das auch beobachten, oder geht das bei euch?


GTA-Place - Sa 23.12.06 12:03

ROFL. Diesen Hexeditor hab ich für das Gewinnspiel benutzt, ohne zu merken, dass es ihn auch hier in der EE zum Download gibt (hab ihn über Google gefunden). N1ce work.


Arne K. - Sa 23.12.06 12:13

dito.
Der mit Abstand beste Hex-Editor, mit wem ich jemals gearbeitet habe; selbst im Vergleich mit Kommerziellen!

Was imho noch ein nettes "Feature" sein könnte, wäre eine Art "Filter" im Sinne von "Blende alle Bytes aus, die in folgendem Range liegen: x-y".


mael - Sa 23.12.06 15:19

user profile iconJakob Schöttl hat folgendes geschrieben:
also Rechtsklick auf eine datei -> Öffnen mit...
und dann kann ich HxD nicht hinzufügen.

Da müßte HxD etwas in die Registry schreiben, damit man es bei "Öffnen mit..." auswählen kann. Werde ich hinzufügen. Bis dorthin kannst Du ja den Eintrag "HxD" im Kontextmenü verwenden (der dort erscheint falls Du in den Optionen "HxD in Windows-Kontextmenü eintragen" ausgewählt hast).


mael - Sa 23.12.06 15:29

user profile iconGTA-Place hat folgendes geschrieben:
ROFL. Diesen Hexeditor hab ich für das Gewinnspiel benutzt, ohne zu merken, dass es ihn auch hier in der EE zum Download gibt (hab ihn über Google gefunden). N1ce work.

Über welchen Suchbegriff hast Du ihn denn gefunden?


GTA-Place - Sa 23.12.06 16:22

Suche bei Google HEX EDITOR -> Wikipedia -> HxD


mael - Mi 04.04.07 19:37

Update von HxD auf Version 1.7.0.0 beta

Changelog:


Eine umfangreichere Liste der Änderungen (es gibt viele weitere Verbesserungen) kann man hier auf Englisch sehen:
http://mh-nexus.de/hxd/#whatsnew

Download (763 KB): http://mh-nexus.de/downloads/HxDBetade.zip


Chryzler - Mi 04.04.07 20:19

Super, thx für die neue Version. :D

user profile iconmael hat folgendes geschrieben:
  • Wesentliche Verbesserung: Alles ersetzen-Funktion ist sehr viel schneller

Hättest du die neue Version 2 Tage früher veröffentlicht, hätt ich vorgestern nicht WinHEX benutzen müssen :motz:


mael - Do 05.04.07 17:37

user profile iconChryzler hat folgendes geschrieben:
Super, thx für die neue Version. :D

Schön, daß es Dir gefällt.

Freue mich über Kommentare.
Falls ihr Fehler findet bitte melden.


mael - Sa 07.04.07 17:10

Links
Wem mein Programm HxD gefällt, der kann gerne einen Link auf meine Seite ( http://mh-nexus.de/hxd/ ) setzen.

Und falls jemand Kommentare hat oder Fehler in der aktuellen Beta findet, nur her damit.


Chryzler - Sa 07.04.07 17:41

Falls dir mal langweilig ist, könntest du Plugin-Unterstützung einbauen. Also dass man eigene Plugins für den Hex-Editor schreiben kann, als DLLs. Oder was ganz interessant ist, ne erweiterte Histogram-Funktion. Hatte mir mal so einn Tool geschrieben, das die Häufigkeit der ASCII-Zeichen über die Länge der Datei anzeigt. Also wie oft jedes Zeichen an einer bestimmten Stelle in der Datei vorkommt. Das ganze wird dann auf nem Image als Histogram angezeigt (Z.B: Bitmap [http://img380.imageshack.us/img380/2769/bitmapxe9.png], EXE [http://img293.imageshack.us/img293/1117/exeyw3.png], WAV [http://img329.imageshack.us/img329/7026/wavey0.png]). Damit kann man sehr deutlich erkennen, wo der Header einer Datei anfängt, wo komprimierte Teile in einer EXE-Datei vorkommen, etc. Ist ganz interessant, finde ich, und wäre mal was, was andere Hex-Editoren meines Wissen noch nicht haben :). Vielleicht könntest du das einbauen (Source von meinem Prog kannst du haben, wenn du willst).


mael - So 08.04.07 19:43

user profile iconChryzler hat folgendes geschrieben:
Oder was ganz interessant ist, ne erweiterte Histogram-Funktion.

Sieht nicht schlecht aus. Könnte man ja dann als Plugin integrieren wenn es eine Plugin-API gibt.


mael - Sa 09.06.07 16:11

Update von HxD auf Version 1.7.1.0 beta

Dies ist die letzte Beta von HxD vor der finalen Version, die bald erscheinen wird. Sie wurde vor der finalen Version veröffentlicht um einige wichtige Fehler zu beheben.

Änderungen:


Alle Details (Englisch) [http://mh-nexus.de/hxd/#whatsnew]


Download (765 KB): http://mh-nexus.de/downloads/HxDBetade.zip


TimonWorld - Mo 28.01.08 01:22

Wie wäre es eigentlich mal zur Abwechslung mit einem neuen Programm-Icon?


mael - Mo 28.01.08 14:06

user profile iconTimonWorld hat folgendes geschrieben:
Wie wäre es eigentlich mal zur Abwechslung mit einem neuen Programm-Icon?


Was schwebt Dir denn so vor?

Allerdings arbeite ich gerade an einer neuen Version und investiere lieber die Zeit in neue Funktionen als in ein neues Icon, vielleicht später mal.


_frank_ - Mo 28.01.08 22:16

schön zu hören, dass du wieder an der weiterentwicklung bist ;)
wie weit bist du schon voran gekommen?

was mir jetzt noch aufgefallen ist...wenn HxD geöffnet und minimiert ist und man eine weitere Datei in der gleichen instanz öffnen will, wird Hxd nicht "restored", wäre vielleicht eine sinnvolle und schnell implementierte Sache.
weiterhin hatte ich grade ein komisches Phänomen:
2 dateien geöffnet einmal 60,5 MB und einmal 482 MB, ich versuche jetzt, per markieren (strg+A,strg+c) den inhalt der großen Datei an die kleine anzuhängen (strg+ende,strg+V), hier bekomme ich die meldung "zu wenig Arbeitsspeicher". ich habe jedoch 2GB drin und laut taskmanager 1 GB frei (1,3 GB laut ProcessExplorer). auch auf C (wegen %temp%) ist mehr als 1 GB frei. vielleicht kannst du mir sagen, was ich noch probieren kann :) sooo groß sind die Dateien ja nicht

Gruß Frank


mael - Di 29.01.08 20:57

user profile icon_frank_ hat folgendes geschrieben:
schön zu hören, dass du wieder an der weiterentwicklung bist ;)
wie weit bist du schon voran gekommen?

Eigentlich war die 1.7.2 für diesen Monat geplant, ein Feature hat sich aber als komplizierter herausgestellt als erwartet. Aber im Februar (hoffentlich Anfang/Mitte) sollte es schon fertig werden.

user profile icon_frank_ hat folgendes geschrieben:

was mir jetzt noch aufgefallen ist...wenn HxD geöffnet und minimiert ist und man eine weitere Datei in der gleichen instanz öffnen will, wird Hxd nicht "restored", wäre vielleicht eine sinnvolle und schnell implementierte Sache.

Du meinst wenn man minimiert hat und dann per Windows-Kontextmenü eine Datei in HxD öffnen will?

user profile icon_frank_ hat folgendes geschrieben:

2 dateien geöffnet einmal 60,5 MB und einmal 482 MB, ich versuche jetzt, per markieren (strg+A,strg+c) den inhalt der großen Datei an die kleine anzuhängen (strg+ende,strg+V), hier bekomme ich die meldung "zu wenig Arbeitsspeicher"

Ich kann es nachvollziehen, allerdings nicht beurteilen ob das ein Fehler ist oder nicht (ich habe 512MB Arbeitsspeicher).
Grundsätzlich muß man in etwa 2*482 MB rechnen, einmal für die Zwischenablage und dann einmal wenn in Datei eingefügt wird. HxD selbst braucht auch ein bisschen Speicher, also großzügig gerechnet wäre 1GB nötig.

Im ProcessExplorer(Systeminformation) habe ich keine klaren Angaben gefunden wieviel Speicher noch frei ist. Vielleicht liegt es auch daran, daß ich FastMM2 verwende... (und nicht die Version 4).
Am Besten wir testen das wenn die 1.7.2 fertig ist.

EDIT: Ach so, eine Lösung ist in Stücken zu kopieren. Falls das nicht reicht, zwischendurch speichern.


_frank_ - Di 29.01.08 23:27

user profile iconmael hat folgendes geschrieben:

Eigentlich war die 1.7.2 für diesen Monat geplant, ein Feature hat sich aber als komplizierter herausgestellt als erwartet. Aber im Februar (hoffentlich Anfang/Mitte) sollte es schon fertig werden.

klingt doch soweit ganz gut, welche Funktion ist denn so arbeitsintensiv?
vielleicht können wir irgendwie bei der Entwicklung mithelfen...
was mir noch eingefallen ist, manchmal braucht man die Möglichkeit den aktuellen Offset (bzw. vom Blockstart) zu kopieren ;)
user profile iconmael hat folgendes geschrieben:
Du meinst wenn man minimiert hat und dann per Windows-Kontextmenü eine Datei in HxD öffnen will?

über kontextmenü kommts auch, immer halt, wenn hxd schon gestartet und minimiert ist und eine weitere Datei mit hxd geöffnet wird (kontextmenü, drag&drop auf exe,...). einfach beim Öffnen einer Datei prüfen, ob HxD minimiert ist und wenn ja, restore aufrufen ;)
user profile iconmael hat folgendes geschrieben:
Ich kann es nachvollziehen, allerdings nicht beurteilen ob das ein Fehler ist oder nicht (ich habe 512MB Arbeitsspeicher).
Grundsätzlich muß man in etwa 2*482 MB rechnen, einmal für die Zwischenablage und dann einmal wenn in Datei eingefügt wird. HxD selbst braucht auch ein bisschen Speicher, also großzügig gerechnet wäre 1GB nötig.

Im ProcessExplorer(Systeminformation) habe ich keine klaren Angaben gefunden wieviel Speicher noch frei ist. Vielleicht liegt es auch daran, daß ich FastMM2 verwende... (und nicht die Version 4).
Am Besten wir testen das wenn die 1.7.2 fertig ist.

ich bin von der Zeile "Available" bei "Physical Memory" ausgegangen ;), wie gesagt, das 1GB hab ich locker frei, wobei ich hxd bereits mit beiden Dateien auf hatte, also direkt vor dem kopiervorgang.
Aber mach erstmal deine Funktionen fertig ;)
user profile iconmael hat folgendes geschrieben:
EDIT: Ach so, eine Lösung ist in Stücken zu kopieren. Falls das nicht reicht, zwischendurch speichern.

wäre bei meinen derzeitigen kopieraktionen ziemlich nervig geworden...hab ne 40GB-Partition von ner festlatte gekratzt und mit hxd die images auf einheitliche stückchen von je 256 MB gesplittet ;) aber das hab ich soweit geschafft jetzt.
Wie hast du eigentlich die schnelle Suchfunktion hinbekommen? mein "lese aus dem filestream alle 512 bytes die ersten 16bytes und vergleiche" ist ziemlich langsam *g*

Gruß Frank


Hidden - Mi 30.01.08 00:06
Titel: Re: HxD - schneller Hexeditor, Disk-Editor und RAM-Editor
Hi,

user profile iconmael hat folgendes geschrieben:

ACHTUNG:
Verwende den Schreibmodus des Diskeditors nur wenn Du genau weißt was Du tust! Man kann leicht durch falsches Editieren der Festplatte ein System unbootbar machen.


Evtl. diesbezüglich Vorkehrungen treffen und schlimme Fahler vermeiden...

mfG,

Daniel


mael - Mi 30.01.08 01:40
Titel: Re: HxD - schneller Hexeditor, Disk-Editor und RAM-Editor
user profile iconHidden hat folgendes geschrieben:

user profile iconmael hat folgendes geschrieben:

ACHTUNG:
Verwende den Schreibmodus des Diskeditors nur wenn Du genau weißt was Du tust! Man kann leicht durch falsches Editieren der Festplatte ein System unbootbar machen.

Evtl. diesbezüglich Vorkehrungen treffen und schlimme Fahler vermeiden...

Es gibt mehrfach Warnmeldungen, und geschrieben wird erst nachdem man explizit auf Speichern gedrückt hat. Außerdem funktioniert der Disk-Editor nur für Administratoren und Platten werden standardmäßig mit Schreibschutz geöffnet.

Es geht also mehr darum wenn man absichtlich etwas an der Festplatte editiert man dabei trotzdem wissen sollte, daß Editieren an der falschen Stelle Probleme verursachen kann (nicht aufgrund von Programmfehlern, sondern falscher Bedienung). Viel mehr als Warnen und Bestätigungen fordern kann man nicht.


mael - Mi 30.01.08 02:02

user profile icon_frank_ hat folgendes geschrieben:
klingt doch soweit ganz gut, welche Funktion ist denn so arbeitsintensiv?

Die kommende Version sperrt/öffnet die Datei nur wenn absolut notwendig, dauerhaft wird eine Datei erst nach dem Editieren gesperrt (bis die Änderungen gespeichert wurden) und sie muß dazu nicht explizit als Schreibgeschützt geöffnet werden.
Dies erlaubt viel flexibleres Arbeiten, was von vielen Benutzern gefragt wurde.
HxD nimmt aber überall an, daß Zugriffe auf Dateien dauerhaft möglich ist (da bisher immer gesperrt), daher muß gut geplant werden wie man dies sauber implementiert. Wenn die Datei nicht lesbar ist, verändert wurde, etc. muß das behandelt werden. Für den Fall das ein anderes Programm die Zugriffsrechte "klaut" habe ich analog zum RAM-Editor unerreichbare Teile definiert (alles als Fragezeichen dargestellt).

Man könnte das ganze schnell hinpfuschen, aber das will ich nicht, insbesondere weil dann seltsame Fehler entstehen könnten.

user profile iconmael hat folgendes geschrieben:
vielleicht können wir irgendwie bei der Entwicklung mithelfen...

Danke für das Angebot, aber wie gesagt die Änderungen sind umfangreich und vor allem müssen alle Fälle abgedeckt werden. Jemandem zu erklären wie die ganzen Interna funktionieren würde noch länger dauern als es mir selbst zu überlegen.

user profile icon_frank_ hat folgendes geschrieben:

was mir noch eingefallen ist, manchmal braucht man die Möglichkeit den aktuellen Offset (bzw. vom Blockstart) zu kopieren ;)

Momentan bitte keine neuen Feature-Requests, auch keine kleinen, die Version soll fertig werden ;-)

user profile icon_frank_ hat folgendes geschrieben:

user profile iconmael hat folgendes geschrieben:
Du meinst wenn man minimiert hat und dann per Windows-Kontextmenü eine Datei in HxD öffnen will?

über kontextmenü kommts auch, immer halt, wenn hxd schon gestartet und minimiert ist und eine weitere Datei mit hxd geöffnet wird (kontextmenü, drag&drop auf exe,...).

Bei drag&drop auf EXE habe ich das Problem nicht?!

user profile icon_frank_ hat folgendes geschrieben:
einfach beim Öffnen einer Datei prüfen, ob HxD minimiert ist und wenn ja, restore aufrufen ;)
Wird schon gemacht, aber anscheinend funktioniert es nicht immer, daher wollte ich wissen was für Fälle das sind.

user profile icon_frank_ hat folgendes geschrieben:

Wie hast du eigentlich die schnelle Suchfunktion hinbekommen? mein "lese aus dem filestream alle 512 bytes die ersten 16bytes und vergleiche" ist ziemlich langsam *g*
Vielleicht liegt es an der Blockgröße? Ich verwende 60KB. Such auch mal nach dem Boyer-Moore-Horspool Suchalgorithmus, gibts auch Implementierungen für Delphi.


mael - Do 31.01.08 03:31

@Frank: ProcessExplorer ist nett aber die Informationen zum freien Speicher sind nicht sehr nützlich (nur Physikalischer Speicher). Probier mal diese Version von HxD [http://mh-nexus.de/downloads/HxD.exe]. Nachdem der "Nicht genügend freier Speicher"-Fehler kommt, drücke auf Button1. Dann einfach strg+C (kopiert ganzen Text der MsgBox) und füge die Antwort bitte hier ein.


_frank_ - Do 31.01.08 12:17

nachdem der Fehler komt:

Zitat:
TotalPhys = 2,00 GB
AvailPhys = 1,08 GB
TotalPageFile = 2,60 GB
AvailPageFile = 1,82 GB
TotalVirtual = 2,00 GB
AvailVirtual = 1,45 GB


nochmal genau, was ich gemacht habe:
habe jetzt 1x256 MB und einmal 512 MB geöffnet, den kompletten inhalt von der 512 MB-Datei kopiert, und versucht am ende der 256MB-Datei einzufügen ;) dann kam Fehler und dann die Werte oben...
ich weis aber nicht, ob du im fall eines Fehlers den Speicher der Zwischenablage freigibst, bzw. wie du die daten kopierst (evtl. nur start und endoffset, dafür dauert das kopieren aber zu lange ;) ), aber wenn ich direkt vor dem Einfügen auf den button klicke, stehen die gleichen Werte drin...
laut PE nimmt Hxd knapp 520 MB im Speicher ein (Private Bytes), mit 768 MB geöffneten Daten :gruebel:

HTH Frank


mael - Do 31.01.08 16:31

user profile icon_frank_ hat folgendes geschrieben:
nachdem der Fehler komt:

Zitat:
TotalPhys = 2,00 GB
AvailPhys = 1,08 GB
TotalPageFile = 2,60 GB
AvailPageFile = 1,82 GB
TotalVirtual = 2,00 GB
AvailVirtual = 1,45 GB

Seltsam, müßte eigentlich funktionieren. Vielleicht liegt es an der alten Version von FastMM? Muß man später nochmal genauer anschauen.

user profile icon_frank_ hat folgendes geschrieben:
ich weis aber nicht, ob du im fall eines Fehlers den Speicher der Zwischenablage freigibst,

Erst wenn was Neues kopiert oder Programm beendet wird. Der Fehler ist ja beim Einfügen und nicht beim Kopieren.

user profile icon_frank_ hat folgendes geschrieben:
aber wenn ich direkt vor dem Einfügen auf den button klicke, stehen die gleichen Werte drin...

Das ist normal, der notwendige Speicher wird in einem Rutsch reserviert, schlägt dies fehl wird daher überhaupt kein zusätzlicher Speicher belegt.

user profile icon_frank_ hat folgendes geschrieben:

laut PE nimmt Hxd knapp 520 MB im Speicher ein (Private Bytes), mit 768 MB geöffneten Daten :gruebel:
Auch richtig, das ist hauptsächlich die Kopie der 512MB Datei in der Zwischenablage.

Was allerdings seltsam ist, ist daß das Einfügen nicht klappt weil nicht genug Speicher da sein soll. Von Deinen Angaben her sollte es funktionieren.

Muß ich später mal genauer untersuchen.


AHT - Di 05.02.08 16:21

Hammergeiles Teil - gefällt mir sehr gut! Wenn ich irgendwelche Fehler finden sollte, melde ich mich noch mal.

PS: Werde doch noch mehr schreiben - damit kannst du ja gar nichts anfangen...

- Habe bislang kurz mal das Auslesen von RAM getestet. Deine Aufteilung in Arten von Speicherbereichen, die einzeln einklappbar und ausklappbar sind, finde ich super! Klasse gewählt und einleuchtend - gerade dann, wenn man mit deinem Editor auch andere Tools nutzen möchte. Für die Bedienung wäre es ganz sinnvoll, den RAM insgesammt einklappen zu können, der nicht zugewiesen ist (ich hoffe, das ist verständlich).

- Das Proggie sieht, selbst unter Windows2000, spitzenmäßig aus! Vom Aufbau sehr einleuchtend und einfach in der Bedienung - da hat sich einer sehr viel Gedanken gemacht.

- Das man die Anzeigeart der Offset-Basis und die Bytegruppierung einstellen kann, ist ebenfalls toll.

:zustimm: Hammergeil, mit dem Teil werde ich öfters arbeiten!


mael - Mi 06.02.08 15:50

user profile iconAHT hat folgendes geschrieben:
[Hier stand viel Gutes und Nettes...] :D

Schön zu hören :-)

user profile iconAHT hat folgendes geschrieben:
Für die Bedienung wäre es ganz sinnvoll, den RAM insgesammt einklappen zu können, der nicht zugewiesen ist (ich hoffe, das ist verständlich).

Bisher werden ja standardmäßig alle nicht zugewiesenen Teile ausgeblendet (=zugeklappt) beim ersten Öffnen.


AHT - Do 07.02.08 10:03

Zitat:

Bisher werden ja standardmäßig alle nicht zugewiesenen Teile ausgeblendet (=zugeklappt) beim ersten Öffnen.


Hast recht - reicht eigentlich auch aus. Wer außer mir klickt schon irgendwo rum, wo sowieso nichts zu finden ist :lol: .
Ich möchte nicht wissen (?oder doch?) was du vorher schon so alles im virtuellen Speicher unternommen und durch direkte Speicherzugriffe geregelt hast, um überhaupt in dieser Art und Weise zu wissen, was in so einem Tool sinvoll ist...

Was mir noch positiv aufgefallen ist:
Ich habe mal den virtuellen Speicher eines von HXD geladenen Prozesses mit TNT [http://www.delphi-forum.de/topic_TNT_80254.html] geändert - HXD hat das sofort registriert.


mael - Fr 21.03.08 18:12

Nach längerer Zeit ist nun wieder eine neue stabile Version (1.7.5) draußen.

Es gibt einige Korrekturen (und wie immer Feintuning) im Vergleich zur letzten Version (1.7.1), Hauptneuerungen sind:


Download (783 KB): http://mh-nexus.de/downloads/HxD.zip

Allgemeines Feedback und Fehlermeldungen bitte hier in den Thread posten. Freue mich auf Antworten.


mael - Mi 16.04.08 15:02

Nach langer Zeit ist nun wieder eine stabile Version fertig (Version 1.7.5 war noch unvollständig).

Änderungen für Version 1.7.6:


Wie üblich viele weitere kleinere Verbesserungen und Korrekturen die hier nicht im Einzelnen aufgezählt werden.

Es gibt nun wie gesagt ein portable und installierbare Version, beide können von meiner Seite runtergeladen werden.
Download: http://mh-nexus.de/downloads.php?product=HxD


dummzeuch - Mo 26.05.08 17:19
Titel: Bug: Readonly geht nicht
Hi,

HxD kann eine Datei, die von einem anderen Programm mit FILE_SHARE_READ geoffnet ist, nicht oeffnen. Fehlermeldung "Datei "c:\test.txt" kann nicht zum Lesen geoeffnet werden. The process cannot access the file because it is being used by another process."

Dabei ist es egal, ob ich das Haekchen bei Read Only im File-Open-Dialog setze oder nicht.

In Notepad kann ich die Datei aber oeffnen, also liegt es nicht an den Share-Flags des anderen Programms.

HxD Version 1.7.6.0

twm


dummzeuch - Mo 26.05.08 18:01
Titel: Bug: Datei loeschen fuehrt zu Dauer-Piepsen
Hi,

wenn ich die Datei, die in HxD gerade geoeffnet ist, von der Platte loesche, so bekomme ich beim Versuch, das Programmfenster zu schliessen, einen Dauerpiepston. Das Programm kann dann nur noch mittels Tasksmanager abgeschossen werden.

HxD Version 1.7.6.0

twm


mael - Mo 26.05.08 18:24
Titel: Re: Bug: Readonly geht nicht
user profile icondummzeuch hat folgendes geschrieben:
HxD kann eine Datei, die von einem anderen Programm mit FILE_SHARE_READ geoffnet ist, nicht oeffnen. Fehlermeldung "Datei "c:\test.txt" kann nicht zum Lesen geoeffnet werden. The process cannot access the file because it is being used by another process."

HxD versucht zunächst die Datei im Modus GENERIC_READ | FILE_SHARE_READ zu öffnen. Es sollte also gehen.
Welches Programm hat die c:\test.txt geöffnet? Mit einem Bsp.Programm wäre das leichter zu testen, und vorallem mit der kompletten Angabe zum Öffnen, also GENERIC_READ/WRITE nicht nur share....

user profile icondummzeuch hat folgendes geschrieben:

Dabei ist es egal, ob ich das Haekchen bei Read Only im File-Open-Dialog setze oder nicht.

Jupp, das macht keinen Unterschied, es ist nur für HxD selbst, damit die Datei nicht verändert wird. Es wird immer zuerst im Nurlesen-Modus geöffnet und erst wenn die erste Schreiboperation erfolgt, die Datei wieder im Schreibmodus geöffnet. Daher wird sich da nichts ändern.

user profile icondummzeuch hat folgendes geschrieben:

In Notepad kann ich die Datei aber oeffnen, also liegt es nicht an den Share-Flags des anderen Programms.

Notepad ist sehr freigiebig, akzeptiert im Prinzip jeden Modus und ist daher keine Referenz. Besonders kann dies problematisch sein wegen so genannter "Race conditions", also wenn zwei Programme gleichzeitig auf eine Datei zugreifen. Daher öffnet HxD Dateien nicht die zum Schreiben geöffnet.


mael - Mo 26.05.08 18:26
Titel: Re: Bug: Datei loeschen fuehrt zu Dauer-Piepsen
user profile icondummzeuch hat folgendes geschrieben:
wenn ich die Datei, die in HxD gerade geoeffnet ist, von der Platte loesche, so bekomme ich beim Versuch, das Programmfenster zu schliessen, einen Dauerpiepston. Das Programm kann dann nur noch mittels Tasksmanager abgeschossen werden.

Danke für die Meldung.


dummzeuch - Mo 26.05.08 19:51
Titel: Re: Bug: Readonly geht nicht
user profile iconmael hat folgendes geschrieben:
user profile icondummzeuch hat folgendes geschrieben:

In Notepad kann ich die Datei aber oeffnen, also liegt es nicht an den Share-Flags des anderen Programms.

Notepad ist sehr freigiebig, akzeptiert im Prinzip jeden Modus und ist daher keine Referenz. Besonders kann dies problematisch sein wegen so genannter "Race conditions", also wenn zwei Programme gleichzeitig auf eine Datei zugreifen. Daher öffnet HxD Dateien nicht die zum Schreiben geöffnet.


Ok, dann ist das also kein Fehler sondern so gewollt. Die Datei ist von einem anderen Programm zum Lesen und Schreiben geoeffnet. Ich wollte mir parallel ansehen, welchen Inhalt die Datei zu einem Bestimmten Zeitpunkt (Breakpoint im Debugger) hat. Schade eigentlich...

twm


Hidden - Sa 31.05.08 18:51

Hi,

Mein XP schneidet immer die Dateiendungen weg. Dein Editor kann die Dateien dann nichtmehr öffnen. Wenn ich nun aber z.B. das ".exe" ergänze, geht alles.

mfG,


galagher - Sa 31.05.08 20:05

user profile iconHidden hat folgendes geschrieben:
Mein XP schneidet immer die Dateiendungen weg. Dein Editor kann die Dateien dann nichtmehr öffnen. Wenn ich nun aber z.B. das ".exe" ergänze, geht alles.

Könnte an der Windows-Unsitte "Erweiterungen bei bekannten Dateitypen ausblenden" liegen, oder?


Hidden - Sa 31.05.08 20:13

user profile icongalagher hat folgendes geschrieben:
user profile iconHidden hat folgendes geschrieben:
Mein XP schneidet immer die Dateiendungen weg. Dein Editor kann die Dateien dann nichtmehr öffnen. Wenn ich nun aber z.B. das ".exe" ergänze, geht alles.

Könnte an der Windows-Unsitte "Erweiterungen bei bekannten Dateitypen ausblenden" liegen, oder?
hmm... dann müsste man entweder von fornherein den kompletten Pfad erhalten oder über eine Api-Funktion ermitteln(suche Datei des Namens X im Verzeichnis Y).


Heiko - Sa 31.05.08 22:58

user profile icongalagher hat folgendes geschrieben:
user profile iconHidden hat folgendes geschrieben:
Mein XP schneidet immer die Dateiendungen weg. Dein Editor kann die Dateien dann nichtmehr öffnen. Wenn ich nun aber z.B. das ".exe" ergänze, geht alles.

Könnte an der Windows-Unsitte "Erweiterungen bei bekannten Dateitypen ausblenden" liegen, oder?

Dürfte eigentlich. Normalerweise sollte der OpenDialog die Dateiendung übernehmen, denn was machste, wenn ne test.txt und ne test.exe im selben Ordner liegt?

@Hidden: Funzt es aber bei anderen proggis?

@mael: Sag mal: Wo legt dein prigramm seine Daten ab, wenn es nicht im portablen Modus ist? Denn ich versuche die ganze Zeit die exe auf meinen Desktop zu legen, ohne dass die HxD.ini auch dort landet. Wenn ich das Setup nutze, funzt es. Aber ohne nicht (ich mag keine Setuops bei solchen kleinen Proggis). Ohne Installer fragt er mich nur, ob ichs portabel haben will oder nicht. Ok legt mir die ini auf dem Desktop an, während Abbrechen HxD beendet. Da wäre ein "nein" noch hilfreich, dass es nicht-portabel macht, sondern die Daten unter %apps% legt.


mael - So 01.06.08 03:28

user profile icondummzeuch hat folgendes geschrieben:
Ok, dann ist das also kein Fehler sondern so gewollt. Die Datei ist von einem anderen Programm zum Lesen und Schreiben geoeffnet. Ich wollte mir parallel ansehen, welchen Inhalt die Datei zu einem Bestimmten Zeitpunkt (Breakpoint im Debugger) hat. Schade eigentlich...

Ja, Dein Anwendungsfall ist durchaus einleuchtend. Nur muß für gewisse Operationen garantiert werden, daß die Daten sich währenddessen nicht ändern. Notepad kopiert einfach die ganze Datei in den Speicher, deswegen geht das. Ich behalte diese Szenario im Hinterkopf, vielleicht fällt mir in Zukunft eine gute Lösung ein.

user profile iconHidden hat folgendes geschrieben:
Mein XP schneidet immer die Dateiendungen weg. Dein Editor kann die Dateien dann nicht mehr öffnen. Wenn ich nun aber z.B. das ".exe" ergänze, geht alles.

Danke. Habe schon einige ähnliche Bug-Meldungen bekommen. Wird in der nächsten Ausgabe korrigiert. Der Grund für den Fehler ist die Unterstützung von ADS (Alternate Data Streams), auf die man mit der Syntax PfadundDateiname.Erweiterung:ADSName zugreifen kann. Beim Verstecken der Dateierweiterung funktioniert die Veränderung im OpenFileDialog nicht mehr.

user profile iconHeiko hat folgendes geschrieben:
Sag mal: Wo legt dein prigramm seine Daten ab, wenn es nicht im portablen Modus ist?

Im Anwendungsdaten-Ordner.

user profile iconHeiko hat folgendes geschrieben:

Denn ich versuche die ganze Zeit die exe auf meinen Desktop zu legen, ohne dass die HxD.ini auch dort landet. Wenn ich das Setup nutze, funzt es. Aber ohne nicht (ich mag keine Setuops bei solchen kleinen Proggis). Ohne Installer fragt er mich nur, ob ichs portabel haben will oder nicht. Ok legt mir die ini auf dem Desktop an, während Abbrechen HxD beendet. Da wäre ein "nein" noch hilfreich, dass es nicht-portabel macht, sondern die Daten unter %apps% legt.

Nun, da HxD im nicht portablen Modus auch in das System integriert werden kann, z.B. Kontextmenü, gibt es ein Setup und einen Uninstaller. Bei der portablen Version geht HxD davon aus, daß alles in einem Verzeichnis gespeichert wird und daher mit dem Löschen eines Ordners die Deinstallation gemacht ist.
Ich denke nicht, daß es sinnvoll ist einen (Un)Installer in HxD zu integrieren, nur um zu vermeiden, naja, einen Installer mitzuliefern.


Heiko - So 01.06.08 10:30

user profile iconmael hat folgendes geschrieben:
user profile iconHeiko hat folgendes geschrieben:
Sag mal: Wo legt dein prigramm seine Daten ab, wenn es nicht im portablen Modus ist?

Im Anwendungsdaten-Ordner.

Und wo da genau? Denn einen Ordner "mael" gibt es da nicht (auch wenn ichs per Setuop installiert habe) :(.


mael - So 01.06.08 14:24

user profile iconHeiko hat folgendes geschrieben:
user profile iconmael hat folgendes geschrieben:
user profile iconHeiko hat folgendes geschrieben:
Sag mal: Wo legt dein prigramm seine Daten ab, wenn es nicht im portablen Modus ist?

Im Anwendungsdaten-Ordner.

Und wo da genau? Denn einen Ordner "mael" gibt es da nicht (auch wenn ichs per Setuop installiert habe) :(.


Unter Windows XP wäre der Ordner:
C:\Dokumente und Einstellungen\BENUTZER\Anwendungsdaten\Mael\HxD

Es kann sein, daß die INI nicht direkt erzeugt wird, sondern erst wenn es was zu Speichern gibt, also Verlaufs-Listen bzw. geänderte Optionen.


Heiko - So 01.06.08 16:20

Hallo mael,

wenn ich dorthin die HxD.ini lege, erkennt er die nicht. Er legt dann aufm desktop ne neue an :(.

Quelltext
1:
C:\Dokumente und Einstellungen\Heiko\Anwendungsdaten\Mael\HxD\HxD.ini                    


mael - So 01.06.08 16:43

user profile iconHeiko hat folgendes geschrieben:
Hallo mael,

wenn ich dorthin die HxD.ini lege, erkennt er die nicht. Er legt dann aufm desktop ne neue an :(.

Quelltext
1:
C:\Dokumente und Einstellungen\Heiko\Anwendungsdaten\Mael\HxD\HxD.ini                    

Wenn HxD im Verzeichnis ist wo die Setup.exe es installiert hat, dann sollte es gehen.
Ist HxD woanders wird angenommen es wäre eine portable Version.

Das hat folgenden Grund: Jemand könnte HxD auf seinem System installiert haben. Jemand anderes bringt HxD auf einem USB-Stick mit und möchte die Einstellungen die auf dem Stick sind verwenden, nicht die die auf dem System gespeichert sind.


Heiko - So 01.06.08 16:52

Wird das über einen registry-Eintrag gemacht?

Wäre es nicht besser einfach beim Start zu fragen, welcher der beiden profile man verwenden möchte?


Timosch - Sa 07.06.08 18:41

Was mir gerade aufgefallen ist: Wenn ich eine Datei über Extras->Datei-Operationen->Sicher löschen löschen will und im OpenDialog mehrere Dateien auswähle, werden tatsächlich beide gelöscht, in der Warnmeldung, die vorher kommt, wird jedoch nur eine genannt.


mael - So 08.06.08 16:37

@Timosch: Danke für den Hinweis! Korrigiert in der Entwicklerversion.

user profile iconHeiko hat folgendes geschrieben:
Wird das über einen registry-Eintrag gemacht?

Jedes Setup-Programm trägt sich in die Registry ein damit Windows es in "Systemsteuerung/Software/Programme ändern oder entfernen" anzeigen kann.
Da das eh passiert kann man diese gespeicherten Informationen nutzen um den Installationspfad zu bestimmen.

user profile iconHeiko hat folgendes geschrieben:
Wäre es nicht besser einfach beim Start zu fragen, welcher der beiden profile man verwenden möchte?

Diese Frage würde ja immer wieder kommen und daher ziemlich lästig werden. Ich denke es ist schon sinnvoll die Konfiguration von dem Programm zu laden das sie erstellt hat (auch z.B. wenn sich mal was am Format oder den Namen ändert).


Heiko - So 08.06.08 17:01

Und als Alternative die im Anwendungsordner nutzen, wenn im lokalen Ordner nichts gefunden wurde?


mael - So 08.06.08 19:18

user profile iconHeiko hat folgendes geschrieben:
Und als Alternative die im Anwendungsordner nutzen, wenn im lokalen Ordner nichts gefunden wurde?

Könnte man machen. Was allerdings mein Ziel war, ist daß man feststellen kann, ob man die richtige Konfiguration verwendet. Wenn automatisch "umgeleitet" würde wäre das aber nicht möglich.

Was ist denn das eigentliche Problem?


Heiko - So 08.06.08 19:43

user profile iconmael hat folgendes geschrieben:
user profile iconHeiko hat folgendes geschrieben:
Und als Alternative die im Anwendungsordner nutzen, wenn im lokalen Ordner nichts gefunden wurde?

Könnte man machen. Was allerdings mein Ziel war, ist daß man feststellen kann, ob man die richtige Konfiguration verwendet. Wenn automatisch "umgeleitet" würde wäre das aber nicht möglich.

Vlt. ein kleines Symbol in der Statusleiste ;).

user profile iconmael hat folgendes geschrieben:
Was ist denn das eigentliche Problem?

Die Ursache, das ich mich gegen Setups sträube, liegt in den schlechten Erfahrungen mit diesen. Für die Installation ist es schön - aber für den Rest eher nicht, denn einige Setups entfernen ihre Daten nicht richtig (von einer WebCam musste ich den Eintrag bei "Software" selber aus der Registry entfernen, da der Uninstaller das vergessen hat). Bei anderen widerrum gibt es Probleme beim Updaten. Beste Beispiel: Firefox (bei 1.0.x war es der Fall, obs immer noch ist: ka). Wenn man eine neuere Version installiert legt er neue Registry-Daten (bei "Software") ab, ohne die alten einfach zu entfernen. Und wenn man dann die alte entfernt hat, hat er die neue mitentfernt, aber die übrigen Einträge in "Software" gelassen.
Ein weiterer Minuspunkt für Setups: Der SoftwareAgent von Win ist relativ langsam - da kann man Software nicht gerade schnell deinstallieren.

Insgesamt spielen bei mir also da vorrangig die schlechten Erfahrungen eine Rolle. Natürlich gibt es auch positive Erfahrungen (z.B. Trillian).

Inzwischen ist meine Einstellung, auch bei meinen eigenen Programmen, so, dass kleine Software, die nix in der Registry braucht als zip-Archiv daherkommen sollte. Die haben den Vorteil, dass man sie einfach durch entfernen des Ordners deinstallieren kann (machen einige Benutzer generell, wes wegen es sowieso besser ist, auf so etwas vorbereitet zu sein). Wenn im Anwendungsordner Daten übrig sind, sehe ich das nicht als Problem. Denn Configs sind normalerweise sehr klein und es ist immer wieder gut, wenn nach einem halben Jahr, wenn man die Software doch mal wieder braucht und installiert, die Daten noch da sind...

Bei Standalone-Exen ist das ganze sogar noch extremer. Dann liegen die Exen bei mir immer direkt auf dem Desktop - denn wofür einen extra Ordner anlegen und dann eine extra Verknüpfung?


Wegen portablen Version: Zwei Varianten finde ich persönlich gut. Zum einem die Erkennung des Datenträgers, sprich wenn das Programm erkennt, dass es auf einem Wechseldatenträger liegt, sollte es sich als Portable präsentieren (einzige Schwierigkeit besteht in der Erkennung, ob es eine externe Festplatte ist oder nicht, denn die geben sich als normale Festplatten aus) und zum anderem eine einfache Umbennung der Exe. Statt HxD z.B. HxDportable.

PS: Ich nutze auch nicht den Ordner "Eigene Dateien", da er von allen möglichen Programmen zugemüllt wird (wofür imho auch die Anwendungsdaten eigentlich da sind [Savegames landen bei einigen in "eigene Dateien"...]).

Ich hoffe ich konnte dir meinen Standpunkt ausreichend vermitteln ;).

Grüße
Heiko


F34r0fTh3D4rk - So 08.06.08 19:52

Da das Problem aber generell bei Installern besteht würde ich das nicht so ernst sehen. Ich benutzt Revo-Uninstaller und der bekommt eigentlich so ziemlich alles weg. (das gängigste Zeug was liegen bleibt)

mfg


mael - Fr 08.08.08 22:15

Neue Version (1.7.6.4)



Es gibt auch eine detaillierte Änderungsliste (Englisch): http://mh-nexus.de/HxD.htm#whatsnew


Download: http://mh-nexus.de/downloads.php?product=HxD


Heiko - Sa 09.08.08 13:05

Hallo mael,

ich hab gerade HxD zum einfrieren gebracht ;). Ich wollte ein paar dateien verketten. Da ich die Option zuerst nicht gefunden hatte, habe ich es per Copy&Paste gemacht - bis es mir zuviel wurde und ich nocheinmal suchte. Um den RAM zu entlasten habe ich die Datei zwischendurch immerwieder einmal gespeichert.
Nun zum Bug. Wenn man bei Dateiverketten eine Datei als Ziel anwählt auf die er keinen Zugriff hat, gibt er einen fejhler aus - und friert danach ein. Günstig wäre auch wenn der OK-Button deaktiviert ist, wenn kein Dateiname angegeben ist ;).

Grüße
SunBlack


wirbeldelphi - Sa 09.08.08 13:37

Eben erst entdeckt für absolut genial befunden - Respekt. :-)
Vor allem die Optionen Ram öffen und Datenträger öffnen.


Wenn einige Zusatzfunktionen wie in Ultraedit drin sind enthalten wären würde ich den Uedit komplett einmotten. Aber auch so bekommt dein tool ein festes Plätzchen auf diesem Rechner.

Schön wären noch:
* Umschaltung hex mode <-> Text mode
* Conversation Dos <-> Unix (Zeilenumbruch bei Text Dateien
* Syntax Highlighting für *.c/h und *.pas


mael - Sa 09.08.08 15:05

user profile iconHeiko hat folgendes geschrieben:
Nun zum Bug. Wenn man bei Dateiverketten eine Datei als Ziel anwählt auf die er keinen Zugriff hat, gibt er einen fejhler aus - und friert danach ein.

Ich konnte das nicht reproduzieren, ich habe einfach ein Fehlermeldung bekommen die gesagt hat Datei kann nicht geöffnet werden da Zugriff verweigert. Könntest Du mir bitte eine schrittweise Anleitung geben die den Fehler erzeugt. Es wäre auch wichtig zu wissen warum der Zugriff auf die Datei fehlschlägt: ist sie z.B. in einen anderen Programm schon geöffnet (oder sogar in HxD selbst)?
Danke.

user profile iconHeiko hat folgendes geschrieben:
Günstig wäre auch wenn der OK-Button deaktiviert ist, wenn kein Dateiname angegeben ist ;).
Sicher :-)

@wirbeldelphi: Erweiterungen für eine "normale" Textansicht sind geplant, vielleicht wird es auch mal Syntaxhervorhebung geben, aber HxD ist hauptsächlich ein Hexeditor.


Heiko - Sa 09.08.08 15:24

user profile iconmael hat folgendes geschrieben:
user profile iconHeiko hat folgendes geschrieben:
Nun zum Bug. Wenn man bei Dateiverketten eine Datei als Ziel anwählt auf die er keinen Zugriff hat, gibt er einen fejhler aus - und friert danach ein.

Ich konnte das nicht reproduzieren, ich habe einfach ein Fehlermeldung bekommen die gesagt hat Datei kann nicht geöffnet werden da Zugriff verweigert. Könntest Du mir bitte eine schrittweise Anleitung geben die den Fehler erzeugt. Es wäre auch wichtig zu wissen warum der Zugriff auf die Datei fehlschlägt: ist sie z.B. in einen anderen Programm schon geöffnet (oder sogar in HxD selbst)?
Danke.

Letzteres (HxD selbst) - siehe Beschreibung im letzten Post ;). Hatte noch im Hintergrund die Datei offen.

Sobald mein PC wieder aus der nähe des Gefrierpunktes ist (KIS-Fullscan ;) ) werde ich es ggf. nocheinmal testen, auch wenn ich die Testdateien inzwischen weggeschmissen habe :(.


mael - Sa 09.08.08 15:41

user profile iconHeiko hat folgendes geschrieben:
Letzteres (HxD selbst) - siehe Beschreibung im letzten Post ;). Hatte noch im Hintergrund die Datei offen.

Wie gesagt schrittweise minimale Anleitung wäre gut, habe Verschiedenes probiert (auch die Zieldatei in HxD selbst zu öffnen und editiert vor dem Konkatenieren).
Zitat:

Da ich die Option zuerst nicht gefunden hatte, habe ich es per Copy&Paste gemacht - bis es mir zuviel wurde und ich nocheinmal suchte. Um den RAM zu entlasten habe ich die Datei zwischendurch immerwieder einmal gespeichert.

Falls Du was einfacheres findest das den Fehler auch ohne obiges erzeugt, wäre gut, denn so viele Schritte machen es schwer den Fehler einzugrenzen. Vor allem kann es davon wieviel kopiert wurde, wie häufig gespeichert wurde, wie groß der Arbeitsspeicher ist etc. Daher wie gesagt wäre ein einfacherer Testfall willkommen.

Danke.


Heiko - Sa 09.08.08 16:02

Also mit kleinen TXT-Dateien kann ich es gerade nicht reproduzieren -.- Naja, wer weiß was da los war.


mael - Fr 15.08.08 15:09

Der Inhalt der Webseite wurde aktualisiert und ist jetzt auch auf Deutsch verfügbar!


AXMD - Fr 03.10.08 09:33

Hallo!

Arbeite schon länger mit HxD, aber was mir immer wieder fehlt ist die Möglichkeit, eine zusätzliche Spalte oder einen zusätzlichen Modus zu haben, die/der den "Inhalt" binär anzeigt. Hexadezimale Darstellung ist meistens ok, aber wenn man auf einen Blick sehen will, ob beispielsweise bestimmte Flags (einzelne Bits) gesetzt sind, wäre so ein Binärmodus praktischer als den Windowstaschenrechner nebenbei offen zu haben ;)

AXMD


jaenicke - Fr 03.10.08 09:53

Ja, das ist eine gute Idee. Auch wenn man in einem Hexwert eigentlich auch so sofort ansieht welche Bits gesetzt sind, ist es bei mehreren Flags nicht ganz so einfach dies im Auge zu haben, da wäre es einfacher, die einzelnen Bits in Binärdarstellung zu Vergleichszwecken zum Beispiel kopieren zu können.
Auch so etwas wie das Überwachen von Werten in Delphi wäre da nicht schlecht. Also so in der Art: markieren, überwachen, und in der Liste dann die Darstellung z.B. auf binär oder andere Darstellungen umstellen. So könnte man dann sich ändernde Werte leicht überwachen.

(So etwas ähnliches habe ich auch in Arbeit, einen visuellen Streamdebugger als Komponente, dem man u.a. Records zur Auswertung angeben kann, und der eben verschiedene Zahlensysteme zur Darstellung kann. Um zu sehen was schief geht.)

Aber auch eine generelle zusätzliche binäre Darstellung in einer Spalte o.ä. wie von user profile iconAXMD vorgeschlagen als Option wäre nicht schlecht.


BenBE - Sa 04.10.08 12:44

Bei dem alternativen Hexeditor, den ich einsetz, ist das durch ein kleines Fenster gelöst, in dem man für jegliche Datentypen einfach einen Eintrag hat und er einfach für die auf die aktuell folgende Position versucht die für einen Datentyp nötigen Daten zu lesen ...

Wenn ich also:

Quelltext
1:
DE AD BE AF 08 15 47 11                    

im Hex-Editor-Fenster stehen hab und 08 markiert ist, zeigt er in besagtem Fenster

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
uint8:                       8
uint16:                   5384
uint32:              289871112
sint8:                       8
sint16:                   5384
sint32:              289871112
single:                    NaN
double:                    ???
Unix TS:   23:45:12 09.03.1979
...


Wobei man die anzuzeigenden Formate auswählen kann.

Das Überwachen bestimmter Bytes wäre aber auch hilfreich, besonders wenn man eine Art Schablone* nutzen könnte (z.B. eine Record-Definition von Delphi ;-) oder eine Art kleiner Scriptsprache).

*Der besagte Editor kann zwar Schablonen, diese sind aber doch recht eingeschränkt UND haben den großen Nachteil, dass diese modal geöffnet werden und man daher bei variablen Schablonen nicht ohne weiteres sauber navigieren kann ...


mael - Sa 04.10.08 15:02

Ich habe einen Dateninspektor in Arbeit, der das machen sollte was ihr möchtet:

user defined image

In der nächsten Version wird der enthalten sein (Steuerelement auf der linken Seite). Struktur/Record-Ansicht kommt dann später hinzu, ist bisher nur zum experimentieren da und wird auch anders aussehen.


Edit: Der Dateninspektor ist dann ein dockbares Fenster (sowie momentan das Prüfsummenfenster, nur am linken Fensterrand anstatt unten).


jaenicke - Sa 04.10.08 23:21

Der sieht sehr interessant aus...
...und ähnlich zu dem was ich vor hatte.

Wenn du da noch eine Komponente drum bauen würdest, der man den Pfad zum HxD gibt und dann per Befehl einen Stream angeben könnte, dessen Adresse dann extern an HxD übergeben wird, sodass dort der Streaminhalt sichtbar und inspizierbar wäre, wäre das zur Analyse von Streamoperationen sehr schön.

Ich hatte das so ähnlich wie in deinem Screenshot als Komponente vor, die dann ein ähnliches Formular anzeigt, aber wenn das mit HxD ginge wäre das eine schöne Lösung.


BenBE - Sa 04.10.08 23:27

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du da noch eine Komponente drum bauen würdest, der man den Pfad zum HxD gibt und dann per Befehl einen Stream angeben könnte, dessen Adresse dann extern an HxD übergeben wird, sodass dort der Streaminhalt sichtbar und inspizierbar wäre, wäre das zur Analyse von Streamoperationen sehr schön.

Ich hatte das so ähnlich wie in deinem Screenshot als Komponente vor, die dann ein ähnliches Formular anzeigt, aber wenn das mit HxD ginge wäre das eine schöne Lösung.

Wäre dann nicht eine IPC-basierte API besser geeignet? Sprich, dass du den HxD einmal über solch eine Komponente startest und dann über einen IPC-Kanal (z.B. mit Shared Mem) zwischen den beiden Instanzen die Daten austauschen kannst?


jaenicke - Sa 04.10.08 23:46

Ich hatte eher daran gedacht, dass mit den Parametern die neue Instanz der alten die Parameter übergibt und so die Anzeige aktualisiert, aber so wäre natürlich eine bessere Lösung, die aber auch mehr Aufwand bedeutet.

Egal wie realisiert würde mich ein solches Feature jedenfalls sehr interessieren.


uall@ogc - Di 07.10.08 12:45

Wird es auch irgendwann mal Pluginsupport geben? Ich würd ja schon gerne z.B. ein Plugin erstellen welches Programmdateien (.exe) anzeigen kann (Import/Export/Relocation Sections, Assembler Instructions, Resourcen etc.)


Hidden - Di 07.10.08 12:53

user profile iconuall@ogc hat folgendes geschrieben Zum zitierten Posting springen:
Wird es auch irgendwann mal Pluginsupport geben? Ich würd ja schon gerne z.B. ein Plugin erstellen welches Programmdateien (.exe) anzeigen kann (Import/Export/Relocation Sections, Assembler Instructions, Resourcen etc.)

Schreib' doch schonmal los und schick' ihm den Quelltext :mrgreen:


Heiko - Do 23.10.08 20:52

Hallo mael,

gibts eigentlich eine Setuplose Variante? Ich versuche gerade hier in der Uni dein Setup auszuführen - aber ich bin leider kein Admin und 7zip kann des Setup auch nicht entpacken :(.

Grüße
Heiko


mael - Do 23.10.08 21:17

user profile iconHeiko hat folgendes geschrieben Zum zitierten Posting springen:
gibts eigentlich eine Setuplose Variante?

Verwende doch die portable Version von der Download-Seite: http://mh-nexus.de/de/downloads.php?product=HxD

user profile iconuall@ogc hat folgendes geschrieben Zum zitierten Posting springen:
Wird es auch irgendwann mal Pluginsupport geben?
Wird es geben, aber das wird nicht in naher Zukunft sein.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du da noch eine Komponente drum bauen würdest, der man den Pfad zum HxD gibt und dann per Befehl einen Stream angeben könnte, dessen Adresse dann extern an HxD übergeben wird, sodass dort der Streaminhalt sichtbar und inspizierbar wäre, wäre das zur Analyse von Streamoperationen sehr schön.

Was man machen kann ist den Streaminhalt in eine Datei speichern, und diese in HxD geöffnet lassen. Da HxD automatisch die Datei neulädt wenn sie sich ändert wäre damit auch der Inhalt immer synchron. Alles andere würde eine kompliziertere API bzw. Skripting benötigen (was ähnlich wie Plugins nicht in naher Zukunft kommt). Alternativ kann man sonst das Programm im RAM-Editor von HxD ansehen, und per "Suchen|Gehe-zu" an die gewünschte Adresse springen. Die Offsets im RAM-Editor und die virtuelle Adresse in deinem Programm sind ja gleich.


Heiko - Fr 24.10.08 11:12

user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconHeiko hat folgendes geschrieben Zum zitierten Posting springen:
gibts eigentlich eine Setuplose Variante?

Verwende doch die portable Version von der Download-Seite: http://mh-nexus.de/de/downloads.php?product=HxD


Arg danke. Ich war schon auf der Seite - aber die portable Verison hatte ich nicht gefunden :(. Kannst du ggf. die Portable und die installierbare hintereinander machen? Also die Seite nicht nach installierbar/portable und anschließend nach Sprache zu sortieren, sondern zu erst nach Sprache?


jaenicke - Fr 24.10.08 11:26

user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du da noch eine Komponente drum bauen würdest, der man den Pfad zum HxD gibt und dann per Befehl einen Stream angeben könnte, dessen Adresse dann extern an HxD übergeben wird, sodass dort der Streaminhalt sichtbar und inspizierbar wäre, wäre das zur Analyse von Streamoperationen sehr schön.
[...] Alternativ kann man sonst das Programm im RAM-Editor von HxD ansehen, und per "Suchen|Gehe-zu" an die gewünschte Adresse springen. Die Offsets im RAM-Editor und die virtuelle Adresse in deinem Programm sind ja gleich.
So meinte ich das ja. Dass zum Beispiel mit Kommandozeilenparameter HxD mit dem eigenen Programm an der Adresse im RAM gestartet wird und dann zum Beispiel per Windows-Botschaft die Anzeige von Änderungen in HxD angefordert werden und die jeweils aktuelle Größe übergeben wird. So ließe sich der Teil hervorheben, der zum Stream gehört.

Aber wenn das nicht kommt, werde ich auch irgendwann hoffentlich mit meiner Komponente fertig werden, die das dann komplett in der Exe einkompiliert bietet. Dein Editor hätte allerdings mehr Funktionen ;-).


mael - So 26.10.08 14:31

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
So meinte ich das ja. Dass zum Beispiel mit Kommandozeilenparameter HxD mit dem eigenen Programm an der Adresse im RAM gestartet wird und dann zum Beispiel per Windows-Botschaft die Anzeige von Änderungen in HxD angefordert werden und die jeweils aktuelle Größe übergeben wird. So ließe sich der Teil hervorheben, der zum Stream gehört.

Das mit der Windows-Botschaft und dem Kommandozeilenparameter wäre natürlich möglich, aber ich würde lieber eine allgemeine API entwickeln um zu vermeiden dass dann ein Wust aus Einzellösungen entsteht. Daher kommt sowas zusammen mit dem Skripting und somit nicht so bald.

user profile iconHeiko hat folgendes geschrieben Zum zitierten Posting springen:
Kannst du ggf. die Portable und die installierbare hintereinander machen? Also die Seite nicht nach installierbar/portable und anschließend nach Sprache zu sortieren, sondern zu erst nach Sprache?

Werde ich in Zukunft umorganisieren. Wahrscheinlich werde ich all die verschiedenen Sprachversionen in Zukunft in eine Datei machen, dann wird es übersichtlicher. Oder auch die Sprache des Webseitenbesuchers wie bei der Firefox-Seite erkennen und nur diese Version anzeigen, mit einem Hinweis auf weitere verfügbare Sprachen.


mindtrap - Fr 31.10.08 12:53
Titel: Bugreport
Hi mael,

ich verwende deinen Hexeditor sehr intensiv, gerade weil ich damit bequem Festplatten etc. anzeigen lassen kann.
(Kurz, ein großes Lob an dich.)

Leider habe ich einen Bug zu berichten:

Die Version: 1.7.6.5
Benutzung: Ich hatte einen USB-Stick gerade in HxD überprüft.
Fehler:
1. Per Ctrl-C habe ich Bytes kopiert und in einen Texteditor (PSPad) eingefügt.
2. Danach habe ich mit Ctrl-C weitere Bytes in HxD kopieren wollen, dabei bekam ich die Fehlermeldung:
"Class already exists."
Bei einem erneuten Versuch bekomme ich die Fehlermeldung
"Zwischenablage kann nicht geöffnet werden." (Dabei bleibt es dann auch.)

Vielleicht spielt es eine Rolle, vielleicht auch nicht:
HxD hatte ich für den Zugriff auf das Device natürlich mit Adminrechten geöffnet, PSPad natürlich nicht. ;)

MfG
mindtrap

P.S.:
Evtl. könntest du noch eine Anpassung machen, was die Rechte zum Bearbeiten von Devices betrifft. Bei USB-Sticks braucht man (in der Regel) keine Adminrechte. Vmtl. verwendest du CreateFile, dann müsstest du bei ungenügenden Zugriffsrechten den Returncode ERROR_ACCESS_DENIED bekommen und könntest den User darauf hinweisen, dass nicht alle Laufwerke aufgrund zu weniger Rechte zugänglich sind. Ist aber nur ein Nice-To-Have. :D

Wenn du magst, schreib ich den Code dafür.


mael - Mo 03.11.08 19:25
Titel: Re: Bugreport
user profile iconmindtrap hat folgendes geschrieben Zum zitierten Posting springen:

1. Per Ctrl-C habe ich Bytes kopiert und in einen Texteditor (PSPad) eingefügt.
2. Danach habe ich mit Ctrl-C weitere Bytes in HxD kopieren wollen, dabei bekam ich die Fehlermeldung:
"Class already exists."
Bei einem erneuten Versuch bekomme ich die Fehlermeldung
"Zwischenablage kann nicht geöffnet werden." (Dabei bleibt es dann auch.)

Ja, Danke. Das ist ein Bug in der Zwischenablagenlogik. Habe ich korrigiert, wird bald eine neue Version geben.

user profile iconmindtrap hat folgendes geschrieben Zum zitierten Posting springen:

Evtl. könntest du noch eine Anpassung machen, was die Rechte zum Bearbeiten von Devices betrifft. Bei USB-Sticks braucht man (in der Regel) keine Adminrechte.

Das passiert eigentlich schon, wenn mindestens ein logisches und ein physisches Laufwerk geöffnet werden können sollte keine Fehlermeldung erscheinen.
Bist Du sicher, dass die nötigen Rechte zum Öffnen des USB-Sticks da sind?


mael - Sa 08.11.08 22:05

Neue Version (1.7.6.6)


Eine genauere Liste der Änderungen können Sie hier finden (Englisch): http://mh-nexus.de/en/hxd/changelog.php

Download:
http://mh-nexus.de/de/downloads.php?product=HxD


mindtrap - So 09.11.08 15:12
Titel: Re: Bugreport
user profile iconmael hat folgendes geschrieben:

user profile iconmindtrap hat folgendes geschrieben:

Evtl. könntest du noch eine Anpassung machen, was die Rechte zum Bearbeiten von Devices betrifft. Bei USB-Sticks braucht man (in der Regel) keine Adminrechte.

Das passiert eigentlich schon, wenn mindestens ein logisches und ein physisches Laufwerk geöffnet werden können sollte keine Fehlermeldung erscheinen.
Bist Du sicher, dass die nötigen Rechte zum Öffnen des USB-Sticks da sind?


Ziemlich, da ein Programm von mir (mit den gleichen Userrechten), den Bootsektor des USB-Sticks (erfolgreich) manipuliert.
Hier die Meldung, verwendet wird Vista64:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
---------------------------
HxD
---------------------------
Sie benötigen Administratorrechte um direkten Zugriff auf Laufwerke zu erhalten!



Ab Windows Vista, mit aktiviertem Benutzerkontenschutz (UAC), muß HxD explizit als Administrator ausgeführt werden, auch wenn Sie als Administrator angemeldet sind. Dies ist z.B. mit dem Eintrag "Als Administrator ausführen" im Explorer-Kontextmenü möglich, das bei einem Rechtsklick auf das HxD-Startsymbol erscheint.
---------------------------
OK   
---------------------------


Die Meldung ist selbsterklärend, aber in diesem Fall sind Adminrechte garnicht nötig.

(Danke für die neue Version)


mael - Mo 10.11.08 15:19
Titel: Re: Bugreport
user profile iconmindtrap hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconmael hat folgendes geschrieben:

user profile iconmindtrap hat folgendes geschrieben:

Evtl. könntest du noch eine Anpassung machen, was die Rechte zum Bearbeiten von Devices betrifft. Bei USB-Sticks braucht man (in der Regel) keine Adminrechte.

Das passiert eigentlich schon, wenn mindestens ein logisches und ein physisches Laufwerk geöffnet werden können sollte keine Fehlermeldung erscheinen.
Bist Du sicher, dass die nötigen Rechte zum Öffnen des USB-Sticks da sind?


Ziemlich, da ein Programm von mir (mit den gleichen Userrechten), den Bootsektor des USB-Sticks (erfolgreich) manipuliert.

Hm, das müßte man dann mal genauer testen. Ist es sowohl als physisches (\\.\PhysicalDriveX) als auch als logisches Laufwerk (\\.\A-Z) beschreibbar?


Boldar - Mi 31.12.08 15:47

Hi,
Erstmal ein großes Lob:
Respektable Leistung!!
Aber: ich hätte gerne noch eine Funktion in HXD:
Undzwar sollen die Suchergebnisse irgendwo aufgelistet sein, und man soll in den Ergebnissen nochmals suchen können.
Wäre das möglich?
[Ich weiss dass es mir eigentlich nicht zusteht, sowas zu verlangen, aber villeicht ist es ja nicht allzuviel Aufwand...]
mfg Boldar


Heiko - Fr 20.02.09 13:54

Hallo Mael,

hab nen Vorschlag für HxD: Was hälst du von einem reinem Textmodus? Ich habe hier z.B. gerade eine 2GB bzw 4GB Logdatei von meinem Virenscanner und will mal reinschauen, was da soviel Einträge verursacht hat. Problem: alle meine Textprogramme scheitern an der enormen Größe. HxD dagegen lädt die Daten ja OnTheFly, also nicht alles in den RAM. Genau das könnte ich hier gebrauchen. Bestünde die Möglichkeit da was zu machen? Denn mit den ganzen Punkten zw. jedem Zeichen kann man den Text schlecht lesen ;).

Grüße
Heiko


galagher - Fr 20.02.09 21:49

Ja, die Idee hat was! Man könnte dann umschalten zwischen Hex- und Textdarstellung. Würde mir auch gefallen!


Heiko - Fr 20.02.09 22:06

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Man könnte dann umschalten zwischen Hex- und Textdarstellung.

Vor allem bei Dateiformaten die man nicht kennt und dem entsprechend zuerst mit nem Hex-Editor öffnet, bevor man merkt das es ist Text und den Editor verwenden kann (sofern er mit >2GB-Dateien klar kommt). Hauptproblem was ich dabei nur sehe: eigentlich ist es nicht direkt Aufgabe eines HexEditor und zweitens ist es "schwer" herauszufinden wie lang der Scrollbalken sein muss, wieviel Bytes er weiterlesen muss, und welche Zeichenkodierung drin ist (evtl. Option)


Hidden - Sa 21.02.09 11:23

Hi :)

Mit anderen Anzeigemöglichkeiten wäre doch noch sehr viel mehr drin: Z.B. in eine .Exe sind ja häufiger Bilder, etc. integriert. HxD könnte dann einige Header erkennen und die Möglichkeit bieten, solche integrierten Dateien als Bild-, Audio- oder Videodatei anzuzeigen(wobei Bild sicherlich das mit Abstand einfachste und wohl eventuell einzig lohnende ist).

mfG,


toms - Sa 21.02.09 11:29

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Hi :)

Mit anderen Anzeigemöglichkeiten wäre doch noch sehr viel mehr drin: Z.B. in eine .Exe sind ja häufiger Bilder, etc. integriert. HxD könnte dann einige Header erkennen und die Möglichkeit bieten, solche integrierten Dateien als Bild-, Audio- oder Videodatei anzuzeigen(wobei Bild sicherlich das mit Abstand einfachste und wohl eventuell einzig lohnende ist).

mfG,


Für so was gibt es Resource Hacker, Resource Extractor etc.
Denke das gehört nicht zur Kernaufgabe eines Hex-Editors.


BenBE - Sa 21.02.09 13:55

Sehe ich analog: Wäre zwar schön, wenn man sich "visuell" die Daten im Überblick anzeigen lassen könnte (anhand der Helligkeit, bis zu 6 Wertebereiche markierbar), aber als "Bildbetrachter würd ich nen Hex-Editor nun wirklich nicht verwenden.

Das mit dem "Textmodus" für große Dateien wäre wirklich ein interessantes Feature.

Alternativ wäre auch ein Feature "Bereich in neuem Fenster bearbeiten"-Feature sicherlich interessant, wenn man z.B. eine Text-Ressource in einer Binärdatei hat, an dieser arbeiten möchte (ohne Größenänderung), und die sich damit in ein eigenes Fenster ziehen kann (z.B. für den Textmodus).


Yogu - Sa 21.02.09 14:42

user profile iconHeiko hat folgendes geschrieben Zum zitierten Posting springen:
hab nen Vorschlag für HxD: Was hälst du von einem reinem Textmodus?

Einen Ansatz in diese Richtung gibt es bereits: Aktiviere unter Ansicht > Sichtbare Spalten "Text" und wähle "Anpassen der Fensterbreite" aus. Dann siehst du nur noch den Text. Der Nachteil: Zeilenumbrüche werden nicht erkannt. Und außerdem ist der "Textmodus" etwas schwer zu erreichen - ein Button, der genau dies tut und außerdem noch umbricht (die Scrollbalkenlänge wäre mir in diesem Fall nicht so wichtig), wäre schon etwas tolles. Ich habe auch manchmal so meine Probleme mit zu großen Textdateien.

Ich hab hier ja tatsächlich noch nie etwas geschrieben, das muss ich dringend ändern (hab ich ja eigenltich schon ;). Also: Ganz, ganz großes Lob und Danke für den Hexeditor! Ich wüsste nicht, wie ich ohne HxD Dateizugriffe debuggen würde.
:zustimm:

Grüße,
Yogu


AXMD - Di 24.02.09 13:46

Hallo!

Ich hätte einen kleinen Feature-Wunsch für meinen Lieblings-Hex-Editor ;) Suchen mit Anzeige der gefundenen Übereinstimmungen, d.h., dass man nicht von Treffer zu Treffer springt, sondern die Gesamtanzahl der Treffer angezeigt wird (z.B. "10 Übereinstimmungen gefunden"). Dass alle dann noch markiert werden wäre natürlich sensationell, wenn auch nicht unbedingt notwendig ;)

AXMD


mael - Mo 06.04.09 18:41

Neue Version (1.7.7.0)



Download:
http://mh-nexus.de/de/downloads.php?product=HxD


mael - Fr 31.07.09 22:42

Hallo,

Hier eine Alpha-Version von HxD.

Es ist einiges im Umbruch, der Dateninspektor ist aber soweit fertig. Es gibt andere Änderungen von denen die meisten nicht fertig sind, also auch nicht funktioneren.

Ich hätte gerne Feedback dazu was das Verhalten vom Dateninspektor angeht.


HxD 1.8 Alpha [http://mh-nexus.de/downloads/HxDAlpha.zip]


Heiko - Fr 31.07.09 23:09

user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
Ist Verhalten unerwartet/unintuitiv oder nicht?

Ich finde es irgendenwie unintuitiv das er die veränderten Werte speichert und zum nächsten Byte weiterrutscht, nur weil man mit der Maus die Zelle verlässt (obwohl man evtl noch nciht fertig mit dem Bearbeiten war). Die Mausposition sollte egal sein - also man sollte das ganze auch nur mit Tastatur bedienen können. Also Enter in einer Zelle bestätigt z.B. das Speichern (alternativ Button). Aber bitte nicht zu automatisiert ;). (Das Problem lässt sich leider nicht immer reproduzieren)

user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
Noch andere Optionen für Dateninspektor? (Rechtsklick|Optionen...) Wenn ja welche?

Evtl eine Hervorhebung der Hexwerte nach Anzahl der betrachten Bytes. Also das man z.B. direkt erkennt welche 4 Bytes betroffen sind ohne "nachzählen" (vor allem beim zeilenumbruch) zu müssen


mael - Sa 01.08.09 00:24

user profile iconHeiko hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
Ist Verhalten unerwartet/unintuitiv oder nicht?

Ich finde es irgendenwie unintuitiv das er die veränderten Werte speichert und zum nächsten Byte weiterrutscht, nur weil man mit der Maus die Zelle verlässt (obwohl man evtl noch nciht fertig mit dem Bearbeiten war).

Das mit dem Weiterrücken kann ich verstehen. Das mit der Maus allerdings weniger. Der Eigenschafteneditor in Delphi funktioniert doch genauso, oder findest du es dort auch unpraktisch?


Heiko - Sa 01.08.09 00:56

Ich weiß nicht ob wir gerade genau das gleiche meinen ;).

Bei meinem ersten Versuch bei deiner Alpha war es so, dass ich mit der Maus einen Wert angeklickt habe und einen anderen Wert reingeschrieben habe. Sobald ich die Maus vom Feld weggenommen habe (ohne etwas gedrückt zu haben, also weder Mausklick noch Tastatur) hat er den Wert gespeichert und ist weitergerückt, so wie er es ja soll. Nachdem ich HxD danach nch einmal neugestartet habe, konnte ich das Phänomen aber nicht mehr reproduzieren. Und so verhält sich der Editor von Delphi ja auch nicht - der ist ja auch Mausunabhängig ;).


mael - Sa 01.08.09 02:02

user profile iconHeiko hat folgendes geschrieben Zum zitierten Posting springen:
Und so verhält sich der Editor von Delphi ja auch nicht - der ist ja auch Mausunabhängig ;).

Neues Delphi-Projekt. Klicke Objektinspektor (=Eigenschafteneditor) an und aktiviere ClientWidth. Trage neuen Wert ein und klicke auf andere Zeile im Objektinspektor oder eine andere Form an (Enter ist nicht nötig). Der Wert wird übernommen. Also mausabhängig bzw. fokusabhängig.

Wo ist jetzt der Unterschied?

Edit:
user profile iconHeiko hat folgendes geschrieben Zum zitierten Posting springen:
Sobald ich die Maus vom Feld weggenommen habe (ohne etwas gedrückt zu haben, also weder Mausklick noch Tastatur) hat er den Wert gespeichert und ist weitergerückt, so wie er es ja soll.

Ach so, du meinst du hast die Maus nur wegbewegt und dann hat er den Wert übernommen? Das wäre natürlich ein Fehler.


Heiko - Sa 01.08.09 02:07

user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
Ach so, du meinst du hast die Maus nur wegbewegt und dann hat er den Wert übernommen? Das wäre natürlich ein Fehler.

Genau ;)


mael - Sa 01.08.09 02:21

user profile iconHeiko hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
Ach so, du meinst du hast die Maus nur wegbewegt und dann hat er den Wert übernommen? Das wäre natürlich ein Fehler.

Genau ;)
Die Teile "so wie er es ja soll" war in dem Satz mißverständlich, sowie der Delphi-Editor ist "Mausunabhängig" (der Delphi-Editor reagiert ja auf Mauseingaben), daher.

Ich habe das mit dem Weiterrücken erstmal deaktiviert, und einen kleinen Fehler behoben.


uall@ogc - Sa 01.08.09 11:01

Hi mael, die neue Version ist super. Folgendes Feature wäre noch nett: Kannst du unter Ergebnisse noch eine weitere Leiste z.B. Dateninspektor hinzufügen, bei dem man dann per Drag&Drop die einträge vom Datenisnpektor (mit offset + hex + interpretierten Wert) reinziehen kann?


mael - Sa 01.08.09 16:11

user profile iconuall@ogc hat folgendes geschrieben Zum zitierten Posting springen:
Folgendes Feature wäre noch nett: Kannst du unter Ergebnisse noch eine weitere Leiste z.B. Dateninspektor hinzufügen, bei dem man dann per Drag&Drop die einträge vom Datenisnpektor (mit offset + hex + interpretierten Wert) reinziehen kann?

So wie überwachte Werte im Delphi-Debugger? Ich könnte mir vorstellen, dass man das als Lesezeichen implementiert und dabei dann noch den Datentyp aus dem Dateninspektor übernimmt.


uall@ogc - Sa 01.08.09 17:39

Genau, und selbst definierbare Records wären noch nett. Dafür hab ich schonmal Code auf der Arbeit geschrieben. Müsste nur noch ein Parser her. Inwieweit ich den Code verwenden kann muss ich erst fragen, falls denn Interesse deinerseits besteht.


mael - Mo 03.08.09 15:53

Für die Strukturansicht habe ich schon einen Prototyp, danke.


mael - Fr 14.08.09 21:09

Ein paar Änderungen:


Bitte um Feedback, besonders zur Markierung.

Download: http://mh-nexus.de/downloads/HxDAlpha.zip


Heiko - Fr 14.08.09 21:14

Also das mit der Umrahmung gefällt mir so :zustimm:

Was mir aber aufgefallen ist:



mael - Fr 14.08.09 21:31

@abgeschnittene Buchstaben:
Liegt an ClearType/Schriftenglättung, weil da die Breiten nicht ganz richtig berechnet werden. Muß ich noch rausfinden wie man das korrigieren kann.

Zitat:
Jede zweite Zeile schwächere Farbwerte für die Hexwerte zu nehmen sieht irgendwie komisch aus. Wie wäre es nach jeder 4. Spalte, sofern es noch eine Folgespalte gibt, eine Hellgraue Hilfslinie zu ziehen (statt der helleren Schriftfarbe)?

Also die Farben wird man einstellen können (und somit auch abstellen). Außerdem ist die "Häufigkeit" der Farbwechsel abhängig von der Bytegruppengröße (Menü Ansicht oder Optionen). Trennlinien würden dann zu stark stören wenn sie alle paar Zeichen kommen.


uall@ogc - Di 08.09.09 15:38

Ich wollte gerade in Messdaten einen Datensatz (Record) verdoppeltn dazu habe ich 0x60 Bytes markrkeirt + kopiert (strg+c) und dann am Ende der Markierung eingefügt (strg+v). Es wurden aber anschließend 0x68 Bytes eingefügt. Durch Rückgängig (Strg+Z) werde nur die 0x60 Bytes gelöscht, die anderen bleiben da.

Warum wird eigentlich kein Extended angezeigt sondern nur Single und Double? Genau davon wollte ich mir die Daten mal anschauen lassen... :/


Delphi-Laie - Do 03.12.09 22:46

Hallo mael!

Dein Hexeditor sticht hervor, das muß ich sicher nicht noch sonderlich detaillieren.

Eine Klitzekleinigkeit fiel mir auf: Bei der Analyse wird das Maximum expliziert, nicht jedoch das Minimum. Das zu ergänzen dürfte kaum einen nennenswerten Aufwand bedeuten, weil es der Ermittlung des Maximums adäquat sein dürfte.

Weiterhin viel Spaß und Erfolg mit diesem Deinem Programm!


Yogu - Fr 04.12.09 15:59

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Eine Klitzekleinigkeit fiel mir auf: Bei der Analyse wird das Maximum expliziert, nicht jedoch das Minimum. Das zu ergänzen dürfte kaum einen nennenswerten Aufwand bedeuten, weil es der Ermittlung des Maximums adäquat sein dürfte.

Bring das denn was? Dass man das Maximum ausschließen kann, halte ich für sinnvoll, weil in einer Datei mit sehr vielen Nullen dieser Balken überdurchschnittlich hoch ist und die Ansicht verschlechtert. Aber der kleine Balken macht doch nichts, oder?


C3rb3ruS1987 - Do 11.03.10 12:48

Hi erstmal...

gibt es auch eine möglichkeit 64bit programme auf windows 7 damit zu laden...

denn jedes mal wenn ich das versuche hängt sich das program auf...

danke erstmal für jede antwort^^


Boldar - Do 11.03.10 15:03

Da Delphi 32 bit ist, wird das wohl schwer, solange nicht Lazarus benutzt wurde.


mael - Do 11.03.10 20:16

Ich arbeite gerade an einer Version die das ermöglicht.
Vorgehensweise:

Über IPC(Interprozesskommunikation) tauschen HxD.exe und die 64-Bit EXE Daten aus (also den Teil des Speicher des 64-Bit Prozesses der im RAM-Editor gelesen/geschrieben wird).

Der Vorteil: Die GUI bleibt in Delphi und nur ein relativ kleiner Teil muss nach FPC und 64-Bit portiert werden.

Ist aber ein bisschen aufwändiger weil einige Teile vom RAM-Editor jetzt von der GUI getrennt werden müssen und die Klassen per IPC kommunizieren müssen. Erste Tests zeigen aber das es prinzipiell funktioniert :)


DelphiProgrammer97 - Do 01.04.10 14:43

hmm sorry für die dumme frage aber bedeutet die 3. Funktion das ich meinem Computer vortäuschen kann, das er mehr RAM besitzt als er wirklich hat - sowas bräuchte ich nämlich :)


Hidden - Do 01.04.10 14:51

Hi :)

Welche dritte Funktion, kannst du die Stelle vielleicht noch gerade zitieren? :lupe:
Ansonsten kannst du wahrscheinlich auch einfach mehr RAM kaufen, ist ja doch relativ billig heute. Ich habe z.B. gleich 8GB, die ich nur mit Mühe überhaupt absichtlich voll kriege..
"Mehr RAM vorgaukeln" würde ja auf die Auslagerungsdatei herauslaufen, und das sollte ja standardmäßig gehen. Sonst beschreibe doch mal, was du vor hast.

lg,


DelphiProgrammer97 - Do 01.04.10 15:01

na fein wenn das billig ist dann mach ich das so - mein rechner hat zwar 3,2 GhZ und ne gute grafikkarte aber nur 1GB RAM


Jakob_Ullmann - Do 01.04.10 16:31

Dann solltest du das unbedingt ändern. So 2 bis 4 GB RAM sollte man schon haben. Bei 1GB kommt man schon an seine Grenzen.


Robert.Wachtel - Do 01.04.10 16:50

user profile iconDelphiProgrammer97 hat folgendes geschrieben Zum zitierten Posting springen:
[...] sowas bräuchte ich nämlich :)

http://www.downloadmoreram.net/ :mrgreen:


DelphiProgrammer97 - Do 01.04.10 17:45

ist das jetzt ein aprilscherz oder so? der downloadet nichts...


Gausi - Do 01.04.10 17:52

user profile iconDelphiProgrammer97 hat folgendes geschrieben Zum zitierten Posting springen:
ist das jetzt ein aprilscherz oder so? der downloadet nichts...

Ich hoffe mal schwer, das das grade ein Aprilscherz war. Wie soll denn mehr RAM zum Runterladen funktionieren? Die Netzwerkkarten übertragen nur Elektronen, wo sollen denn da die ganzen Protonen für die Silizium-Atomkerne im RAM-Riegel herkommen? :roll:

Edit: Aber bitte zurück zum Thema. Hier geht es um Hxd, nicht um mehr RAM. ;-)


BenBE - Di 04.05.10 10:37

Mir würde eine "Portable"-Version von HxD gefallen. Weiß nicht, wieviel Aufwand das machen würde?


Heiko - Di 04.05.10 10:41

Gibt es auf der Website doch schon?


BenBE - Di 04.05.10 10:45

k, übersehen. Hab nicht weiter runtergescrollt. Warum nicht das im Seitenlayout so aufbauen, dass man Setup und Portable in einer Zeile hat.

Dafür aber was anderes: 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. Macht WinHex z.B. so zur Übersicht.

Ferner: Für die Statistik wären die rel. und abs. Häufigkeiten der einzelnen Bytewerte noch als Tooltip oder direkte Anzeige interessant.


baka0815 - Di 04.05.10 11:56

Geiles Tool und mein Lieblings-Hex-Editor unter Windows.

Unter Linux nutze ich Bless [http://home.gna.org/bless/], bei dem ich allerdings ein paar Dinge vermisse, die in HxD enthalten sind.

Was ich mir von Bless für HxD wünschen würde ist die Markierung und Hervorhebung von Bytes. Wenn ich unter Bless FF selektiere, dann hinterlegt er alle Vorkommnisse von FF in der Datei (oder zumindest im sichtbaren Bereich). So kann man Wiederholungen oder End-Kennungen recht einfach erkennen (Screenshot [http://home.gna.org/bless/images/bless01.png]).


Hidden - Di 04.05.10 13:24

Anekdote: Mein Info-Lehrer hat mir letztens einen tollen, neuen Hex-Editor gezeigt. :mrgreen: Er hat so lange davon erzählt, dass ich mich nicht länger halten konnte, und ihm vor versammelter Klasse den Nick des Programmierers genannt habe :rofl: (steht ja auch unter Info, konnte er also kontrollieren)


Jakob_Ullmann - Di 04.05.10 18:28

Wirklich ein Super Hex-Editor!! Schade nur, dass es den nicht für Linux gibt.. :(


mael - Mo 06.01.14 09:15

Ich habe einen Blog begonnen und dort beschrieben wie man RAM/den Speicher eines anderen Prozesses unter Windows ausliest.

Beschreibung und Beispielquelltext: http://blog.mh-nexus.de (Englisch)

Vielleicht interessiert es ja ein paar Leute :)


mael - Di 01.03.16 15:52

Es ist endlich soweit, die HxD 2.0 Beta ist da!

Der einzige offene Punkt ist, dass besonders bei Festplatten, das Scrollen etwas langsam sein kann -- dies wird noch bis zur Stable behoben.

Wenn ihr Fehler findet könnt ihr sie beh.. berichten :D. Es soll ein gutes (aber auch baldiges) Release sein.

Es ist sehr viel Arbeit und Sorgfalt eingeflossen darin den Code durchzusehen und vieles zu überarbeiten und zu verbessern. Viel Arbeit wurde auch in das "Tooling"/die Werkzeuge gesteckt, da ich z.B. ein eigenes Übersetzungsprogramm habe (Babelfish) und das ein großes Codereview benötigt hat um sicherzustellen dass es mit allen Änderungen von Delphi 7 zu XE3 umgehen kann.

Von 64-Bit bis Unicode war das nicht ganz einfach, ich musste auch Code aus dem XN-Resource-Explorer anpassen (zur Resourcenverwaltung/updaten) und korrigieren. Außerdem gab es viele Innereien der VCL wo ich Patches hatte für kleine störende Fehler, Änderungen in Windows, usw.
Zwischenzeitlich hatte ich auch versucht per Freepascal eine 64-Bit Version zu machen als Delphi noch kein 64-Bit konnte, und dafür IPC-Code geschrieben (mit eigener IDL etc.), der aber schnell genug sein musste um Daten zu streamen. Aber das hat die ganze Architektur etwas komplex gemacht. Genauso wie die eigene Implementierung für Unicode, die natürlich mit den neuen Delphiversionen nicht kompatibel war.
Mit Delphi XE3 fing dann das große Umschreiben, Anpassen, und Fertigstellen von Features an.
Vieles davon ist also unter der Haube passiert und nicht so sichtbar.

Wegen all den Prüfungen/Überlegungen gehe ich davon aus, dass die Fehler die sich eventuell zeigen werden, sich auch ohne allzu großen Aufwand beheben lassen.

Was ist (sichtbar) neu?
Es gibt sicher noch Teile die ich vergessen habe, und die im langen SVN-Log seit dem letzten Release stehen.
Hier die Wichtigsten/Auffälligsten:


Hier der Download der deutschen Portable-Version: http://mh-nexus.de/downloads/HxD20BetaDeu.zip


Martok - 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.


jaenicke - Di 01.03.16 17:07

Ja, die Strukturanzeige ist das einzige, das ich wirklich sehr vermisse. ;)


Delphi-Laie - 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 - 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 - Mi 02.03.16 11:02

Ich verwenden den HxD schon seit 2009. Wirklich super.

Hansi


mael - 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: http://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 - 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 - 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.

https://mh-nexus.de/downloads/HxDSetup.zip


mael - Do 30.03.17 16:51

Es gab eine kleine Fehlerkorrektur für das Speichern. Gleicher Link wie oben.


user32 - 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 - Di 31.10.17 16:00

Hallo.

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

http://mh-nexus.de/downloads/HxDSetup.zip


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


Delphi-Laie - 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. - Di 31.10.17 22:38

Im Anfangsposting dieses Threads ist eine Liste mit Downloads [https://mh-nexus.de/de/downloads.php?product=HxD] verlinkt, wenn man dort nach unten scrollt, gibt es auch portable Versionen.


mael - 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 [https://mh-nexus.de/de/downloads.php?product=HxD] verlinkt, wenn man dort nach unten scrollt, gibt es auch portable Versionen.

Die Downloads dort sind noch die Version 1.7.7.0.


Symbroson - 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


mael - 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:
https://blog.mh-nexus.de/2014/12/how-to-understand-raw-data-in-a-hex-editor/


Nersgatt - 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.


Delphi-Laie - 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.


mael - 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 [https://de.wikipedia.org/wiki/Spieldose] 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.


Symbroson - 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


mael - Mi 01.11.17 18:13

user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:

Die Idee/Notwendigkeit kam also noch vor Assembler - das ist heftig :shock:

Und es ist immernoch notwendig und wird es bleiben.

Wie erwähnt, denke an Imageprocessing. Im Endeffekt ist das nur ein großes Array von Zahlen, die man in ein anderes Array umwandeln muss.
Bei KI/machine learning ist das auch nicht viel anderes. Da hat man große Eingabevektoren (Zahlenarrays) die man schrittweise transformiert.


Holgerx - Mi 01.11.17 19:12

Hmm..

Und mal eine praktische Anwendung für Spieler:
Wenn Du anfängst, ein bisschen zu Cheaten, dann schaust Du dir die Spielstände von Spielen mit nem Hex-Editor an und kannst dort z.B. Atribute erhöhen..

Auch zum Erstellen von SaveGame-Editoren ist ein Hex-Editor notwendig, um die richtigen Bytes zu identifizieren..

Sprich er wird für alles gebraucht, wo Daten ohne das eigentliche Programm Byte-Weise 'verändert' werden sollen ;)


Delphi-Laie - Mi 01.11.17 23:27

user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Die Idee/Notwendigkeit kam also noch vor Assembler - das ist heftig :shock:


Dafür waren die damaligen Programme aus heutiger Sicht minimalistisch. Z.B. gab es bei / auf den Bildschirmen ausschließlich Textausgaben.

Eine elende, fehlerträchtige, langwierige Fummelei war die damalige Programmiererei dennoch. Aber ist sie es heutzutage nicht genaugenommen auch noch?

Auch gab es keine persönlichen Computer ("Personal Computer"), sondern Großrechenanlagen (groß i.S.v. Masse und Volumen, nicht in bezug auf Rechenleistung). Rechnerzeiten mußten gebucht - und ggf. auch bezahlt - werden. Programme wurden mit Lochstreifen und/oder Lochkarte vorbereitet und dann zur Mietzeit die Großrechner damit "gefüttert". Die Ausgaben waren oft genug auch nur Lochstreifen/-karten, evtl. auch Bildschirm und/oder Drucker?! Und dann mußte das alles in Ruhe ausgewertet, "nachbereitet" werden, denn auch damals schon war der erste Versuch nur selten fehlerfrei.

Erlebt habe ich das alles nicht mehr, ich kenne es nur aus Schilderungen.

Meine Güte, was waren das damals für Verrenkungen und Klimmzüge.


OlafSt - Do 02.11.17 01:08

Bildschirme ? Ich kenne das noch als eine 8er-Reihe von LEDs... Da mußte die Adresse im RAM per Kippschalter eingestellt werden, das zu schreibende Hi- oder Lo-Nibble (!) ebenfalls per Kippschalter und geschrieben wurde es dann per Taster endgültig ins RAM.

Dann stellte man die Startadresse ein und stellte den Kippschalter von PROG auf RUN um und das Programm lief... Hoffentlich.

So wurde mal programmiert und natürlich mußte man dazu den kompletten Befehlssatz des Prozessors auswendig können (als Hexcode, nicht als Mnemonic) mit samt seinen noch sehr wenigen Adressierungsarten. Lochkarten waren da ja schon Massenspeicher ;) Aus dieser Zeit stammte noch das anerkennende Nicken, wenn man am Ende des Tages 50 (!) Befehle fertig programmiert hatte und das auch noch funktionierte. Da wurde auch nicht um jedes Byte gekämpft, sondern um jedes Bit, denn 1K Speicher kostete damals abertausende D-Mark, da war man froh, wenn man 256 Bytes zur Verfügung hatte.

Die Erfindung der Bildschirmausgabe erleichterte das ganze Programmieren ungeheuer, die Erfindung von Assembler (die heute bekannten Mnemonics, die dann in Hexcodes übersetzt wurden) machte das ganze dann zum Kinderspiel - verglichen mit den oben geschilderten Zuständen.

Wenn ich dann heute sehe, das die Programmierer von der Uni kommen und ihr größtes Programm hatte 3000 Zeilen, davon 30% Kommentare... Da lächle ich innerlich. Aber nur innerlich. Denen darf man nicht erzählen, das das von der Länge her bestenfalls ne kompakte Utility-Routine ist.


Christian S. - Do 02.11.17 11:11

Könntet Ihr bitte zum Thema zurück kommen? :wink:


jaenicke - Do 02.11.17 13:19

Ich schlage mal vor ab hier [https://www.entwickler-ecke.de/viewtopic.php?p=709238#709238] abzutrennen. Dann kann user profile iconmael, wenn er das möchte, den anderen Thread im Eingangspost verlinken. So findet die Frage und die Antworten darauf sonst ja niemand, der evtl. die gleiche Frage hat.


galagher - Sa 04.11.17 09:51

Hallo!

@user profile iconmael:

DOS Datum = DiskOperatingSystem Datum, korrekt?

Ist das dann beabsichtigt so?
//Edit: Und OLETIME 30.12.1899? Was hat das zu bedeuten?


mael - Mo 06.11.17 00:11

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Hallo!

@user profile iconmael:

DOS Datum = DiskOperatingSystem Datum, korrekt?

Ist das dann beabsichtigt so?
//Edit: Und OLETIME 30.12.1899? Was hat das zu bedeuten?

Was irritiert dich denn am Ergebnis? Es gibt verschiedene Datums/Zeitdatentypen, und die werden angezeigt.

OLETIME ist ein Windows/COM-Datentyp.
DOS-Date/Time wird z.B. im FAT-Dateisystem verwendet.


galagher - Mo 06.11.17 21:12

user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
Was irritiert dich denn am Ergebnis?
Das Ergebnis!

user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
Es gibt verschiedene Datums/Zeitdatentypen, und die werden angezeigt.
Na dann!

Jedenfalls: Ein ganz besonderes Programm, war mir schon oft sehr nützlich, möchte es nicht missen! :zustimm: Grossartig!


mael - Mo 06.11.17 21:53

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
Was irritiert dich denn am Ergebnis?
Das Ergebnis!

Aber warum? Scheint irgendwas falsch zu sein, und wenn was genau?

Zitat:
Jedenfalls: Ein ganz besonderes Programm, war mir schon oft sehr nützlich, möchte es nicht missen! :zustimm: Grossartig!

Danke.


galagher - Mo 06.11.17 22:26

user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
Aber warum? Scheint irgendwas falsch zu sein, und wenn was genau?
Nun, OLETIME 30.12.1899, FILETIME 26.04.9015 09:58:07, DOS Uhrzeit & Datum 04.02.1996 15:02:16 usw., was bedeutet das? Da du die Datei readme.txt ja nicht am 26. April des Jahres 9015 erstellt hast, (wenn doch, wie hast du das gemacht, oder wie wirst du das machen? :lol: ) bezeichnet 9015 also nicht neuntausendfünfzehn Jahre n.Chr., und auch nicht den 26. April. dieses Jahres!

Also was dann?


mael - Di 07.11.17 00:55

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Nun, OLETIME 30.12.1899, FILETIME 26.04.9015 09:58:07, DOS Uhrzeit & Datum 04.02.1996 15:02:16 usw., was bedeutet das? Da du die Datei readme.txt ja nicht am 26. April des Jahres 9015 erstellt hast, (wenn doch, wie hast du das gemacht, oder wie wirst du das machen? :lol: ) bezeichnet 9015 also nicht neuntausendfünfzehn Jahre n.Chr., und auch nicht den 26. April. dieses Jahres!

Also was dann?


Der Dateninspektor interpretiert den Inhalt einer Datei, nicht die Metadaten wie Erstellungsdatum, Änderungsdatum, Besitzer oder Ähnliches.

Der Dateninspektor interpretiert also den Inhalt einer Datei, ab der Cursorposition und bis zu einer Maximallänge die vom Datentyp abhängig ist. In deinem Bild war der Cursor am Anfang der Datei "Readme.txt". Für die Int32 Zeile im Dateninspektor werden daher die 4 ersten Bytes der Datei genommen und als Dezimalwert interpretiert (wobei Little Endian Bytereihenfolge angenommen wird).
Wenn du die aktive Zeile im Dateninspektor änderst, wirst du sehen dass ein Rahmen im eigentlichen Hexeditor-Steuerelement sich anpasst. So weiß man welche Bytes gerade interpretiert/übersetzt werden. Wechsle mal zwischen Int8, Int16, Int32, Int64 hin und her um den Effekt gut zu sehen.

OLETIME und FILETIME interpretieren die gleichen 8 Bytes am Dateianfang "48 78 44 20 48 65 78 20". Aber da sie Datum/Zeit unterschiedlich kodieren, unterscheidet sich auch das Interpretationsergebnis. Genauso verhält es sich mit DOS Datum&Uhrzeit, nur dass dort nur die ersten 4 Bytes beachtet werden (weil das eben das Datenformat ist das damals von den DOS-Entwicklern gewählt wurde).

Es werden also die Bytes ab der aktuellen Cursorposition interpretiert und nicht die Metadaten wie Erstellungsdatum einer Datei. Diese Metadaten werden außerhalb der Datei gespeichert.

Würde man in den Disk-Editor gehen und die richtige Position für diese Metadaten auf der Festplatte kennen (wo das ist hängt vom Dateisystem ab), würde man auch den Dateninspektor verwenden können um die entsprechenden Bytes zu dekodieren und z.B. das Erstellungsdatum einer Datei zu erfahren.

In normalen Programmen vermeidet man aber den direkten Zugriff auf Datenträger und verwendet API-Funktionen wie GetFileAttributesEx() bzw. Delphis FileAge() um diese Informationen abzufragen.


Oh, und warum sind die Datumswerte so seltsam? Naja, die ersten 8 Bytes sind eigentlich Text, nämlich "HxD Hex ". Interpretiert man Bytes als etwas anderes als sie eigentlich kodieren, dann können seltsame Ergebnisse herauskommen. Ist nicht anders als wenn ich in Pascal eine Int32-Variable zu einem Single caste (Typumwandlung), und dann komische Werte bekomme.

Jede Zeile im Dateninspektor zeigt nur die Interpretation der Bytes an der aktuellen Cursorposition an, unter der Annahme, dass die Bytes auch tatsächlich diesen Datentyp haben.

Ich hoffe das klärt das Problem, auch wenn ich etwas weit ausgeholt habe.


galagher - Di 07.11.17 08:59

user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
Ich hoffe das klärt das Problem, auch wenn ich etwas weit ausgeholt habe.
Ok, es werden also Daten als Uhrzeit und Datum interpretiert. Danke!

Erst gestern benötigte ich HxD wieder: Damit kann man auch noch so lange Strings bearbeiten, mancher (jeder?) Texteditor schneidet irgendwann den String einfach ab - stellt ihn nicht mehr dar oder kürzt ihn tatsächlich, ich weiss es nicht. jedenfalls wird die Datei zerstört, wenn man das dann so speichert. Nicht so mit HxD!


BenBE - Mi 20.12.17 16:27

Grad mal das HxD-Setup vom Oktober diesen Jahres aktualisiert, nachdem die 1.7.7.0 mit Full-HD auf Grund der fehlenden Gruppierung mit 64 Spalten je Zeile schlecht nutzbar war.

Dabei sind mir mehrere Sachen aufgefallen (alles eher Kleinigkeiten):
- Für die Alternativ-Hex-Farbe wäre das Festlegen eines eigenen Hintergrundes zu überlegen (ich vermute, er nimmt den der Primärfarbe).
- Beim Vergleichen zweier Dateien wäre ein Modus zum Markieren aller Änderungen in den beiden Dateien von Interesse, so dass man nicht jedes einzelne Byte einzeln durchsteppen muss mit F6.
- Die Vergleichsoperation auf mehreren Bytes ausführen (also 2 oder 4 Byte als Gruppe betrachtet) wäre gerade beim Vergleich von entsprechenden Tabellen manchmal sehr von Vorteil.
- Zuweisung der Alternativ-Farbe nicht an die Byte-Gruppen-Größe koppeln, sondern ggf. individuell einstellbar (Default darf gern die Kopplung beider Werte sein).

Ansonsten hat sich seit der 1.7.7.0 doch einiges getan. :zustimm: :zustimm: :zustimm:


mael - Do 17.01.19 16:41

HxD 2.2 ist verfügbar.

Download: https://mh-nexus.de/en/downloads.php?product=HxD20
Changelog: https://mh-nexus.de/en/hxd/changelog.php#v_2.2.0.0


mael - So 12.05.19 15:57

Es gibt nun ein Plugin-Framework um den Dateninspektor von HxD zu erweitern:
https://github.com/maelh/hxd-plugin-framework

Wem es gefällt kann gerne einen Stern verleihen oder es forken, damit mehr Leute es sehen.


ssb-blume - Mo 13.05.19 09:35

Hallo
ich verwende HxD schon seit vielen Jahren und bin immer sehr zufrieden gewesen.

Eine Bitte hätte ich noch:
Ist es möglich die Umrechnung von 3 Bytes als int24 auch noch darzustellen?
Ich weis, es ist nicht einfach.
Ich mache viel mit wav-Dateien, die haben manchmal diese 24 bit-Auflösung und wenn man da einen Eintrag sucht...

Danke!
Hansi


jaenicke - Mo 13.05.19 10:32

Sollte ein Plugin mit dem neuen Framework nicht genau das leisten können? :wink:


mael - Mo 13.05.19 18:37

Ja, eigentlich wäre das Plugin-Framework dafür geeignet.

Sind in dem WaveFile-Format 24-Bit-Integer dicht aneinander gepackt, ohne Füllbytes?

Hast du eine einfache WAVE-Datei als Beispiel?


ssb-blume - Di 14.05.19 15:56

Danke für die schnelle Antwort,

also: keine füll-bytes. Die Daten beginnen irgendwann mit dem Text "data", dann 4Byte Länge der Daten und danach die Daten.
siehe Anhang

---wav datei ist hier verboten, deshalb Dateierweiterung geändert!

Übrigens, Dein Property-Editor, da könnte man ja noch verschiedene andere Dateien von Windows (wie auch wav usw.) auseinander nehmen.
im Internet (Wiki) staht ja alles.

Hansi

Moderiert von user profile iconNarses: Dateianhang als ZIP gepackt wieder hochgeladen.


jaenicke - Mi 15.05.19 06:38

user profile iconssb-blume hat folgendes geschrieben Zum zitierten Posting springen:
Übrigens, Dein Property-Editor, da könnte man ja noch verschiedene andere Dateien von Windows (wie auch wav usw.) auseinander nehmen.
Das wäre auch mein Wunsch komplexere Strukturen auseinanderzunehmen.

Denn aktuell habe ich dafür kleine eigene Tools, aber die kommen natürlich bei Weitem nicht an HxD heran. Ich werde mir auch das Plugininterface einmal anschauen. Wünschen würde ich mir, dass ich quasi z.B. eine Recorddefinition in Pascal parsen und dann mit Hilfe des Interfaces auf die Binärdaten werfen kann. ;-)


mael - Do 23.05.19 19:20

Strukturdefinitionen sind geplant und ich hatte einige Ansätze. Fertiges gibt es bisher nicht, aber ist definitiv als Erweiterung der Dateninspektors geplant.

P.S.: Int24/UInt24 sind jetzt in der Entwicklerversion drin.


ssb-blume - Fr 24.05.19 08:29

Vielen Dank für die schnelle Implementation!

Und wo ist der Download?
(ich meine 1. Post: siehe letzten Post)

Hansi


mael - Do 30.05.19 11:57

Es ist nur die Entwicklerversion, daher gibt es kein öffentliches Release (anderes ist noch im Fluss).

Wenn es dringend ist, kann ich dir aber einen Link schicken.


ssb-blume - Fr 31.05.19 07:42

OK, ich warte.
Hansi


mael - Mo 03.06.19 07:53

https://mh-nexus.de/downloads/HxDDevelDeu.zip

Hier ist die aktuelle Entwicklerversion, falls du Testen möchtest. Die enthaltene Textdatei ist auch nötig, ist wie gesagt noch eine Entwicklerversion, und nicht alles fertig.


mael - Mo 03.06.19 07:55

Irgendwie kann ich meinen Beitrag nicht mehr editieren.

Ich wollte nach anfügen. Der Int24 Datentyp sollte korrekt funktionieren, auch wenn es eine Entwicklerversion ist.


ssb-blume - Mo 03.06.19 08:54

Danke, habe HxD geladen.
Das Navigieren ist zwar schön, wenn man den Start weiß, aber dann müßte man noch den Inhalt haben.

Am Besten, im Dateninspektor noch eine Spalte mit diesem Wert einfügen.

Frage: Was wird nun aus uns allen, wen die Entwicklerecke schließt????

Hansi


ssb-blume - Mo 03.06.19 08:58

Au Backe, habe doch nicht richtig angesehen. Wert ist ja da!
Bitte nur meine Dank akzeptieren, den Rest wegschmeißen.

Hansi


mael - Mo 03.06.19 08:59

user profile iconssb-blume hat folgendes geschrieben Zum zitierten Posting springen:
Das Navigieren ist zwar schön, wenn man den Start weiß, aber dann müßte man noch den Inhalt haben.

Am Besten, im Dateninspektor noch eine Spalte mit diesem Wert einfügen.

Welchen Inhalt? Ich bin mir nicht ganz sicher was du meinst, aber der Int24-Eintrag erscheint ganz unten. Falls nicht, Rechtsklick auf Dateninspektor, Optionen..., und dort Zurücksetzen drücken.

Die Navigation ist um array-artig durch Daten zu gehen, ohne diese als festes Array zu definieren. Bzw. um zum Ende eines Datentyps zu springen. Besonders bei variablen Typen wie x86 Assembly oder UTF-8 Codepoints nützlich.

Da die EE wohl in absehbarer Zeit schließt: Man kann mich in Zukunft auch weiter über meine Webseite ( https://mh-nexus.de ) erreichen, per Forum oder Mail, oder die Delphipraxis (je nachdem wie lange diese noch besteht).

Was die EE und die Community angeht wird es natürlich trotzdem schade sein :/


mael - Sa 06.07.19 17:09

Version 2.3 von HxD ist nun verfügbar.

Changelog [https://mh-nexus.de/en/hxd/changelog.php#v_2.3.0.0] und Download [https://mh-nexus.de/en/downloads.php?product=HxD20] befinden sich wie bisher auf meiner Seite.


mael - Fr 28.02.20 18:01

Version 2.4 von HxD ist nun verfügbar.

Changelog [https://mh-nexus.de/en/hxd/changelog.php#v_2.4.0.0] und Download [https://mh-nexus.de/en/downloads.php?product=HxD20] befinden sich wie bisher auf meiner Seite.


jaenicke - Sa 29.02.20 08:12

Danke dafür. :zustimm:

Ich habe das Pluginframework ausgecheckt, das Delphi-Beispiel kompiliert, die DLL in den Plugins-Ordner gelegt, aber dann kommt diese Meldung:
Zitat:
---------------------------
Hxd
---------------------------
Eine oder mehrere notwendige Funktionen werden nicht vom Plugin "C:\Program Files\HxD\Plugins\DataInspectorPluginExample.dll" exportiert.
---------------------------
OK
---------------------------


mael - Sa 29.02.20 11:21

Meine Vermutung wäre dass es ein Problem mit der "Bittigkeit" der DLL und HxD war. Es müssen beide 32 Bit oder 64 Bit sein. Wenn man sie mischt kommt diese Fehlermeldung.

Wäre natürlich schöner wenn eine klarere Fehlermeldung käme, aber probier mal ob es das Problem für dich löst. HxD sagt unter Hilfe|Info wieviel Bit es ist.


jaenicke - So 01.03.20 21:59

user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
Meine Vermutung wäre dass es ein Problem mit der "Bittigkeit" der DLL und HxD war. Es müssen beide 32 Bit oder 64 Bit sein. Wenn man sie mischt kommt diese Fehlermeldung.
Stimmt, daran hatte ich nicht gedacht. Danke.


Sinspin - Mo 02.03.20 08:09

Hallo,

wenn du die Plugins dynamisch lädst könntest Du vorher im dll/PE Header nachsehen ob es 32 oder 64 Bit ist.

Übrigens, HxD ist ein wirklich hilfreiches Tool was mir schon einige Male weitergeholfen hat.


galagher - Mo 02.03.20 21:12

user profile iconSinspin hat folgendes geschrieben Zum zitierten Posting springen:
Übrigens, HxD ist ein wirklich hilfreiches Tool was mir schon einige Male weitergeholfen hat.
Dem kann ich mich nur anschliessen! Unverzichtbar.


mael - Di 03.03.20 14:44

Vielen Dank für das Feedback :)


user profile iconSinspin hat folgendes geschrieben Zum zitierten Posting springen:
wenn du die Plugins dynamisch lädst könntest Du vorher im dll/PE Header nachsehen ob es 32 oder 64 Bit ist.

Habe ich direkt danach eingebaut und noch ein paar weitere Prüfungen (wird beim nächsten Mal mitveröffentlicht).


mael - Do 21.05.20 17:23

Ich arbeite seit einiger Zeit an UTF-8 Support und an Unicode-Text-Ausgabe. Das Thema, alleine das Fontrendering, ist erstaunlich komplex, besonders wenn man verschiedene Ausgabeformen für einen Hexeditor beachten muss, z.B. um Zeichen einzeln auszugeben und complex shaping (wie es von einigen nicht lateinischen Schriftsystemen verwendet wird) zu unterstützen bzw. selektiv zu deaktivieren.

Dann kommt noch die Färbung und die Mischung von verschiedenen Schriftarten, und variable Zeichenbreite bzw. Text in verschiedenen Schreibrichtungen dazu.

Ein Teil davon ist hier dokumentiert https://forum.mh-nexus.de/viewtopic.php?f=4&t=1004 falls jemand einen Blick reinwerfen will.

Jedenfalls wird wohl die nächsten Wochen eine Alpha-Version erscheinen. Eventuell auch zuerst ein allgemeines Textsteuerelement bevor es im Hexeditor erscheint.

Sinn ist es z.B. auch #0 Zeichen eingeben zu können oder einzelne Zeichen wie ein kombinierendes Diaresis (wie Umlaut, nur auf beliebigen Zeichen). Dadurch kann der Dateninspektor dann wirklich alle Chars richtig anzeigen, bzw. Strings die #0 oder Steuerzeichen enthalten. Steuerzeichen werden dann so ähnlich wie in SciTE oder Notepad++ angezeigt.

Im Laufe der Zeit habe ich auch viel von der umfassenden Unicode-Dokumentation gelesen, um rauszufinden wo sichere Grenzen sind beim Segmentieren von Byte-Streams, so dass die Textausgabe nicht variiert, je nach länge des gelesenen Abschnitts (kann z.B. bei BiDi-Texten, bzw. durch formatierenden Steuerzeichen, aber auch durch kombinierende Zeichen ergeben).

Dann habe ich mich mit Schriftarten beschäftigt und wie sie aufgebaut sind, die OpenType-Dokumentation gelesen, um feinere Details von Uniscribe (API zum Ausgeben von Unicode-Text, mit mehr Kontrolle) zu verstehen. Aber auch das detaillierte Mapping von Chars nach Glyphs, habe ich mir angesehen und damit experimentiert. Es ist keine 1-zu-1-Abbildung ist, sondern wird durch Ligaturen, positionssensitive Formen (z.B. Arabisch), oder Umordnung und kontextuelle Ersetzung von Zeichen deutlich komplexer als was man normalerweise von einem Hexeditor bzw. eine einfachen Zeichentabelle erwartet.

Zusammen mit einer sinnvollen Abbildung zwischen Bytes und Zeichen, die auch nicht 1-zu-1 ist, sind viele kleine Details auch bei der Benutzerführung wichtig, damit man trotz dieser Änderung den Hexeditor noch "versteht".

Erstaunlicherweise, ist eine richtige und stabile Textausgabe recht kompliziert, besonders wenn man nicht wie bei Texteditoren von sinnvollen Unterteilungen wie Zeilen ausgehen kann.

Das Feature wird viel kleiner wirken als der Aufwand dahinter, es wird halt Text sein, nur jetzt in allen möglichen Sprachen die Unicode unterstützt. Trotzdem freue ich mich ein bisschen wenn es endlich soweit ist :)


Gausi - Fr 22.05.20 08:35

user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
Das Feature wird viel kleiner wirken als der Aufwand dahinter, es wird halt Text sein, nur jetzt in allen möglichen Sprachen die Unicode unterstützt.

Wenn man gelegentliche Nachrichtenmeldungen verfolgt, dass die Messenger von *Egalwem* abstürzen können und dabei das ganze Betriebssystem mit runterreißen können (bei Smartphones), wenn man bestimmte Zeichenfolgen verschickt, dann bekommt man auch als interessierter Laie eine kleine Vorstellung davon, dass das irgendwie nicht ganz so einfach sein kann. :wink:

Das Vorhaben hört sich sehr interessant an. Ob dieser Umfang noch zum eigentlichen Aufgabenbereich eines Hex-Editors gehört, mag dahingestellt sein. Aber HxD hat ja ohnehin schon ein paar Features, die darüber hinausgehen. :zustimm:

Hab ich bestimmt schonmal geschrieben: Danke für das tolle Stück Software. Ich nutze das regelmäßig, wenn ich Probleme beim Verarbeiten von Binärdateien habe, aus denen ich Texte rausziehen muss, gerne auch in verschiedenen Kodierungen.

Das bekloppteste, das ich in dem Kontext mal gesehen habe war die Kodierung "zeichenweise nullterminiert UTF-16 mit BOM". Also 6 Byte pro Zeichen. Für englischen Text. :autsch: :lol:


jaenicke - Fr 22.05.20 12:41

user profile iconmael hat folgendes geschrieben Zum zitierten Posting springen:
Ich arbeite seit einiger Zeit an UTF-8 Support und an Unicode-Text-Ausgabe. Das Thema, alleine das Fontrendering, ist erstaunlich komplex, besonders wenn man verschiedene Ausgabeformen für einen Hexeditor beachten muss, z.B. um Zeichen einzeln auszugeben und complex shaping (wie es von einigen nicht lateinischen Schriftsystemen verwendet wird) zu unterstützen bzw. selektiv zu deaktivieren.
Das brauchte ich zwar noch nicht, aber es hört sich interessant an. :)

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Hab ich bestimmt schonmal geschrieben: Danke für das tolle Stück Software. Ich nutze das regelmäßig, wenn ich Probleme beim Verarbeiten von Binärdateien habe, aus denen ich Texte rausziehen muss, gerne auch in verschiedenen Kodierungen.
Ein Riesenvorteil gegenüber anderen Hexeditoren ist vor allem die Geschwindigkeit. Wenn andere dann erst einmal mehrere Sekunden zum Starten brauchen, nervt das schon sehr. HxD startet in wenigen Millisekunden, das ist echt sehr gut.

Was ich mittlerweile gemacht habe ist, dass ich nun einen Bereich kopieren und diesen dann in einem eigenen Tool auf eine Delphi-Recordstruktur werfen kann. Mit der Ergänzung habe ich alles, was ich bei einem Hexeditor brauche.


mael - So 17.01.21 18:52

Die Version 2.5 ist jetzt verfügbar. Offiziell steht sie noch nicht auf meiner Seite, weil ich noch auf einige Übersetzungen warte.

Aber hier schon mal der Changelog:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
Version 2.5.0.0
---------------

  * Hex editor: implement horizontal mouse wheel scrolling (including handling Logitech driver bug)

  * Data inspector:
    • New: added LEB128/ULEB128 types (variable width integer types used in WASM and dwarf debug information)
    • New: added (U)Int24
    • New: introduce readonly type converters (to allow uniform error messages when attempting to change values, also for converter plugins)
    • Enhancement: better error handling so that typical errors are caught and a more specific error message is given
      - error message for plugin DLLs of wrong machine type (x86-32 vs. x86-64)
  
  * Exporters:
    • New: skip undefined or unreadable sections, such that Intel Hex and S-Record files can be created that have gaps
    • New: source code exporter option to set the maximum text column or bytes per lines (= array elements per line)
    • New: SRecord and IntelHex exporters can now have maximum of 250 and 255 bytes per line, respectively
      - therefore there is also a new default block size/bytes per line setting for each of the exporters, which have a more common size of 32 (for both)
      - allows user to select very large block sizes, yet default to a commonly used size

  * Importers:
     • New: Intel Hex and S-Record support undefined regions of arbitrary size, by creating undefined foldable regions, instead of creating zero filled blocks for them
     • Enhancement: rewrite logic to allow for data records that are out of order (addresses aren't strictly increasing), or overlapping, even when there are gaps of undefined data; previously this could lead to errors, or would only function without undefined data gaps
     • Enhancement: Intel Hex and S-Record importers ignore leading and trailing whitespace in a line
  
  * Checksums / digests:
    • New: custom checksum
      - can generate a checksum, with settable bitwidth for the checksum result, the checksum addends, and the endianness
        - useful for various exotic formats, such as ROM files

  * Search window:
    • use same code as datainspector to convert from string to integer
    • improved the naming of floating point and integer types (closer to data inspector)

    • Searches for both signed and unsigned integers, choosing the right type depending on which fits best (negative numbers => negative type, positive numbers => unsigned type; this is ok, because the positive numbers in the signed type have the same encoding as in the unsigned type; this is a feature of two's complement encoding of integers)

  * Tool windows
    • New: menu items and shortcuts to activate and cycle through tool windows
      - activates (and shows when hidden) either of: data inspector, checksums, or search results
      - implements MRU logic for activation (like Alt+Tab in Windows)
      - can be canceled (and originally activated tool window will be restored)
      - can handle dockable panels, pagecontrols, and childs of those to handle and keep track of activation
      - properly handles switching between back and forward cycling, by switching from Alt+F7 to Alt+Shift+F7, and interrupting cycling when pressing another shortcut
      - extended shortcut handling of VCL/Delphi to handle repeated uses of two shortcuts as part of a shortcut sequence, to properly implement MRU handling, and canceling sequencing (which restores the originally activated tool window), or committing the last chosen tool window, as the activated one
    
      - Global shortcut key Esc to focus editor window

  * PasteFromClipboard:
    • do not delete then insert data in pmOverwrite mode, instead, only overwrite
    • also ensure selection/caret is restored, and therefore always begin a group if selection is available

  * Extensive work to support undefined sections in hex editor that can be deleted, or overwritten, all with undo capability; concerned a lot of supporting internal data structures/algorithms
    • allows for support in importing and exporting files with gaps (=undefined sections)
      - allows for round-trip handling of Intel Hex or S-Record files
    
  * Settings:
    • Data type converters only store their friendly type names in the settings/INI file, when the user changes them
      - this allows for updating those names from version to version, and having them appear automatically without resetting the data inspector in the options
        - also useful for translating HxD, which read the names from the settings when not resetting them, making it appear the translation is not complete
      
  * Fix: entering positive numbers for (U)Int64 results in an out of range error message
  * Fix: Search window: "any" bitwidth does not accept positive integers >= 2^63 (since it was limited to signed numbers only, now supports unsigned ones, too)
  * Fix: HxD would sometimes not detect it was installed (and not in portable mode), because of a case sensitive path comparison
  * Fix: access violation when deleting sections (sections were fixed before, so this bug never triggered)
  * Fix: custom checksum computation uses wrong step size to advance in the byte stream it processes; it would advance in steps of the final checksum's bitwidths, instead of the addend's bitwidth
  * Fix: when overwriting one nibble (key press in hex column) in unaccessible data, set the other nibble to 0 automatically
  * Fix: dockable panels could change fonts in docked and undocked/floating modes
  * Fix: several type and pointer shorting issues, due to types not compatible with x64; they would cause hard to track bugs in the x64 version of HxD under certain versions/configurations of Win 10 (ensuring everything is allocated in memory above 4GiB, during testing, allowed to track them down)
    • issues were in some own code, some third party code, and some Delphi RTL code (TRttiContext, TValue.Make)

  * Various other small enhancements and minor fixes




Und der Download:
Deutsch portable (ohne Setup momentan):
https://mh-nexus.de/downloads/HxD25Deu.zip
Englisch portable (ohne Setup momentan):
https://mh-nexus.de/downloads/HxD25Enu.zip


mael - Fr 29.01.21 17:11

Momentan arbeite ich wieder an einem Feature dass eine Weile geruht hat: Struktur-Editor/Viewer.

PE-Dateien sind momentan die Vorlage um zu schauen welche Funktionalität notwendig ist. Bisher kann ich dynamische Array definieren bzw. Strukturen variabler Größe, wo andere Teile der Datei diese Größe angeben, bzw. Zeiger darauf verweisen, anstatt dass alle Offsets/Größen fest/konstant sind.

Das nächste Feature wird das dynamische Dekodieren von RVA (relativen virtuellen Addressen) in der PE Datei sein, mithilfe einer Mapping-Funktion die jeder Pointer-Typ haben kann.

Um Dateien strukturiert anzuzeigen, werden Strukturen in einer deklarativen Sprache (die noch im Fluss ist), der HxD-Struktur-Definition-Syntax (HSD), definiert.

Ein funktionierendes Beispiel für den PE-Header sieht wie folgt aus:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
types
  PVirtualAddress = pointer<UInt32, UInt32>


  IMAGE_DATA_DIRECTORY = struct {
    VirtualAddress: UInt32;
    Size: UInt32;
  }

  IMAGE_FILE_HEADER = struct {
    Machine: UInt16;
    NumberOfSections: UInt16;
    TimeDateStamp: UInt32;
    PointerToSymbolTable: UInt32;
    NumberOfSymbols: UInt32;
    SizeOfOptionalHeader: UInt16;
    Characteristics: UInt16;
  }

  IMAGE_OPTIONAL_HEADER32 = struct {
    Magic: UInt16;
    MajorLinkerVersion: UInt8;
    MinorLinkerVersion: UInt8;
    SizeOfCode: UInt32;
    SizeOfInitializedData: UInt32;
    SizeOfUninitializedData: UInt32;
    AddressOfEntryPoint: UInt32;
    BaseOfCode: UInt32;
    BaseOfData: UInt32;

    ImageBase: UInt32;
    SectionAlignment: UInt32;
    FileAlignment: UInt32;
    MajorOperatingSystemVersion: UInt16;
    MinorOperatingSystemVersion: UInt16;
    MajorImageVersion: UInt16;
    MinorImageVersion: UInt16;
    MajorSubsystemVersion: UInt16;
    MinorSubsystemVersion: UInt16;
    Win32VersionValue: UInt32;
    SizeOfImage: UInt32;
    SizeOfHeaders: UInt32;
    CheckSum: UInt32;
    Subsystem: UInt16;
    DllCharacteristics: UInt16;
    SizeOfStackReserve: UInt32;
    SizeOfStackCommit: UInt32;
    SizeOfHeapReserve: UInt32;
    SizeOfHeapCommit: UInt32;
    LoaderFlags: UInt32;
    NumberOfRvaAndSizes: UInt32;
    DataDirectory: IMAGE_DATA_DIRECTORY[:NumberOfRvaAndSizes];
  }

  IMAGE_NT_HEADERS32 = struct {
    Signature: UInt8[4];
    FileHeader: IMAGE_FILE_HEADER;
    OptionalHeader: IMAGE_OPTIONAL_HEADER32;
  }


  PIMAGE_NT_HEADERS32 = pointer<UInt32, IMAGE_NT_HEADERS32>

  IMAGE_DOS_HEADER = struct {
    e_magic: UInt8[2];
    e_cblp: UInt16;
    e_cp: UInt16;
    e_crlc: UInt16;
    e_cparhdr: UInt16;
    e_minalloc: UInt16;
    e_maxalloc: UInt16;
    e_ss: UInt16;
    e_sp: UInt16;
    e_csum: UInt16;
    e_ip: UInt16;
    e_cs: UInt16;
    e_lfarlc: UInt16;
    e_ovno: UInt16;
    e_res: UInt16[4];
    e_oemid: UInt16;
    e_oeminfo: UInt16;
    e_res2: UInt16[10];
    _lfanew: UInt32;
  }

  IMAGE_SECTION_HEADER = struct {
    Name: Char8Ansi[8];
    Misc_PhysicalAddressOrVirtualSize: UInt32;
    VirtualAddress: UInt32;
    SizeOfRawData: UInt32;
    PointerToRawData: UInt32;
    PointerToRelocations: UInt32;
    PointerToLinenumbers: UInt32;
    NumberOfRelocations: UInt16;
    NumberOfLinenumbers: UInt16;
    Characteristics: UInt32;
  }

  IMAGE_IMPORT_DESCRIPTOR = struct {
    OriginalFirstThunk_ImportLookupTable_RVA: UInt32;
    TimeDateStamp: UInt32;
    ForwarderChain: UInt32;
    Name_RVA: UInt32;
    FirstThunk_ImportAddressTable_RVA: UInt32;
  }

  OVERALL_FILE = struct {
    ImageDosHeader: IMAGE_DOS_HEADER;
    ImageNtHeaders32: IMAGE_NT_HEADERS32 @ :ImageDosHeader._lfanew;                                                        
    ImageSectionHeaders: IMAGE_SECTION_HEADER[:ImageNtHeaders32.FileHeader.NumberOfSections];
  }

instances
  $root: OVERALL_FILE


Das sieht dann nach dem parsen von PropEdit.exe (ein anderes meiner Programme -- kann aber ein beliebiges sein), so wie in den Anhängen aus.

structedit1
structedit2
structedit3

Edit: Die zwei letzten Anhänge konnte ich nicht anfügen, siehe daher den zweiten Post.


mael - Fr 29.01.21 17:14

structedit4
structedit5

Was besonders ist (neben der grundsätzlichen Fähigkeit Strukturen zu definieren und Dateien entsprechend geparst anzuzeigen), sind Ausdrücke wie folgender:

Quelltext
1:
DataDirectory: IMAGE_DATA_DIRECTORY[:NumberOfRvaAndSizes];                    

Wie man im vierten Bild sieht, wird obwohl die Arraygröße von DataDirectory dynamisch aus der Datei bestimmt wird (NumberOfRvaAndSize ist vorher als Feld in der Datei definiert worden), das Array richtig angezeigt. Mit normalen Programmiersprachen muss man da etwas nachhelfen, Strukturen mit eingebetteten dynamischen Arrays (nicht einfach Zeiger auf einen anderen Bereich) gibt es nicht. Bei HSD geht das deklarativ.

Die Position von ImageNtHeaders32 ist auch abhängig von ImageDosHeader._lfanew, was man auch in einer normalen Programmiersprache nur durch zusätzlichen Code darstellen kann. In HSD reicht diese Deklaration:

Quelltext
1:
ImageNtHeaders32: IMAGE_NT_HEADERS32 @ :ImageDosHeader._lfanew;                    

Dass es funktioniert sieht man im zweiten Bild.

ImageSectionHeaders ist auch wieder dynamisch definiert, aber so dass es von zwei vorherigen dynamischen Definitionen abhängt: sowohl um den Startoffset zu bestimmen, als auch die Länge.

Edit:
Die Screenshots sind von einem Hilfsprogramm, das Steuerelement das da sichtbar ist noch in der Entwicklung und so wie der allgemeine Code noch weit von einer Alpha entfernt (und somit bewusst buggy, weil unvollständig). Wenn Interesse besteht, kann ich das Programm zum ausprobieren trotzdem mal hochladen.


jaenicke - So 31.01.21 17:39

Ja, das Feature ist echt super. :dance2:

Bei uns wäre der Anwendungsfall gewesen dateibasierte Datenbanken lesen zu können, wenn diese defekt sind.
Für diesen Zweck werden wir es allerdings nicht mehr brauchen können, weil wir uns von solchen Datenbanken verabschiedet haben.

Es gibt aber natürlich noch sehr viel mehr Anwendungsfälle, so dass ich mich schon sehr darauf freue.


mael - Do 11.02.21 17:05

HxD 2.5 ist nun offiziell verfügbar.

Hier sind der Changelog [https://mh-nexus.de/en/hxd/changelog.php#v_2.5.0.0] und Download [https://mh-nexus.de/en/downloads.php?product=HxD20].

GregC/DigicoolThings hat einen Disassembler plugin auf GitHub [https://github.com/DigicoolThings/HxD_DasmDataInspectorPlugin] für MC6800, MC6809, 6502 und ähnliche CPUs erstellt.