|
Antwort |
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 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:
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.4.0.0: http://mh-nexus.de/de/downloads.php?product=HxD20 Updates (Download oben):
Also dann schreibt mal eifrig Geändert von mael (28. Feb 2020 um 13:21 Uhr) |
Delphi XE3 Professional |
#341
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 . Es soll ein gutes (aber auch baldiges) Release sein. Es ist sehr viel Arbeit und Sorgfalt eingeflossen darin den Code durchzusehen und vieles zu überarbeiten und zu verbessern. Viel Arbeit wurde auch in das "Tooling"/die Werkzeuge gesteckt, da ich z.B. ein eigenes Übersetzungsprogramm habe (Babelfish) und das ein großes Codereview benötigt hat um sicherzustellen dass es mit allen Änderungen von Delphi 7 zu XE3 umgehen kann. Von 64-Bit bis Unicode war das nicht ganz einfach, ich musste auch Code aus dem XN-Resource-Explorer anpassen (zur Resourcenverwaltung/updaten) und korrigieren. Außerdem gab es viele Innereien der VCL wo ich Patches hatte für kleine störende Fehler, Änderungen in Windows, usw. Zwischenzeitlich hatte ich auch versucht per Freepascal eine 64-Bit Version zu machen als Delphi noch kein 64-Bit konnte, und dafür IPC-Code geschrieben (mit eigener IDL etc.), der aber schnell genug sein musste um Daten zu streamen. Aber das hat die ganze Architektur etwas komplex gemacht. Genauso wie die eigene Implementierung für Unicode, die natürlich mit den neuen Delphiversionen nicht kompatibel war. Mit Delphi XE3 fing dann das große Umschreiben, Anpassen, und Fertigstellen von Features an. Vieles davon ist also unter der Haube passiert und nicht so sichtbar. Wegen all den Prüfungen/Überlegungen gehe ich davon aus, dass die Fehler die sich eventuell zeigen werden, sich auch ohne allzu großen Aufwand beheben lassen. Was ist (sichtbar) neu? Es gibt sicher noch Teile die ich vergessen habe, und die im langen SVN-Log seit dem letzten Release stehen. Hier die Wichtigsten/Auffälligsten:
Hier der Download der deutschen Portable-Version: http://mh-nexus.de/downloads/HxD20BetaDeu.zip Geändert von mael ( 3. Mär 2016 um 16:17 Uhr) |
Zitat |
Delphi 10.2 Tokyo Professional |
#342
Super, habs mir direkt runtergeladen!
Hab logischerweise erst grob drübergeschaut aber was mir aufgefallen ist: 1) Nachdem man im Optionsfenster war und dort auf OK geklickt hat (egal ob man was geändert hat oder nicht) wird im Dateninspektor bei AnsiChar immer "Ungültig" angezeigt, egal wo der Cursor steht bzw. was man selektiert. Wenn man dann eine Datei öffnet oder eine neue Datei erstellt funktioniert es wieder. 2) Was an Features vllt. noch ganz cool wäre: Einen selektierten Bereich disassemblieren. Da muss dann keine große Intelligenz dahinterstehen. Einfach die Bytes so wie sie kommen übersetzen. 3) Ich erhalte beim Exportieren den Fehler
Zitat:
---------------------------
HxD --------------------------- Fehler bei Bereichsprüfung. --------------------------- OK ---------------------------
Michael
Geändert von Neutral General (29. Feb 2016 um 16:06 Uhr) |
Zitat |
Neutral General |
Öffentliches Profil ansehen |
Mehr Beiträge von Neutral General finden |
FreePascal / Lazarus |
#343
Starkes Teil!
Nur bei Export schau ich nicht so richtig durch. Ich wollte eigentlich nur einen primitiven Hexdump erstellen und das geht nicht???? Welches EBCDIC unterstützt Du? 70 76 oder ML? Gruß K-H |
Zitat |
Delphi XE3 Professional |
#344
1) Nachdem man im Optionsfenster war und dort auf OK geklickt hat (egal ob man was geändert hat oder nicht)
wird im Dateninspektor bei AnsiChar immer "Ungültig" angezeigt, egal wo der Cursor steht bzw. was man selektiert. Wenn man dann eine Datei öffnet oder eine neue Datei erstellt funktioniert es wieder. 3) Ich erhalte beim Exportieren den Fehler
Zitat:
---------------------------
HxD --------------------------- Fehler bei Bereichsprüfung. --------------------------- OK --------------------------- Nr. 2 ist was für eine zukünftige Version, ich möchte jetzt keine neuen Fehler einführen. Nur bei Export schau ich nicht so richtig durch. Ich wollte eigentlich nur einen primitiven Hexdump erstellen und das geht nicht????
Will man einen formatierten Hexdump, dann wählt man "Kopieren als/Exportieren|Editoranzeige". Welches EBCDIC unterstützt Du?
70 76 oder ML? |
Zitat |
Online
Delphi 12 Athens |
#345
ich möchte jetzt keine neuen Fehler einführen.
Zitat:
HxD wurde nicht installiert und wird damit automatisch in einer portablen Art arbeiten, so daß es auf Wechselmedien wie USB-Sticks verwendet werden kann. Damit dies funktioniert muß eine Konfigurationsdatei im Anwendungsverzeichnis von HxD erstellt werden die für alle Benutzer gilt. Falls Sie HxD in einer Mehrbenutzerumgebung verwenden oder eine Integration in das Betriebssystem wünschen (z.B. Explorer-Kontextmenü) ist eine Installation vorzuziehen.
Konfigurationsdatei im Anwendungsverzeichnis erstellen um HxD portabel zu machen? Hätte mir also eher ein [Ja] [Nein] oder [Ja] [Nein] [Abbrechen] gewünscht, wo das Programm bei "Nein" auch ohne gespeicherte Settings läuft. (es soll noch Leute geben, die CDs benutzen oder USB-Sticks mit Schreibschutz ) Werden das mit der Zeit so viele Settings, dass die in ein Unterverzeichnis müssen? (geschrieben stand auch "Programmverzeichnis" und nicht "Unterverzeichnis" ) Das in der .lang war so viel, dass es nicht in die .ini passte? PS: Das HxD Hex Editor.lang wird schon vor diesem Dialog gespeichert.
Zitat:
Nicht lesbare Bereiche ausblenden
Und ausblenden vielleicht als "ganz weg" und nicht nur zusammengeklappt. Suchen nur in angezeigten/aufgeklappten Bereichen. Es gibt auch "Sparse-Files", bei denen Teile der Datei nicht "real" auf der Platte existieren. (ReadFile liest da immer nur Nullen aus) Prinzipiell vergleichbar mit den "nichtlesbaren" RAM-Bereichen. Beim Ändern von Bytes in PAGE_EXECUTE* ein FlushInstructionCache ausführen? Strg+Runter/Hoch > springe zum nächsten/vorherrigen Bereich Strg+Shift+Runter/Hoch > markiere bis zum Ende/Anfang des Bereichs (bzw. wenn schon am Anfang/Ende, dann den ganzen nächsten Bereich) --- Du bist also jetzt fertig und hast die nächsten Jahrzehnte nix mehr zu tun? Hätte ich mir schon immer was zur Prozessanzeige (RAM) gewünscht. Was zuerst gut wäre: Ein DUMP, also 'nen Snapshot des RAM speichern und später wieder laden, samt der Metainformationen. HDD-Abbilder werden auch mit Metainfos gespeichert? (Größe der Sektoren, Name der Platte/Partition usw.) Dann vielleicht noch ein bissl Farbe und Trennung in die Anzeige?
. . . Aber voll geil wären Metainfos zu den einzelnen RAM-Bereichen (da helfe ich auch gern) Bzw. die Sektoren bei Festplatten/Dateien "Sektor 2 (Byte 00020000 bis 0002FFFF)"
Wenn man diese Metainfos hat, dann könnte man das "Nicht lesbare Bereiche ausblenden" bestimmt nützlich noch erweitern.
Geändert von himitsu (29. Feb 2016 um 21:20 Uhr) |
Zitat |
Delphi XE3 Professional |
#346
Einige Korrekturen, unter anderem für die oben genannten Bugs.
Gleicher Download wie vorher: http://mh-nexus.de/downloads/HxD20BetaDeu.zip (Die Bereichsfehler sind sozusagen Tests ob jemand testet... Geändert von mael ( 3. Mär 2016 um 16:17 Uhr) |
Zitat |
Delphi 10.2 Tokyo Professional |
#347
(Die Bereichsfehler sind sozusagen Tests ob jemand testet...
Klappt jetzt soweit alles, super Du bist also jetzt fertig und hast die nächsten Jahrzehnte nix mehr zu tun?
Hätte ich mir schon immer was zur Prozessanzeige (RAM) gewünscht. ...
Michael
|
Zitat |
Neutral General |
Öffentliches Profil ansehen |
Mehr Beiträge von Neutral General finden |
Delphi XE3 Professional |
#348
Zitat:
<Startmeldung zum Anlegen einer INI-Datei>
Hätte mir also eher ein [Ja] [Nein] oder [Ja] [Nein] [Abbrechen] gewünscht, wo das Programm bei "Nein" auch ohne gespeicherte Settings läuft. (es soll noch Leute geben, die CDs benutzen oder USB-Sticks mit Schreibschutz ) Das Problem ist natürlich, dass sich eventuell HxD schon auf einem schreibgeschützten Medium befindet, wenn das passiert. Daher wäre es praktischer, wenn ein Setupprogramm das Kopieren auf ein Medium erledigen würde und eine INI-Schreibgeschützt-Option explizit anbietet. Ich denke so werde ich es machen, ob in diesem Release oder dem nächsten wird sich noch zeigen. Werden das mit der Zeit so viele Settings, dass die in ein Unterverzeichnis müssen?
Unter anderem kommen z.B. noch Übersetzungen in ein Lang-Verzeichnis hinzu (momentan 23), daher sollte das alles getrennt sein. Ein Ordner wird auch automatisch anders sortiert als Dateien (immer vor oder nach Dateien, nie gemischt), wodurch es übersichtlicher wird. Ein weiterer Grund ist, dass konzeptionell Einstellungen und Programme nicht im gleichen Verzeichnis sein sollten, wenn man z.B. aus Sicherheitsgründen Rechte einschränken will. Also: es bleibt so :p Das in der .lang war so viel, dass es nicht in die .ini passte?
Der Grund für diesen Hook ist unter anderem, dass man ein extra Lang-Verzeichnis angeben kann um nicht das Hauptverzeichnis mit Übersetzungen "zuzuspammen". Wegen dem frühen Systemhook ist es unpraktisch das mit der deutlich komplexeren Klasse die Einstellungen (in INI, Registry, XML) speichert (und Fehler meldet und damit resourcestrings hat) zu verbinden. Da es sowieso einen Settings-Ordner gibt ist das ja kein Problem Wie gesagt bisher 23 Sprachen und dann noch die 64- und 32-Bit-Version, irgendwann sieht man nichts mehr. Das soll so gehen: Ordner auf, kurzer Blick, Doppelklick => HxD ist offen. Daher die Ordner. PS: Das HxD Hex Editor.lang wird schon vor diesem Dialog gespeichert.
Geändert von mael ( 3. Mär 2016 um 20:42 Uhr) |
Zitat |
Delphi XE3 Professional |
#349
Zitat:
Zitat:
Nicht lesbare Bereiche ausblenden
Zitat:
Und ausblenden vielleicht als "ganz weg" und nicht nur zusammengeklappt.
Zitat:
Suchen nur in angezeigten/aufgeklappten Bereichen.
Es gibt auch "Sparse-Files", bei denen Teile der Datei nicht "real" auf der Platte existieren. (ReadFile liest da immer nur Nullen aus)
Prinzipiell vergleichbar mit den "nichtlesbaren" RAM-Bereichen. Man könnte natürlich Sektionen/faltbare Bereiche einführen, wofür das nützlich sein soll frage ich mich allerdings. Beim Ändern von Bytes in PAGE_EXECUTE* ein FlushInstructionCache ausführen?
Strg+Runter/Hoch > springe zum nächsten/vorherrigen Bereich
Strg+Shift+Runter/Hoch > markiere bis zum Ende/Anfang des Bereichs (bzw. wenn schon am Anfang/Ende, dann den ganzen nächsten Bereich) Du bist also jetzt fertig und hast die nächsten Jahrzehnte nix mehr zu tun?
Hätte ich mir schon immer was zur Prozessanzeige (RAM) gewünscht.
Was zuerst gut wäre: Ein DUMP, also 'nen Snapshot des RAM speichern und später wieder laden, samt der Metainformationen.
HDD-Abbilder werden auch mit Metainfos gespeichert? (Größe der Sektoren, Name der Platte/Partition usw.)
Dann vielleicht noch ein bissl Farbe und Trennung in die Anzeige?
Trennlinie? Mal sehen, wird ja schon durch diese +/-Buttons getrennt. Aber voll geil wären Metainfos zu den einzelnen RAM-Bereichen (da helfe ich auch gern)
Bzw. die Sektoren bei Festplatten/Dateien "Sektor 2 (Byte 00020000 bis 0002FFFF)"
Ist ganz allgemein eine Idee um Struktur in jeder Art von Datenstrom darzustellen. Speicherbereiche im RAM-Editor wären eine Anwendungsmöglichkeit. Passt also grob in meine Ziele, am Anfang wird es aber wohl eher eine Liste sein. Kann man hier irgendwie rausfinden, ob Bytes einer geladenen EXE/DLL "manipuliert" sind?
Wenn es einfach machbar ist, dann vielleicht, aber momentan hat das keine größere Priorität. Das geht schon in Richtung Debugger mit all dem verbundenen Aufwand. ModulName (EXE, DLL, Named-MMF)
wenn man ganz hart drauf ist, kann man auch die PE-Header auslesen und bei EXE/DLL die Sektionen der Module/Dateien mit anzeigen
[*] TImageFileHeader TImageOptionalHeader TImageSectionHeader TImageExportDirectory TImageDataDirectory uvm. (Windows.pas)[*] Start-/Einsprungadresse, #CODE-Section, #DATA-Section, Resource-Section, Sprung-Tabellen der importierten DLL-Funktionen, ...[/LIST][*] und die ganz harten, würden dann noch die Debuginfos suchen und Code-Adressen der einzelnen Funktionen/Bezehle suchen[/LIST]
man wird bestimmt auch irgendwie die Stacks aller Trhreads suchen/markieren können
[*] Speicher manipulieren (erweitert)
Wenn man diese Metainfos hat, dann könnte man das "Nicht lesbare Bereiche ausblenden" bestimmt nützlich noch erweitern.
War dein Post unter dem Motto: "Mal schnell alle Wünche posten bevor ich nicht mehr darf?" haha Einige davon werde ich umsetzen, aber ich habe auch viele eigene Ziele und Wünsche, und die werde ich im Gegensatz zu früher priorisieren, sonst macht es keinen Spass und artet in unbezahlten Stress aus. Aber ich schätze dein Interesse und werde sehen was sich mit meinem überschneidet und dann Entsprechendes implementieren. Es sind einige schöne Sachen geplant, auch bestimmt unerwartete für übliche Hexeditoren |
Zitat |
Delphi 10.2 Tokyo Professional |
#350
Es sind einige schöne Sachen geplant, auch bestimmt unerwartete für übliche Hexeditoren
Michael
|
Zitat |
Neutral General |
Öffentliches Profil ansehen |
Mehr Beiträge von Neutral General finden |
Ansicht |
Linear-Darstellung |
Zur Hybrid-Darstellung wechseln |
Zur Baum-Darstellung wechseln |
ForumregelnEs 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
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
LinkBack URL |
About LinkBacks |