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:
- Öffnen/Bearbeiten von Dateien beliebiger Größe (auch > 4GB)
- Diskeditor zum direkten Lesen/Schreiben auf Festplatten, Disketten, USB-Sticks,... (WinNT und Win9x)
- RAM-Editor zum Lesen/Schreiben des virtuellen Arbeitsspeichers anderer Prozesse/Programme (inkl. Data-Folding)
- Schnelle Suchfunktion für Text (inkl. Unicode), Hex-Werte, Ganze Zahlen oder Gleitkommazahlen
- Ersetzenfunktion (schnell, auch für Millionen Ersetzungen)
- Bytes einfügen/Bereich füllen
- Dateien zerlegen/verketten
- Dateien sicher löschen
- Dateivergleich (einfach)
- Exportieren in verschiedene Formate, darunter Pascal, C, Java oder auch Intel Hex, Motorola SX Records
- Ansicht in verschiedenen Zeichensätzen (ANSI, DOS, EBCDIC, Macintosh)
- Gruppierung von Bytes
- Nur Hex- oder nur Text-Modus
- Prüfsummen-Generator: Checksum, CRC, Custom CRC und Digests SHA-1, MD-5, ...
- Hervorhebung von veränderten Daten
- und mehr (siehe auch Webseite)
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.
Download portable und installierbare Version 2.4.0.0: https://mh-nexus.de/de/downloads.php?product=HxD20
Updates (Download oben):
- Version 2.4.0.0 (28.2.2020), Changelog [https://mh-nexus.de/en/hxd/changelog.php#v_2.4.0.0]
- Version 2.3.0.0 (6.7.2019), Changelog [https://mh-nexus.de/en/hxd/changelog.php#v_2.3.0.0]
- Version 2.2.0.0 (16.1.2019), Changelog [https://mh-nexus.de/en/hxd/changelog.php#v_2.2.0.0]
- Version 1.7.7.0 (3.4.2009), Changelog [http://www.delphiforum.de/viewtopic.php?p=557254#557254]
- Version 1.7.6.6 (8.11.2008), Changelog [http://www.delphiforum.de/viewtopic.php?p=532565#532565]
- Version 1.7.6.4 (8.8.2008), Changelog [http://www.delphiforum.de/viewtopic.php?p=517359#517359]
- Version 1.7.6 (16.4.2008), Changelog [http://www.delphi-forum.de/viewtopic.php?p=497864#497864]
- Version 1.7.5 (21.3.2008), Changelog [http://www.delphi-forum.de/viewtopic.php?p=493495#493495]
- Version 1.7.1 Beta (9.6.2007), Changelog [http://www.delphi-forum.de/viewtopic.php?p=444863#444863]
- Version 1.7.0 Beta (4.4.2007), Changelog [http://www.delphi-forum.de/viewtopic.php?p=432987#432987]
- Version 1.6.1 (26.5.2006), Changelog [http://www.delphi-forum.de/viewtopic.php?p=362877#362877]
- Version 1.6.0 Beta (18.3.2006), Changelog [http://www.delphi-forum.de/viewtopic.php?p=345445#345445]
- Version 1.5.2 (7.10.2005), Changelog [http://www.delphi-forum.de/viewtopic.php?p=299405#299405]
- Version 1.5.1 Beta (27.9.2005), Changelog [http://www.delphi-forum.de/viewtopic.php?p=296961#296961]
- Version 1.5.0 Beta (21.9.2005), Changelog [http://www.delphi-forum.de/viewtopic.php?p=294818#294818]
- Version 1.4.2 (9.6.2005), Changelog [http://www.delphi-forum.de/viewtopic.php?p=261217#261217]
- Version 1.4.1 Beta (13.5.2005), Changelog [http://www.delphi-forum.de/viewtopic.php?p=251889#251889]
- Version 1.4 Beta (2.05.2005), Changelog [http://www.delphi-forum.de/viewtopic.php?p=247855#247855]
- Version 1.3 Beta (13.04.2005), Changelog [http://www.delphi-forum.de/viewtopic.php?p=240773#240773]
- Version 1.2.1 (1.03.2005), Changelog [http://www.delphi-forum.de/viewtopic.php?p=224237#224237]
- Version 1.2 (27.02.2005), Changelog [http://www.delphi-forum.de/viewtopic.php?p=223222#223222]
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 raziel: 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:
- 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.
- Bei dem Fenster Optionen könnte man das Vorschau-Kontrol so einstellen, dass dieses mit der Tab-Taste nicht erreichbar ist. Eventl. auch Readonly.
- Wenn man bei dem Fenster Prüfziffern einen Doppelklick auf die Listbox macht sollte diese Aktion automatisch das Fenster mit OK schließen.
- 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.
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 raziel: 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 raziel: 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:
Ohne Styles:
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 raziel: 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:
- Gepuffertes Lesen für angenehmeres Navigieren
- Sektortrennlinien und Knöpfe sowie Tastaturkürzel zum Navigieren in Laufwerken
- Ab WinXP+ ist nun trotz eventuell gefälschter Angaben des Treibers das komplette Laufwerk einsehbar/editierbar.
- Dateinamen-, StartOffset-, EndOffset-, Längen- und Datumsinformationen wurden den Quelltextexportern hinzugefügt
- Diskettengeräusch beim Testen auf eingelegten Datenträger minimiert
- Neue Funktion: Block markieren (Von-Bis-Markierungen)
- Zeichnen der Offsetspalte und Zeile synchron mit dem Zeichnen des Datenteils auch wenn Quelle (Z.B. Diskette) langsam
- Flackern der Tableiste eliminiert
- Flackern bei Vollbildwechsel reduziert
- Automatisch Vollbild
- nur eine Instanz-Option
- standardmäßig Laufwerke schreibgeschüzt öffnen
- HxD im Kontextmenü
- Einfügen wurde so erweitert, daß es auch mit Streams die nicht größenveränderbar sind (z.B. Festplatten) funktioniert: Es wird überschrieben anstatt einzufügen, falls es genügend Platz gibt.
- Thema ist in Optionen wählbar (Standard oder Tristan 2)
- Prüfziffern können per Tastenkürzel oder Kontextmenü in die Zwischenablage kopiert werden
- FIX: Eingabe eines Zeichens im Überschreibmodus und bei vorhandener Markierung löscht die Markierung und überschreibt das folgende Zeichen, anstatt nur das Zeichen an Einfügemarke zu überschreiben
- FIX: Bei großen Streams (z.B. Laufwerke), sollte mit Thumbs-Tracking die letzte Zeile erreicht werden, und nicht kurz vorher aufgehört werden.
Außerdem geht Thumbstracking nicht bis ganz unten wenn Spaltenanzahl = 1.
- weitere Korrekturen
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:
- HxD wird bei Start von neuer Instanz jetzt aktiviert, bevor neue Instanz sich beendet
- Updaten der Informationen in der Statusleiste entsprechend des gewählten MDIChilds
- FIX: Versuch nicht vorhandene Datei per Kommandozeile zu laden verursacht mehrere Fehlermeldungen und Zugriffsverletzungen
- FIX: Zu einem logischem Laufwerk Statistik anzeigen führt zu Programmabbruch (fehlerhaftes Pufferungssystem)
- FIX: Fortschrittsanzeige verursacht Gleitkommadivision durch Null
- FIX: reine Audio CD als logisches Laufwerk öffnen erzeugt Zugriffsverletzung
- FIX: In Spezialfall ist Caret Position nach Undo nicht richtig
- FIX: Wechsel einer Diskette wird erst nach einer Aktualisierung im Explorer in der Datenträgerauswahl angezeigt. Aber leider ist jetzt auch das Prüfgeräusch wieder lauter.
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:
- Data-Folding, zum Falten/Verstecken nicht zugewiesener Bereiche im RAM-Editor (die Teile die aus lauter Fragezeichen bestehen)
- Disk-Editor für Win9X
- Vergleichsfunktion für Dateien
- 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
Lannes 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
retnyg 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.
retnyg 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:
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
galagher 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
galagher 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).
uall@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
mael 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
galagher 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
galagher 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.
galagher 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
mael 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
galagher hat folgendes geschrieben: |
mael 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
mael 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:
- Große Neuerung: Data-Folding :party:
- Stauchen der Lesezeichen-Symbole wenn Text kleiner als 16x16, sonst zentrieren
- FIX: Suche von Ganzen Zahlen im Big Endian Format war fehlerhaft
- FIX: Ändern der Fenstergröße verursacht manchmal falsche Repositionierung der Einfügemarke
- FIX: Obwohl mehrere Instanzen erlaubt, wird immer die erste Instanz aktiviert
- FIX: "Speichern unter" und "Exportieren" bricht ab ohne Speichern-Dialog anzuzeigen, wenn vorgegebener Dateiname ungültige Zeichen enthält
- FIX: Bei bestimmten Schriftarten wird nach Neustart von HxD eine andere verwendet
- FIX: Schreiben in schreibgeschützen/nicht zugewiesenen Speicherbereichen ruft Zeichenfehler hervor. (Daten bleiben aber unberührt, wie es auch sein sollte).
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
mael 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
galagher hat folgendes geschrieben: |
mael 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
uall@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
galagher 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
mael 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:
- HxD unterstützt nun rohes Lesen/Schreiben von/auf logische und physische Datenträger unter Windows 9X (Vorher nur NT+).
Alle Arten und Größen werden unterstützt (FAT12, FAT16, FAT32, Platten mit int13 extensions und ohne).
CDROM Unterstützung wird folgen.
- Meldungen/Warnungen können deaktiviert werden (im Meldungsfenster direkt oder in den Optionen)
- Nachfragen beim Löschen oder Einfügen von Bytes
- VB-Exporter entfernt: Es gibt keine Möglichkeit größere Arrays sinnvoll zu definieren
- Deutlich weniger Laufwerksgeräusche und keine Fehlermeldung mehr bei der Prüfung auf vorhandenes Medium (trat unter einigen NT 4.0 Systemen auf)
Dank an Lannes dafür!
- Modale Dialogboxen blinken falls außerhalb geklickt wird (wie üblich unter Win98/Win2000+)
- FIX: Nach "Speichern unter..." wird der komplette Dateiname in der Titelleiste angezeigt, es sollte aber ohne Pfad sein
- FIX: Löschen einer Markierung per Entf, aktualisiert Statusleiste nicht
- FIX: Entfernen-Funktion erzeugt neue faltbare Abschnitte, sollte aber nur die vorhandenen anpassen
- FIX: Löschen mit Backspace war fehlerhaft
- FIX: Falls Caret in gefalteter Zeile, bewegt er sich bei horizontalem Scrollen nicht mit
- FIX: Wechseln zwischen Hex und Text mit Tab und Markierung zeichnet Markierung nicht richtig
- andere kleinere Sachen
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
F34r0fTh3D4rk 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
F34r0fTh3D4rk 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:
- FIX: Schreibfehler beim Einfügen (wegen Überschreiben des Arbeitsspeichers)
- FIX: Strg+Shift+Ende ruft Zugriffsverletzung hervor
- FIX: Falsche Position der Einfügemarke nach Einfügen-Operation
- FIX: Bestimmte Reihenfolge von Einfüge bzw Löschoperationen erzeugen Zugriffsverletzungen
- FIX: mehrmals Starten von HxD unter Win9X erzeugt BS-Ausnahme-Fehler (DiskIO.dll Verwaltungsproblem)
- kleinere Optimierungen
- Korrektur der Caretbewegung bei Sonderfällen
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
feivel3333 hat folgendes geschrieben: |
Hey, Super-Editor! Muss ich sagen. Einfach zu bedienen, alles erklärt sich von selbst. |
Danke :)
feivel3333 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.
galagher 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
uall@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.
uall@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.
feivel3333 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:
- Neuer Menüpunkt "Aktualisieren": erneuert die Anzeige und die Caches
- Nibbles (= halbe Bytes) können jetzt per STRG+Links bzw. STRG+Rechts angesteuert werden
- Aktivieren von HxD nach Ablegen einer Datei per drag&drop
- FIX: Fehler beim Lesen von Disketten unter Win9X korrigiert (Fehler trat nicht bei allen BIOSen auf)
- FIX: Die Restdauer im Fortschrittsfenster wird als Uhrzeit dargestellt
- FIX: Focus-Probleme des Fortschrittsfenster
- FIX: Gedrehte Überschrift der Prüfziffern-Tafel ist, unter Win9x, sehr klein
- FIX: Flackernder Rand beim Ändern der Fenstergröße falls Windows-Themen aktiv.
Den entsprechenden Fehler habe ich in der VCL beseitigt.
- FIX: Wenn Hexeditor-Fenster ganz klein erscheint eine Zugriffsverletzung
- FIX: Ersetzen-Dialog kann trotz Schreibschutzes angezeigt werden obwohl der Schreibschutz ein Ersetzen verhindern würde.
- FIX: Durch Nichts ersetzen erzeugt Zugriffsverletzung
- FIX: RAM-Editor versucht Guarded-Pages anzuzeigen
- FIX: Alle ersetzen: Es verschwindet immer wieder die Fortschrittsanzeige um dann wieder neu zu erscheinen
- FIX: Bestätigungsdialog manchmal außerhalb des Bildschirms
- FIX: Neue Instanz übernimmt nicht die Multiinstanz-Option
- weitere Korrekturen
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
galagher 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.
galagher 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
mael 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
Robert.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
en!gma hat folgendes geschrieben: |
naja aber ansonsten zeigt er meine offsets garnicht erst an.
|
Was meinst Du damit? (er zeigt "deine" Offsets nicht an)?
en!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
mael 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:
- Änderungen werden rot und fett hervorgehoben (konfigurierbar)
- Große interne Optimierung bei der Darstellung und Berechnung mit gefalteten Bereichen:
Zuvor war z.B. eine große Trägheit der Mausauswahl am Ende der Datei zu beobachten, wenn im RAM-Editor große Programme geöffnet wurden (wie z.B. Delphi32.exe oder Explorer.exe)
- Undo wurde optimiert und verwendet weit weniger Speicher indem Originaldaten nicht extra gesichert werden
- Funktion "Datei als Image öffnen" (mit Angabe der Sektorgröße)
- Optionendialog überarbeitet
- Unterstützung für BAK-Dateien
- Offset-Anzeige kann nun neben Hexadezimal auch auf Oktal und Dezimal gestellt werden
- Genauere Messung wann Fortschrittsanzeige gebraucht wird
- Auswahl-scrollen ist intuitiver und ein kleiner Bug wurde behoben
- Mausauswahl ist geschmeidiger und genauer, auch kann eine Auswahl innerhalb eines Hex-Paares beginnen
- Hinweis-Fenster neben Scrolleiste, das den Obersten Sektor anzeigt falls eine Platte oder eine Disk-Image geöffnet ist
- Bei Bild hoch Bild runter bleibt Einfügemarke an der selben Stelle
- Klicken in die Mitte eines Bytes wählt Nibble an
- Reiterreihenfolge per Drag&Drop änderbar
- ScrollBar wird versteckt wenn nicht notwendig, man kann nur noch nicht sichtbare Bereiche scrollen, Größenänderung scrollt verstecktes in freigewordenen Bereich
- Reiterleiste zeichnet den Hintergrund mit Themes
- Reiter bildet mit HexEditor-Komponente eine Einheit
- Kleinere optische Änderungen bei der Darstellung
- Fix: Nach einer Alles-Ersetzen-Operation bleibt die Fortschrittsanzeige manchmal geöffnet
- Fix: Wechsel-Reihenfolge per Strg+Tab entspricht der Reihenfolge im TabControl und nicht der MDI-Reihenfolge
- Fix: Operation: Bytes einfügen-Dialog kommt während Ersetzen-Operation
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
- Update-Funktion integriert
- Bessere Caret-Steuerung: Drücken der "Nach Links"-Taste geht an den Anfang eines Hex-Paares und nicht zum vorhergenden Hex-Paar
- Fix: Nach dem Entfernen des letzten Bytes einer Zeile ist Caret-Position falsch
- Fix: Formatierung für veränderte Daten wird nicht richtig gespeichert/geladen
- Fix: Beim Exportieren nach Pascal, C, Java wird immer ein leerer Dateiname verwendet
- Fix: Verwaltungsfehler der internen Formats-Liste => einige Zeichenfehler
- Fix: Unter Asiatischen Systemen Probleme mit der Darstellung
- Fix: Ende der Zeile, füllen mit Hex-Zahlen => man kommt nicht in die nächste Zeile
- Fix: Am Ende der Zeile 4 Bytes markieren, löschen, Undo, Einfügemarke ist immer vor dem letzten Zeichen und auch immer InsideHexPair...
- Fix: Position des Caret nicht immer richtig nach Undo
- Die Ansichtsoptionen sind jetzt auch global im Optionendialog einstellbar
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
- Unterstützung für Unicode Dateinamen unter NT Systemen
- Interne Optimierungen um kleinere EXE-Datei zu erreichen, sodaß Unicode-Unterstützung die EXE nicht allzuviel wachsen läßt
- Update-Suche zeigt jetzt Neuerungen in der Sprache der laufenden HxD Version an
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
0xCC 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
Tilman 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.
Tilman 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
galagher 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.
Tilman 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.
- Neue Funktionen
- Datei zerlegen
- Dateien verketten
- Dateien sicher löschen (Reißwolf)
- Bytes einfügen
- Auswahl füllen
- Verbesserungen vorhandener Funktionen
- Zwischenablage wurde stark überarbeitet:
- Unbegrenzt viel Daten können kopiert werden (auch zwischen Instanzen, unbegrenzt = freier Arbeitsspeicher)
- Unterstützung von Unicode
- Einfügen/Kopieren von HexDumps
- Fortschrittsanzeige
- Zusätzlich natives Zwischenablageformat für HTML und RTF, so daß direkt in Programme wie Wordpad oder Mozilla Thunderbird eingefügt werden kann, und nicht etwa der HTML/RTF Quelltext erscheint.
- Echtes Unicode in der Suche (nicht nur ANSI-Teilbereich), somit Unterstützung für Sonderzeichen, wie z.B. im DOS-Zeichensatz
- Backup-Verbesserungen:
- Fortschrittsanzeige beim Erstellen
- Backup kann abgebrochen werden
- Warnung wenn kein Platz für Backup
- Exporter stark beschleunigt und Fortschrittsanzeige hinzugefügt
- Fortschrittsanzeige bei "Kopieren als"
- Speichern/Speichern unter haben Fortschrittsanzeige
- Reduzierung der Fragmentierung im internen Speicher beim Einfügen
- F5 aktualisiert die gefalteten Speicherbereiche im RAM-Editor
- Wenn Datei schreibgeschützt und versucht wird Datei zu modifizieren, blinkt der Eintrag "Schreibgeschützt" in der Statuszeile
- Bei erneuter Anzeige des Suchedialogs wird der alte Suchtext markiert
- Suchergebnis in die Mitte des Fensters scrollen für bessere Übersicht
- Beachten der Offsetbasis im Exporter
- Unicode Unterstützung beim Drucken
- einige Korrekturen beim Drucken
- allgemein bessere Unicodeunterstützung bei allen Operationen mit Dateinamen
- allgemein überall Fortschrittsanzeige bei längeren Operationen
- Neue Tasten bei gefalteten Bereichen:
+ auf Nummernblock öffnet Faltung
- auf Nummernblock schließt Faltung
* auf Nummernblock öffnet alle Faltungen
/ auf Nummernblock schließt alle Faltungen
- Drag&Drop von Reitern/Tabs verschiebt die Reiter schon während der Mausbewegung anstatt einen schwarzen Einfügebalken zu zeichnen
- Dialog mit Sicherheitswarnung vor dem "Öffnen von Datenträgern ohne Schreibschutz" erlaubt nun auch Abbrechen anstatt nur OK
- Nach "Alles ersetzen", wird MsgBox mit der Anzahl der ersetzten Stellen angezeigt
- Korrekturen
- Fix: Weitersuchen funktioniert nicht, nachdem neue Datei geöffnet oder zu einer anderen Datei gewechselt wurde
- Fix: "Exportieren nach" zeigt "Speichern unter"-Dialog an: dieser warnt nicht vor dem Überschreiben vorhandener Dateien
- Fix: Fehler beim Suchen wenn DOS-Zeichensatz gewählt ist
- Fix: Fehler beim Suchen, falls zuvor in einem anderen Fenster gesucht wurde
- Fix: Suche ungültige Hex-Werte erzeugt Zugriffsverletzung anstatt sinnvoller Fehlermeldung
- Fix: Änderung des Zeichensatzes wird bei Weitersuchen nicht beachtet
- Fix: Exporter für HTML, TeX und RTF beachten nicht den gewählten Zeichensatz: z.B. wenn DOS/OEM ausgewählt wurde erscheint trotzdem normaler ANSI-Zeichensatz
- Fix: Spalten-offsets >= 100 werden nicht richtig gezeichnet
- Fix: Cache-Fehler bei Lesen von Datenträgern
- Fix: "Alle ersetzen" ersetzt nicht jedes Vorkommen des Suchmusters
- Fix: Alles markieren, dann Löschen => Undo geht nicht
- Fix: Löschen der markierten Bytes => Bytes werden zwar wieder eingefügt, Dateigröße bleibt aber gleich => hintersten Bytes werden abgeschnitten
- Fix: Kommandozeile wird (seit Unicodeunterstützung) von anderer Programminstanz nicht korrekt übernommen
- Fix: Bei mehreren Instanzen wird nicht die richtige aktiviert und auch nicht die Datei auch nicht immer in der richtigen Instanz geöffnet
- Fix: Undo von sehr großen Datenmengen (über 4 GB) geht nicht
- Fix: Nach Undo von zwei Hexzeichen bleibt Caret trotzdem innerhalb des Hexpaares
- Fix: Ersetzen-Dialog warnt immer vor Änderung der Dateigröße (auch wenn diese gleich bleiben würde)
- Fix: Modale Fenster/Dialoge verstecken sich manchmal hinter anderen Fenstern, so daß es erscheint als ob HxD hängt
- Fix: nach Schließen von System-dialog(datei-öffnen, msgbox, drucker,...) bekommt HexEdit nicht mehr den Fokus
- Fix: Fortschrittsanzeige bei Ersetzen repräsentiert nicht korrekt die verbleibende Arbeit
- Fix: Markieren mit Umsch+Bild runter => Anzeige flackert stark
- Fix: Nach Streamlesefehler bleibt "Oberster Sektor"-Hinweisfenster offen und Thumbbutton gedrückt
- Fix: Kopieren der Editoranzeige unterstützt kein Unicode
- Fix: Bei einfachen Grafikkartentreibern erscheinen die Symbole nicht auf der Toolleiste
- Fix: TXmGroupbox hinterläßt Spuren bei gethemeten Hintergründen (siehe Optionendialog)
- Fix: Steuerelemente im InfoDialog haben nicht die richtige Größe/Position falls "Große Schriftarten" aktiviert
- Fix: ColorComboBox Schrift und Farbe ausgegraut wenn deaktiviert
- Fix: Flackern der Werkzeugleisten beim Schließen von Optionendialog
- Fix: Kleines Speicherleck nach Datei|Speichern
- Fix: Kleines Speicherleck nach Drucken
- Viele weitere kleinere Korrekturen
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).
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.
@
MagicAndre1981: 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.
jaenicke 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
jaenicke 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
jaenicke 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
Zyklame hat folgendes geschrieben: |
eine Verlaufs liste wäre nicht schlecht
|
Im Datei-Menü die letzten x geöffneten Dateien anzeigen?
Zyklame hat folgendes geschrieben: |
Datei aktualisiesen
|
Was meinst Du? Es gibt einen Menüpunkt Ansicht|Aktualisieren (F5)
Zyklame hat folgendes geschrieben: |
und beim Laden zur letzten geöffneten Datei springen (Ordner)
|
Okay, als Option. Was ist mit Ordner genauer gemeint?
rochus 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
mael hat folgendes geschrieben: |
Zyklame 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
Born-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.
Born-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
bokaj 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.
0xCC 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
mael 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
mael hat folgendes geschrieben: |
Born-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
Born-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:
- Modernere Icons
- Verlauf für Suchen-Dialog und Ersetzen-Dialog
- Dateiliste im Datei-Menü
- Lokale Zeichensätze werden nun für ANSI verwendet, zuvor Windows-1252 fest eingestellt
- Tab per Mittelklick schließen
- Der Text im Informationsfeld des Update-Checker wird, für bessere Lesbarkeit, umgebrochen und eingerückt
- Deaktivierte Icons werden schöner ausgegraut wenn der klassischen Windows-Stil eingestellt ist bzw. ein System vor Windows XP verwendet wird
- MDI-Menü erscheint erst wenn Fenster vollständig maximiert bzw. verschwindet
- URL nicht dereferenzieren, sondern .url-Datei öffnen
- Fix: Optionendialog mit OK schließen setzt das Thema/Theme wieder zurück anstatt es zu übernehemen
- Fix: Menü ist bei Multimonitorsetup auf falschem Bildschirm
- Fix: BartPE lädt HxD nicht wegen fehlender WOW32.DLL die aber nur unter Windows9X benötigt wird
- Fix: Zeichenfehler der ausgegrauten Icons unter Windows 98
- Fix: Tableiste scroll fehler, Reihenfolge beim Schließen, beim Wechseln, Zeichenfehler...
- Fix: Windows-Fehlermeldung beim Schreiben auf Datenträger unter Windows 98
- Fix: Fehlermeldung "Zu wenige Arbeitsspeicher" beim Kopieren zwischen zwei Instanzen
- Weitere kleinere Sachen
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
Jakob 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
galagher 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.
_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.
_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:
- Sichtbare Spalten (Hex und Text, nur Text oder nur Hex)
- Bytegruppierung zu einem Block
- Schnelles Ersetzen <-- hierbei bin ich
- Bytebasierter Dateivergleich (später auch Erkennung von verschobenen Blöcken)
@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
mael hat folgendes geschrieben: |
galagher 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
Manina hat folgendes geschrieben: |
Über Datei / Öffnen macht er den Link selber auf ...
|
Das ist so gewollt.
Manina 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
galagher 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); Unbenannt := TUnbenannt.Create(Self); 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
mael 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
Jakob 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
Jakob 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
GTA-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
HEX EDITOR -> Wikipedia -> HxD
mael - Mi 04.04.07 19:37
Update von HxD auf Version 1.7.0.0 beta
Changelog:
- Einfacher Dateivergleich
- Nur Hex- oder nur Text-Modus
- Gruppierung von Bytes (1, 2, 4, 8 oder 16 Bytes in einer Spalte)
- Neue Funktion "Schreiben" (ähnelt Bearbeiten|Einfügen, überschreibt aber, anstatt Einzufügen)
- Unterstützung von Zwischenablageformaten anderer Hexeditoren (wie Visual Studio/Visual C++, WinHex, HexWorkshop)
- Wesentliche Verbesserung: Alles ersetzen-Funktion ist sehr viel schneller
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
mael 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
Chryzler 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
Chryzler 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:
- Einige kleine Verbesserungen der Benutzeroberfläche, u.a.: Suche, Block-Markierung, Optionen, Updatesuche, Dokumentreiter und Hexeditor.
- Viele Fehlerkorrekturen
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
TimonWorld 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
_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.
_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?
_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 FastMM
2 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
mael 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 ;)
mael 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 ;)
mael 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 ;)
mael 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,
mael 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
Hidden hat folgendes geschrieben: |
mael 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
_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.
mael 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.
_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 ;-)
_frank_ hat folgendes geschrieben: |
mael 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?!
_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.
_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
_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.
_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.
_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.
_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
AHT hat folgendes geschrieben: |
[Hier stand viel Gutes und Nettes...] :D |
Schön zu hören :-)
AHT 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:
- Sperrung von Dateien nur wenn nötig
- Wenn Dateien zuvor in HxD geöffnet wurden konnten sie nicht mit anderen Programmen geöffnet werden. Jetzt werden die Dateien (egal ob im Schreibgeschützt-Modus oder nicht) nur noch gesperrt solange in HxD eine Operation ausgeführt wird, z.B. Sperrung während dem Suchen. Auch wird die Datei nach der ersten Änderung gesperrt. Dies wurde von Vielen gewünscht die HxD zusammen mit anderen Werkzeugen verwenden und daher eine Datei in mehreren Anwendungen öffnen wollen.
- HxD gibt es nun in einer echten "Portable"-Edition
- Früher wurde ausschließlich in die Registry gespeichert, die tragbare Version von HxD kann nun ihre Einstellungen in einer INI-Datei im Programmverzeichnis speichern, so daß sie problemlos auf USB-Sticks verwendet werden kann. In ein paar Wochen (bin gerade nicht zu Hause) wird es auch noch einen Installer geben, mit diesem werden dann die Einstellungen als INI-Datei im Benutzerprofil-Ordner gespeichert.
- Schleiermarkierung zur besseren Erkennbarkeit
- Wenn ein Teil einer Datei ausgewählt wird erscheint der Teil in der aktiven Spalte in der normalen Auswahlfarbe und der inaktive Teil wird einfach umrahmt. Jetzt wird der inaktive Teil durch eine Art Schleier umrahmt (ähnlich wie die Markierung im Explorer von Windows XP).
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:
- Neue Fähigkeiten
- HxD bietet nun ein Installationsprogramm oder kann als portable/tragbare Version verwendet werden.
- Die tragbare Version ist für USB-Sticks und ähnliche Wechseldatenträger gedacht (Konfiguration wird in eine INI-Datei im Anwendungsverzeichnis gespeichert, vorher wurde die Registry verwendet).
- Dateien können nun gleichzeitig in anderen Anwendungen geöffnet werden: Dateien werden nur solange offen gehalten wie absolut notwendig und erst nach der ersten Veränderung für andere Anwendungen gesperrt (und wird wieder entsperrt nachdem gespeichert wurde). Ist eine Datei temporär von einer anderen Anwendung gesperrt wird der aktuell sichtbare Ausschnitt aus einem internen Cache gelesen.
- Verbesserungen
- Numerische Eingaben sind jetzt flexibler, eine strenge Gültigkeitsprüfung findet erst statt wenn das Textfeld verlassen wird, während der Eingabe werden nur ungültige Zeichen herausgefiltert (so ist es jetzt z.B. möglich temporär den gesamten Text zu löschen bzw. größere Zahlen als eigentlich erlaubt einzugeben was das editieren und kopieren&einfügen erleichtert).
- Auswahl in der inaktiven Spalte ist nun auch gefüllt und sieht aus wie eine Art Schleier (ist weniger stark hervorgehoben als aktive Spalte)
- Sektorposition erscheint nun auch innerhalb des Hexeditor-Fensters, ähnlich der Offsetspalte.
- Falls eine Datei nicht geöffnet werden kann wird gefragt ob wieder versucht oder abgebrochen werden soll (nützlich gerade wenn die Datei sich auf einem Wechselmedium befindet).
- Es wird nun darauf hingewiesen, daß für den Disk-Editor Administratorrechte benötigt werden.
- Maus-Markieren funktioniert jetzt in allen Fällen mit gefalteten Zeilen und erzeugt kein Flackern beim Scrollen.
- Neben dem Öffnen-Symbol gibt es einen Pfeil um letzte geöffnete Dateien anzuzeigen.
- Unlesbare Abschnitte (wie z.B. im RAM-Editor vorhanden) werden insgesamt besser behandelt (speziell beim Suchen oder allgemeinen Operationen die solche Abschnitte gesondert beachten müssen).
- Korrekturen
- Fix: Vorkommen des Suchmusters die mit dem Pufferende überlappen wurden nicht gefunden.
- Fix: Zugriffe auf Registry funktionierten nicht mit eingeschränkten Benutzerkonten.
- Fix: Zum Lesezeichen springen (strg+0..9) setzte zwar die Einfügemark richtig scrollte sie aber nicht in den sichtbaren Bereich.
- Fix: Probleme mit gefalteter Zeile falls Bytes pro Zeile = 1 ist: der Einfügemauszeiger erschien nur über Text- bzw. Hexbereich, sollte aber über der gefalteten Box erscheinen (egal ob Hex/Text-Bereich größer oder kleiner als die gefaltete Box ist).
- Fix: Öffnen von nicht existenter Datei erzeugt Zugriffsverletzungen, außerdem gab es dadurch Darstellungsfehler der MDI-Kindfenster.
- Fix: Position der Einfügemarke wurde nach Löschen/Ausschneiden nicht sofort aktualisiert.
- Fix: Falls HxD zum Explorer-Kontextmenü hinzugefügt wurde, wurde das System nicht darüber informiert (Kontextmenü war dadurch nicht immer aktuell).
- Fix: Doppelklick in unlesbarem Abschnitt (Überall Fragezeichen, z.B. im RAM-Editor) markierte ein Wort obwohl es keine zu markierende Daten gab.
- Fix: Beim Versuch in Datenströme, deren Größe nicht geändert werden kann (also RAM, Disk), einzufügen oder Teile zu löschen wurde gefragt ob man der Größenänderung zustimmt, obwohl solche Operationen sowieso nicht erlaubt und abgebrochen wurden.
- Fix: Beim Einfügen am Ende einer Datei gab es eine Fehlermeldung (nur Version 1.7.5 betroffen).
- Fix: Suche zeigt keinen Fortschritt an wenn im RAM-Editor => das Programm wird träge und man bekommt keine Rückmeldung (nur Version 1.7.5 betroffen).
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
dummzeuch 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....
dummzeuch 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.
dummzeuch 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
dummzeuch 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
mael hat folgendes geschrieben: |
dummzeuch 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
Hidden 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
galagher hat folgendes geschrieben: |
Hidden 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
galagher hat folgendes geschrieben: |
Hidden 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
dummzeuch 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.
Hidden 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.
Heiko hat folgendes geschrieben: |
Sag mal: Wo legt dein prigramm seine Daten ab, wenn es nicht im portablen Modus ist? |
Im Anwendungsdaten-Ordner.
Heiko 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
mael hat folgendes geschrieben: |
Heiko 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
Heiko hat folgendes geschrieben: |
mael hat folgendes geschrieben: | Heiko 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
Heiko 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.
Heiko 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.
Heiko 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
Heiko 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
mael hat folgendes geschrieben: |
Heiko 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 ;).
mael 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)
- Neue Funktionen
- VB.NET und C# Exporter hinzugefügt.
- Verbesserungen
- Dateien, die sich auf einem Laufwerk befinden das keine Änderungsbenachrichtigungen sendet (z.B. Novell NetDrive), werden nun mittels eines Zeitgebers überwacht.
- Korrekturen
- Einige Probleme mit den Öffnen- und Speichern-Dialogen.
- Fehler beim Öffnen von Dateien mittels Kommandozeile.
- Einge Bestätigungsmeldungen wurden zweifach gezeigt oder waren unvollständig.
- Weitere kleine Korrekturen und Verbesserungen.
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
Heiko 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.
Heiko 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
mael hat folgendes geschrieben: |
Heiko 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
Heiko 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
AXMD 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:
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
jaenicke hat folgendes geschrieben : |
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
uall@ogc hat folgendes geschrieben : |
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
Heiko hat folgendes geschrieben : |
gibts eigentlich eine Setuplose Variante? |
Verwende doch die portable Version von der Download-Seite:
http://mh-nexus.de/de/downloads.php?product=HxD
uall@ogc hat folgendes geschrieben : |
Wird es auch irgendwann mal Pluginsupport geben? |
Wird es geben, aber das wird nicht in naher Zukunft sein.
jaenicke hat folgendes geschrieben : |
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
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
mael hat folgendes geschrieben : |
jaenicke hat folgendes geschrieben : | 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
jaenicke hat folgendes geschrieben : |
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.
Heiko hat folgendes geschrieben : |
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
mindtrap hat folgendes geschrieben : |
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.
mindtrap 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?
mael - Sa 08.11.08 22:05
Neue Version (1.7.6.6)
- Verbesserungen
- Backup-Dateien werden nun so erstellt, dass alle Meta-Daten erhalten bleiben. Außerdem wird nun .bak angehängt anstatt die Dateierweiterung zu ersetzen.
- Der RAM-Editor kann nun feststellen ob ein Prozess beendet wurde und aktualisiert die Anzeige dann so dass nur ein gefalteter Abschnitt angezeigt wird, der den ganzen Bereich 0x0 bis 0xFFFFFFFF umfäßt.
- Die Liste der Änderungen in der "Update suchen"-Funktion wird nun formatiert angezeigt, mit Einrückungen, Listen und klickbaren Links.
- einige Korrekturen
- weitere Anpassungen kleinerer Details und interner Funktionen
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
mael hat folgendes geschrieben: |
mindtrap 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
mindtrap hat folgendes geschrieben : |
mael hat folgendes geschrieben: |
mindtrap 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
galagher hat folgendes geschrieben : |
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
Hidden hat folgendes geschrieben : |
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
Heiko hat folgendes geschrieben : |
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)
- Korrekturen
- Das Speichern von Dateien beim Schließen von HxD wirkt tatsächlich nur für das aktive Fenster.
- Falls die Anzahl der Bytes pro Zeile größer als ein gewisser Wert ist, überlappen die Zeichen im Hex-Editor.
- Öffnen der Netzwerkumgebung in einem Öffnen- bzw. Schließendialog kann, abhängig von der Windowsversion, HxD zum Absturz bringen. Dies lag an neutralen Sprachkodes in der Versionsinformation die vom Betriebsystem im Allgemeinen nicht unterstüzt werden.
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.
- Dateninspektor-Komponente komplett selbst entwickelt
- Ist Verhalten unerwartet/unintuitiv oder nicht? Wenn ja was?
- Noch andere Optionen für Dateninspektor? (Rechtsklick|Optionen...) Wenn ja welche?
- Nach dem Ändern eines Wertes wird die Einfügemarke im Editor an das Ende der Änderung verschoben, anstatt an der selben Stelle zu bleiben. Verhält sich also wie beim direkten Tippen im Editor. Gut nicht gut?
HxD 1.8 Alpha [
http://mh-nexus.de/downloads/HxDAlpha.zip]
Heiko - Fr 31.07.09 23:09
mael hat folgendes geschrieben : |
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)
mael hat folgendes geschrieben : |
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
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
Heiko hat folgendes geschrieben : |
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:
Heiko hat folgendes geschrieben : |
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
mael hat folgendes geschrieben : |
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
Heiko hat folgendes geschrieben : |
mael hat folgendes geschrieben : | 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
uall@ogc hat folgendes geschrieben : |
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:
- Die Bytes die der aktiven Zeile im Dateninspektor entsprechen werden im Hexeditor markiert (umrahmt)
- Prozesse und Festplatten können über Header im Treeview sortiert werden
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:
- Jede Spalte (Hex-Werte) scheint 1Px zu schmall zu sein, zu mindestens wird bei mir immer der zweite Buchstabe abgeschnitten
- 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)?
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
Delphi-Laie hat folgendes geschrieben : |
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:
- Eine 64-Bit EXE (in Freepascal geschrieben) die den RAM von 64-Bit Prozessen liest und schreibt
- HxD.exe (32-Bit, weiter in Delphi geschrieben)
Ü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.
DelphiProgrammer97 - Do 01.04.10 17:45
ist das jetzt ein aprilscherz oder so? der downloadet nichts...
Gausi - Do 01.04.10 17:52
DelphiProgrammer97 hat folgendes geschrieben : |
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:
- HxD komplett in 32 und 64-Bit
- 64-bit RAM-Editor
- Auch 32-Bit HxD kann mit 64-Bit Prozessen umgehen (bis zur 4 GiB-Grenze)
- Zeigt nun auch die Prozess-ID an
- Dateninspektor
- Daten werden als verschiedene Datentypen interpretiert angezeigt und sind editierbar
- Alle Integer und Float-Typen
- Datums-/Zeittypen
- Zeichen (WideChar/AnsiChar)
- GUID
- Disassembly (x86-16, x86-32, x86-64)
- Mehr Informationen im Datenträger-Öffnen-Fenster
- Import-Funktion
- Motorola S-Record
- Intel Hex
- ETL Extended
- Exportieren/Kopieren als
- Alle suchen
- Listet alle Funde zusammen mit Fundkontext auf
- Abwechselnd gefärbte Spalten
- Beim Setzen des Windows-Explorer-Kontextmenüs in den Optionen wird nun UAC aufgerufen anstatt zu erwarten dass HxD als Admin gestartet wurde (und stillschweigend fehlzuschlagen)
- Beachten des Zeichensatzes in der Statistik
- Einige weitere kleinere Änderungen an der GUI und den Optionen
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:
BenBE hat folgendes geschrieben : |
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
Delphi-Laie hat folgendes geschrieben : |
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
Martok hat folgendes geschrieben : |
Eine alte Frage:
BenBE hat folgendes geschrieben : | 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.
Martok hat folgendes geschrieben : |
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.
Martok hat folgendes geschrieben : |
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.
mael - Di 31.10.17 23:19
Delphi-Laie hat folgendes geschrieben : |
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.
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
Nersgatt - Mi 01.11.17 08:50
Symbroson hat folgendes geschrieben : |
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
Symbroson hat folgendes geschrieben : |
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
Symbroson hat folgendes geschrieben : |
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.
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
Symbroson hat folgendes geschrieben : |
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
Symbroson hat folgendes geschrieben : |
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:
galagher - Sa 04.11.17 09:51
Hallo!
@
mael:
DOS Datum =
Disk
Operating
System 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
galagher hat folgendes geschrieben : |
Hallo!
@mael:
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
mael hat folgendes geschrieben : |
Was irritiert dich denn am Ergebnis? |
Das Ergebnis!
mael hat folgendes geschrieben : |
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
galagher hat folgendes geschrieben : |
mael hat folgendes geschrieben : | 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
mael hat folgendes geschrieben : |
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
galagher hat folgendes geschrieben : |
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
mael hat folgendes geschrieben : |
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 - 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 Narses: Dateianhang als ZIP gepackt wieder hochgeladen.
jaenicke - Mi 15.05.19 06:38
ssb-blume hat folgendes geschrieben : |
Ü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
ssb-blume hat folgendes geschrieben : |
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 :/
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
mael hat folgendes geschrieben : |
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
Sinspin hat folgendes geschrieben : |
Ü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 :)
Sinspin hat folgendes geschrieben : |
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
mael hat folgendes geschrieben : |
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
mael hat folgendes geschrieben : |
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. :)
Gausi hat folgendes geschrieben : |
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.
Edit: Die zwei letzten Anhänge konnte ich nicht anfügen, siehe daher den zweiten Post.
mael - Fr 29.01.21 17:14
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.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!