AGB  ·  Datenschutz  ·  Impressum  







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

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

Ein Thema von mael · begonnen am 4. Feb 2005 · letzter Beitrag vom 11. Feb 2021
Antwort Antwort
Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#1

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

  Alt 3. Feb 2016, 14:19
Ich dachte schon ich hätte nun so gut wie alles durchgesehen, da ist mir aufgefallen dass die Logik für Locking/Sharing von Dateien/Disks noch unvollständig war.

Es funktioniert zwar, aber so dass sie permanent acquired/released werden, was zu unheimlichen Lags führt. War schon Jahre her dass ich diesen (damals unfreiwillig unbeendeten Teil) geschrieben hatte, und daher nicht mehr klar.

Kurz gesagt: mehr Design ist notwendig um das abzuschließen :/

Aber die nächste Version kommt auf jeden Fall, das wird jetzt bis zum Schluss durchgezogen.

(P.S.: Entschuldigung für das Denglisch.)
HxD, schneller Hexeditor:
http://mh-nexus.de/hxd
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.401 Beiträge
 
Delphi 12 Athens
 
#2

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

  Alt 3. Feb 2016, 16:00
So lange es noch in diesem Jahrtausend kommt, ist doch alles in Ordnung.

Ansonsten solltest du schon mal langsam Three-State-Quantenbits implementieren. (True, False, Maybe )
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#3

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

  Alt 3. Feb 2016, 18:21
So lange es noch in diesem Jahrtausend kommt, ist doch alles in Ordnung.

Ansonsten solltest du schon mal langsam Three-State-Quantenbits implementieren. (True, False, Maybe )
Das sollte sich einrichten lassen, ebenso wie ein paar Heisenbugs
HxD, schneller Hexeditor:
http://mh-nexus.de/hxd
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

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

  Alt 4. Feb 2016, 16:08
Aber die nächste Version kommt auf jeden Fall, das wird jetzt bis zum Schluss durchgezogen.
Was heißt das - ist eine Ende abzusehen?

Oder ist der "Schluss" aus heutiger Sicht offen?
  Mit Zitat antworten Zitat
Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#5

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

  Alt 4. Feb 2016, 17:20
Aber die nächste Version kommt auf jeden Fall, das wird jetzt bis zum Schluss durchgezogen.
Was heißt das - ist eine Ende abzusehen?

Oder ist der "Schluss" aus heutiger Sicht offen?
Das heißt dass das Ende abzusehen ist, aber länger dauert als ich vermutet habe und ich gerne hätte dass es schneller geht
HxD, schneller Hexeditor:
http://mh-nexus.de/hxd
  Mit Zitat antworten Zitat
Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#6

HxD 2.0 Beta ist da!

  Alt 29. Feb 2016, 14:28
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:
  • 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
    • PureBasic
  • 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
HxD, schneller Hexeditor:
http://mh-nexus.de/hxd

Geändert von mael ( 3. Mär 2016 um 15:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

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

  Alt 29. Feb 2016, 14:59
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
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."

Geändert von Neutral General (29. Feb 2016 um 15:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

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

  Alt 29. Feb 2016, 16:43
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#9

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

  Alt 29. Feb 2016, 19:24
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
---------------------------
Danke, korrigiert. Ich warte noch auf weiteres Feedback und veröffentliche dann die Korrekturen zusammen.
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????
Abgesehen vom Fehler der oben gemeldet wurde, funktioniert das einfach durch Kopiern&Einfügen. Man muss dazu nur im Hexbereich (nicht Textbereich) des Hexeditors sein, es wird dann in der Zwischenablage sowohl als Text(hexdump) bzw. als Bytefolge gespeichert. Die Windows-Zwischenablage unterstützt verschiedene Datentypen gleichzeitig.

Will man einen formatierten Hexdump, dann wählt man "Kopieren als/Exportieren|Editoranzeige".

Welches EBCDIC unterstützt Du?
70 76 oder ML?
Entweder was LOCALE_IDEFAULTEBCDICCODEPAGE zurückgibt, oder als Fallback EBCDIC 500
HxD, schneller Hexeditor:
http://mh-nexus.de/hxd
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.401 Beiträge
 
Delphi 12 Athens
 
#10

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

  Alt 29. Feb 2016, 19:52
ich möchte jetzt keine neuen Fehler einführen.
Och menno.

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?
Hab auf Abbrechen gedrückt und dachte ich kann erstmal so...
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
Wäre schön, wenn man das im Menü Ansicht nochmal hätte. (vielleicht als 2 Menüpunkte, Lesbares einblenden und Nichtlesbares Ausblenden, am Besten aus den selektierten bereich, wenn z.B. mehr als 100 Byte markiert sind)
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?
  • Trennlinie zwischen die Bereiche
  • nichtlesbare Bereiche gräulich hinterlegt

.
.
.

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)"
  • angefangen mit VirtualQueryEx
    • MEM_COMMIT MEM_RESERVE MEM_FREE MEM_PRIVATE MEM_MAPPED (kann man schön farblich machen ... abgesehn von FREE besser nur als Streifen am Rand)
    • EXE und DLL sind oft als MEM_MAPPED+PAGE_EXECUTE_WRITECOPY in den RAM gemappt
      • Kann man hier irgendwie rausfinden, ob Bytes einer geladenen EXE/DLL "manipuliert" sind?
  • 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, ...
    • und die ganz harten, würden dann noch die Debuginfos suchen und Code-Adressen der einzelnen Funktionen/Bezehle suchen
  • man wird bestimmt auch irgendwie die Stacks aller Trhreads suchen/markieren können
  • Speicher manipulieren (erweitert)
    • VirtualProtectEx, VirtualAllocEx, VirtualFreeEx
    • PAGE_EXECUTE PAGE_EXECUTE_READ PAGE_EXECUTE_READWRITE PAGE_EXECUTE_WRITECOPY PAGE_GUARD PAGE_NOCACHE

Wenn man diese Metainfos hat, dann könnte man das "Nicht lesbare Bereiche ausblenden" bestimmt nützlich noch erweitern.
  • zeige nur Module (EXE/DLL) an
  • zeige nur veränderte Module (EXE/DLL) an
  • zeige nur "RAM" an (ohne Modul-Abbilder und MMFs)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (29. Feb 2016 um 20:20 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz