AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte HxD - schneller Hexeditor, Disk-Editor und RAM-Editor

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

Ein Thema von mael · begonnen am 4. Feb 2005 · letzter Beitrag vom 21. Jan 2019
Antwort Antwort
Seite 22 von 38   « Erste     12202122 232432     Letzte » 
Benutzerbild von mael
mael
Registriert seit: 13. Jan 2005
Neue Version 2.2 (16.1.2019), 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 jetzt schon eine Zeit lang entwickle.

Den Hexeditor habe ich 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)
Heute (04.02.2005) habe ich gerade die erste stabile Version veröffentlicht und würde mich über Tests und Vorschläge (natürlich auch Lob ) freuen.

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.

http://mh-nexus.de/de/graphics/MiniShotHxD.png

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

Updates (Download oben):
Also dann schreibt mal eifrig

Geändert von mael (17. Jan 2019 um 15:40 Uhr)
 
Junior22

 
Delphi 7 Professional
 
#211
  Alt 1. Apr 2008, 21:57
Hallo mael
Du wann kann man mit der englischen version 1.7.5 rechnen? bzw solltest du mal deine hp auf aktuelsten stand bringen.
Habe dein Programm in einem forum postet und die dachten es währe ein april schertz meiner seitz.
Ps Ein super Tools nutze ich nur^^
  Mit Zitat antworten Zitat
Benutzerbild von mael
mael

 
Delphi XE3 Professional
 
#212
  Alt 2. Apr 2008, 01:29
Auf meiner Website ist absichtlich noch nicht die neuste Version verfügbar (zumindest nicht über einen Link), weil ich erst noch abwarten wollte ob Fehlermeldungen kommen bevor ich die neue Version "ganz groß" veröffentliche.

In ein paar Tagen sollte es aber soweit sein, ich schreibe dann hier nochmal rein.
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

 
Delphi 3 Professional
 
#213
  Alt 11. Apr 2008, 10:40
so wie es aussieht kann ich im Ram-Modus nicht mehr suchen.
hab den explorer-prozess geladen und einfach bei suchen nach textstring+unicode gesucht...es passiert nix...keine Meldung "nicht gefunden" und kein Treffer. beim schließen des Prozesses eine AV.

was noch schön wäre...wenn man ne zweite instanz startet, dass die erste instanz restored wird.

Gruß Frank
Frank Wunderlich
  Mit Zitat antworten Zitat
Benutzerbild von mael
mael

 
Delphi XE3 Professional
 
#214
  Alt 11. Apr 2008, 13:38
Zitat von _frank_:
so wie es aussieht kann ich im Ram-Modus nicht mehr suchen.
hab den explorer-prozess geladen und einfach bei suchen nach textstring+unicode gesucht...es passiert nix...keine Meldung "nicht gefunden" und kein Treffer. beim schließen des Prozesses eine AV.
Danke, habe ich auch schon gemerkt und korrigiert. Vielleicht kommt heute noch ein Update.

Zitat von _frank_:
was noch schön wäre...wenn man ne zweite instanz startet, dass die erste instanz restored wird.
Wurde aktiviert aber nicht wiederhergestellt. Jetzt auch korrigiert.
  Mit Zitat antworten Zitat
werwiewas
 
#215
  Alt 13. Apr 2008, 11:30
Hallo Mael,

ich habe eine kurze Anmerkung und Bitte für die nächste "offizielle" Version von HxD:

Das Kopieren von Zeilenumbrüchen in die Zwischenablagae funktioniert nicht (1.7.5 Deutsch). Statt #10 / #13 / #13#10 erhalte ich einfach nur die '.' Punkte aus der Ansicht.

Es wäre besser, stattdessen den Inhalt byte-genau zu kopieren, so daß es möglich ist, einzelne Abschnitte aus großen Binärdateien auch schnell über die Zwischenablage zu extrahieren.

Mögliche Alternative: Export -> Binär in Zischenablage.

Meinungen?
  Mit Zitat antworten Zitat
Benutzerbild von mael
mael

 
Delphi XE3 Professional
 
#216
  Alt 14. Apr 2008, 15:03
Hallo WerWieWas
Zitat von werwiewas:
Das Kopieren von Zeilenumbrüchen in die Zwischenablagae funktioniert nicht (1.7.5 Deutsch). Statt #10 / #13 / #13#10 erhalte ich einfach nur die '.' Punkte aus der Ansicht.

Es wäre besser, stattdessen den Inhalt byte-genau zu kopieren, so daß es möglich ist, einzelne Abschnitte aus großen Binärdateien auch schnell über die Zwischenablage zu extrahieren.
Die Zeilenumbrüche und andere Steuerzeichen wie Tabulatorzeichen sollten wohl besser erhalten bleiben, das stimmt.
Eine Binärkopie wird es aber nicht werden, da z.B. auch #0-Zeichen vorkommen können und die Windows-Zwischenablage den Text bei einem Nullzeichen abschneidet. Außerdem wird auch der Zeichensatz beachtet (z.B. DOS/OEM anstatt ANSI), also ist es keine wirkliche Binärkopie (das macht aber nichts, da die Bytedaten sowieso zusätzlich kopiert werden). Es geht also sowieso nur um die Textrepräsentation z.B. für den Austausch mit Texteditoren oder um es in der Text-Suche zu verwenden. Beim Kopieren und Einfügen innerhalb HxDs geht nichts verloren.

Das einzige Problem, daß ich bei dieser Umstellung sehe wäre, daß im DOS/OEM-Zeichensatz alle Steuerzeichen außer #0 als spezielle Symbole dargestellt werden wie unter DOS üblich, #13 ist z.B. ein Notenzeichen. Ich denke es ist sinnvoll zu kopieren, daß es so weit wie möglich der Darstellung am Bildschirm entspricht. Punkte sind nur Platzhalter, sie können also problemlos durch die echte Darstellung (sprich Zeilenumbruch) beim Kopieren in die Zwischenablage "ersetzt" werden. Aber das Notenzeichen für #13 z.B. ist nicht nur ein Platzhalter, sondern wird tatsächlich im DOS/OEM-Zeichensatz so dargestellt, ich kann es also nicht einfach durch einen Zeilenumbruch ersetzen.

Die beste Idee die ich bis jetzt dazu habe ist es optional zu machen ob Steuerzeichen (wie #13, #10, etc.) als Steuerzeichen erhalten bleiben, oder Sonderzeichen darzustellen wenn der Zeichensatz es anbietet.

Eine Frage stellt sich noch: Falls Nullzeichen, die nicht als Nullzeichen kopiert werden können, vorkommen, soll der Text an der Stelle abgeschnitten werden oder das Nullzeichen als Punkt(=Platzhalter) in die Zwischenablage kopiert werden?
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#217
  Alt 14. Apr 2008, 16:26
Hi mael,
ich weiß nicht ob diese Bitte schon gestellt wurde, aber wäre es möglich ein "Hex to Dec" bzw. "Dec to Hex" Feld einzubauen? So ähnlich wie manche Suchen (z.B. Firefox oder TV Browser).

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
werwiewas
 
#218
  Alt 15. Apr 2008, 12:11
Zitat von mael:
Die Zeilenumbrüche und andere Steuerzeichen wie Tabulatorzeichen sollten wohl besser erhalten bleiben, das stimmt.
Danke, freut mich zu lesen.

Zitat von mael:
Eine Binärkopie wird es aber nicht werden, da z.B. auch #0-Zeichen vorkommen können und die Windows-Zwischenablage den Text bei einem Nullzeichen abschneidet.
Das stimmt so nicht: Es ist nicht die Windows Zwischenablage, die den Text abschneidet, sondern der Editor, der den Text einfügen. Ich will hier keine Werbung machen, aber es gibt Editoren, die #0 inkl. anschließendem Text problemlos einfügen.

Zitat von mael:
Außerdem wird auch der Zeichensatz beachtet (z.B. DOS/OEM anstatt ANSI), also ist es keine wirkliche Binärkopie (das macht aber nichts, da die Bytedaten sowieso zusätzlich kopiert werden).
Binär <> Zeichensatz! Die 100% Binärkopie ist absolut wichtig, z.B. um Blöcke aus 10 MB XML Dateien zu extrahieren und Parser zu testen.

Zitat von mael:
Es geht also sowieso nur um die Textrepräsentation z.B. für den Austausch mit Texteditoren oder um es in der Text-Suche zu verwenden. Beim Kopieren und Einfügen innerhalb HxDs geht nichts verloren.
Mir geht es eben genau nicht um die Textrepräsentation, sondern um binär ohne wenn und aber!

Alternativ habe ich versucht, aus HxD heraus zu kopieren und in eine neue, leere Datei in HxD einzufügen. Leider geht das nicht, solange die neue Datei noch wirklich leer ist. Fehlermeldung: Ungültige Hex-Werte.

Aber ich will hier bestimmt nicht meckern: HxD ist schon jetzt ein tolles Programm!
  Mit Zitat antworten Zitat
Benutzerbild von mael
mael

 
Delphi XE3 Professional
 
#219
  Alt 15. Apr 2008, 15:10
Zitat von xZise:
wäre es möglich ein "Hex to Dec" bzw. "Dec to Hex" Feld einzubauen?
Ja, ist geplant

Zitat von werwiewas:
Zitat von mael:
Eine Binärkopie wird es aber nicht werden, da z.B. auch #0-Zeichen vorkommen können und die Windows-Zwischenablage den Text bei einem Nullzeichen abschneidet.
Das stimmt so nicht: Es ist nicht die Windows Zwischenablage, die den Text abschneidet, sondern der Editor, der den Text einfügen. Ich will hier keine Werbung machen, aber es gibt Editoren, die #0 inkl. anschließendem Text problemlos einfügen.
Das Problem ist, daß der Speicher den man über GlobalAlloc für die Kopie in der Zwischenablage reservieren muß größer sein kann als angefordert (Also für "Text" brauche ich 4 oder 5 Bytes (falls Nullzeichen mitkopiert wird), es werden tatsächlich aber 16 Bytes reserviert). In der WinAPI-Dokumentation steht zu GlobalAlloc "The size of a memory block may be larger than the size requested when the memory was allocated.". D.h. entweder enthält das Zwischenablagenformat eine Größenangabe (Bei Bitmaps ist das z.B. Teil des Formats) oder man verwendet GlobalSize um die Anzahl der Bytes zu ermitteln die man aus der Zwischenablage lesen soll. GlobalSize wird aber wie gesagt eventuell mehr zurückgeben als eigentlich reserviert und geschrieben wurde, am Ende stehen also eventuell uninitialisierte Daten. Um zu verhindern daß diese zusätzlichen Daten mit eingefügt werden wird bei Text das #0-Zeichen als Ende-Zeichen verwendet. Dazu gibt es daher keine Alternative. Wäre in Windows das CF_TEXT Format so definiert worden, daß die ersten vier Bytes z.B. die Länge des Textes angeben gäbe es diese Problem nicht, aber da kein aktuelles Programm diese Längenangabe erkennen würde hat dies auch keinen Sinn.

Zum Ansehen der Zwischenablage (mit allen Bytes in "Rohform") habe ich mal was Kleines gemacht: http://mh-nexus.de/downloads/RawClipView.exe (Unter Windows XP liefert GlobalSize normalerweise die "richtigen" Werte, aber es ist nicht garantiert, daß dies immer und in jeder Windows-Version so ist).


Zitat von werwiewas:
Zitat von mael:
Außerdem wird auch der Zeichensatz beachtet (z.B. DOS/OEM anstatt ANSI), also ist es keine wirkliche Binärkopie (das macht aber nichts, da die Bytedaten sowieso zusätzlich kopiert werden).
Binär <> Zeichensatz!
Sicher, "Binär <> Zeichensatz". Lade mal irgendeine Datei in HxD, dann kopiere (in der Textspalte!) einen Teil, einmal mit ANSI-Zeichensatz einmal mit DOS-Zeichensatz, und füge beides in einen Unicode-fähigen Editor ein, z.B. Wordpad/Notepad. Die gleichen Daten werden also zu verschiedenem Text übersetzt und das ist auch so gewollt.

Zitat von werwiewas:
Die 100% Binärkopie ist absolut wichtig, z.B. um Blöcke aus 10 MB XML Dateien zu extrahieren und Parser zu testen.
Es gibt keine Möglichkeit Binärkopien zwischen verschiedenen Programmen zuverlässig über die Zwischenablage auszutauschen, weil das Textformat CF_TEXT vom aktuellen Windows-Zeichensatz abhängig ist und CF_UNICODETEXT zwei Bytes pro Zeichen verwendet. Die einzige Möglichkeit ist eine Folge von Hex-Zeichen die dann wieder zurückkonvertiert werden können.

Das ändert nichts daran, daß HxD zusätzlich eine Binärkopie anlegt, d.h. wenn man innerhalb HxD's kopiert und einfügt bekommt man eine identische Kopie. (Texteditoren können mit "Binärdaten" nicht viel anfangen, denn Text ist immer von einem Zeichensatz abhängig, daher halte ich diese Implementierung für sinnvoll).

Zitat von werwiewas:
Mir geht es eben genau nicht um die Textrepräsentation, sondern um binär ohne wenn und aber!
Zwischen Programmen, abgesehen von Hexeditoren die eine Folge von Hex-Zeichen verstehen ist das nicht machbar. Innerhalb HxDs einfach kopieren und einfügen (strg+c/strg+v) und es sollte eine identische Kopie gemacht werden (unabhängig vom Zeichensatz). Was in der Windows-Zwischenablage als Text steht ist dann unerheblich.

Zitat von werwiewas:
Alternativ habe ich versucht, aus HxD heraus zu kopieren und in eine neue, leere Datei in HxD einzufügen. Leider geht das nicht, solange die neue Datei noch wirklich leer ist. Fehlermeldung: Ungültige Hex-Werte.
Dann muß man auf die Hex-Spalte gehen und von dort kopieren. Falls HxD nicht zwischenzeitlich geschlossen wurde sollte das aber gar nicht passieren (da noch in der internen Zwischenablage).
Wie genau bist Du vorgegangen? Z.B. Kopiert, dann im Texteditor XY bearbeitet, dann wieder eingefügt. Oder kopiert, HxD geschlossen, wieder in HxD eingefügt.
  Mit Zitat antworten Zitat
Benutzerbild von mael
mael

 
Delphi XE3 Professional
 
#220
  Alt 16. Apr 2008, 15:00
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
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

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

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

Gehe zu:

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