Frage

Ich habe eine Binärdatei.Ich weiß nicht, wie es formatiert ist, ich weiß nur das es stammt aus einer delphi-code.

Gibt es irgendeine Art und Weise zu analysieren, eine binäre Datei?

Gibt es keine "Muster" zu analysieren und zu Deserialisieren der binäre Inhalt einer Datei mit unbekanntem format?

War es hilfreich?

Lösung

Versuchen Sie diese:

  1. Deserialize Daten : analysieren, wie es Ihre exe kompiliert (versuchen File Analyzer ). Versuchen Sie, die Binärdaten mit der Sprache entdeckt deserialisieren. Dann serialisiert es in einem XML-Format (spricht indipendent), dass jeder Programmiersprache verstehen
  2. Analysieren Sie die binären Daten : versuchen, verschiedene Versionen der Datei mit wenig Variation und verwenden Sie ein Diff-Programm zu analysieren, um die Bedeutung jedes Bit mit einem Hex-Editor zu speichern. Verwenden Sie es in Verbindung mit binären Hacking-Techniken (wie Wie ein binäres Dateiformat von Frans Faase zu knacken)
  3. Kehrt die Anwendungstechniker : versuchen immer Code mit Reverse-Engineering-Tools für die Programmiersprache für Build die App verwendet (mit File Analyzer ). Ansonsten Disassembler-Analyse-Tool wie verwenden IDA Pro Disassembler

Andere Tipps

Für mein Hobby-Projekt hatte ich Ingenieur einige alte Spieldateien umzukehren. Meine Ansätze waren:

  • Haben Sie einen guten Hex-Editor.
  • Geben Sie für lesbare Wörter in der Binärdatei. Beachten Sie, wie ihre Verteilung ist. Wenn der Abstand zwischen ihnen konstant ist, ob Sie es eine Auflistung ist.
  • Geben Sie für 2-3 daraus folgende Nullen. Könnte ein int32 Wert anzuzeigen.
  • Einige D-Worte könnten Zeiger in die Datei sein.
  • Versuchen reoccurring Muster in der Datei zu identifizieren.
  • Sehen viele C0-CF könnte RLE komprimierte Daten angeben.

Umkehr eine Binärdatei Engineering, wenn Sie eine Vorstellung davon haben, was es darstellt, ist ein sehr zeitaufwendiger Prozess. Wenn Sie keine Ahnung haben, was es ist, dann wird es noch schwieriger sein.

Es ist möglich, aber, aber Sie haben dafür einen ziemlich guten Grund haben.

Der erste Schritt wäre es in einem Hex-Editor Ihrer Wahl zu öffnen und sehen, ob Sie einen englischen Text, den Sie in Richtung zu zeigen, was die Datei selbst sollte finden darzustellen. Von dort Google „Engineering Binärdateien Reverse“, es gibt viel mehr erfahren Leute sind als ich, die Führer darüber geschrieben hat.

Die "Strings" -Programm von GNU binutils ist sehr nützlich. Es wird die Saiten druckbare Zeichen in eine Datei drucken, sehr oft einen Anhaltspunkt zu geben, was eine Datei enthält oder ein Programm der Fall ist.

Wenn die Daten serialisiert Delphi Objekte darstellt, sollten Sie über die Delphi Serialisierungsprozeß anfangen zu lesen. Wenn das der Fall ist, glaube ich, die beste Wahl zu laden wäre Delphi verwenden und Ihre Analyse aus der IDE fortzusetzen. Einige Informationen über Delphi Serialisierung können hier .

EDIT: wenn die Datei serialisiert delphi Objekte enthält, dann sollten Sie ein kleines delphi Programm schreiben, das es lädt und „umwandeln“, um die Daten selbst zu etwas neutral, wie xml. Wenn Sie es schaffen, dies zu tun, sollten Sie überprüfen und sehen, ob delphi, um XML unterstützt die Serialisierung. Dann könnten Sie die Objekte aus jeder Sprache zugreifen.

Ich habe entwickelt Hexinator (Fenster & Linux) und Synalyze Es! (macOS) für genau diesen Zweck.Diese Anwendungen erlauben es Ihnen, zu sehen, die mit binären Dateien wie in anderen hex-Editoren, aber zusätzlich können Sie eine "Grammatik" mit den Besonderheiten einer Binär-Datei-format.Die Grammatik enthält alle Bausteine und wird verwendet, um Parsen der Datei automatisch.

So können Sie halten das wissen, das Sie gewinnen in der Analyse und anwenden, um mehrere Dateien gleichzeitig.Sie können auch die Farbe-code-die bits und Stücke von Datei-Formate für eine schnelle übersicht in den hex-editor.Screen Shot of Synalyze It! Pro Die Analyse-Ergebnisse werden in einer Strukturansicht angezeigt, wo können Sie auch ändern Sie die Dateien einfach (Anwendung endianness et cetera).

Der Unix-Befehl „file“ ist wirklich nützlich - ich weiß nicht, ob es so etwas wie es in den Fenstern ist. Sie führen Sie es wie folgt aus:

file myfile.ext

Und es spuckt eine Textbeschreibung auf der Basis der magischen Zahlen und Daten darin enthalten sind.

Wahrscheinlich ist es darin enthaltenen Cygwin .

Wenn Sie den Zugriff auf die Anwendung haben, der die Datei erstellt, können Sie Änderungen an der Anwendung anwenden, speichern Sie die Datei und sehen Sie die Auswirkungen (Beachten Sie, dass die Zahlen wahrscheinlich in little-endian ):

  • Sie zuerst die Datei wiederholt erstellen. Wenn die Dateien nicht binär gleich sind, die aktuelle Datum / Zeit wahrscheinlich in dem Bereich gespeichert wird, wo hte Unterschiede auftreten.
  • Vielleicht möchten Sie, dass wiederholen mit der Software unter verschiedenen Umgebungen ausgeführt werden, um zu sehen, ob OS-Version usw. gespeichert sind, aber das ist eher ungewöhnlich.
  • Weiter können Sie versuchen, einzelne Variablen zu ändern und mehrere Dateien erstellen, die nur in dem Wert dieser Variablen unterscheiden. Dies hilft Ihnen festzustellen, wo diese Variable gespeichert wird.
  • Auf diese Weise können auch Variablen ausschließen können, die nicht in der Datei gespeichert werden. Wenn Sie sie ändern, aber die erstellten Dateien sind identisch, sie werden nicht gespeichert

Um die Hypothesen zu testen Sie mit den obigen Schritten ausgearbeitet, bearbeitet eine der Dateien und haben die Anwendung, um sie lesen.

Wenn Sie Zugriff haben nicht auf die Anwendung selbst, schlage ich vor, dass Sie es vergessen und einen anderen Weg finden, Ihr Problem zu lösen. Es gibt eine sehr hohe Wahrscheinlichkeit, dass es schneller sein ...

Wenn file keine sinnvolle Antwort geben, können Sie versuchen, TrID von Marco Pontello, um zu bestimmen, ob Ihre Daten in einem bekannten Format gespeichert wird.

Kennen Sie das Programm, das es verwendet? Wenn ja, können Sie Haken, dass die Programme schreiben Funktion Datei und eine Vorstellung davon, welche Daten sein Schreiben zu erhalten, die Größe der Daten und wo.

Weitere Informationen: http://www.codeproject.com/KB/DLL/ Win32APIHooking_Trouble.aspx

Holen Sie sich das Delphi-Anwendung und öffnen Sie sie in IDA Pro Freeware-Version , und finden, wo es die Datei schreibt, und dekodieren, wie es die Datei auf diese Weise schreibt.

Es sei denn, es ist Plan Text.

Im Gegensatz zu traditionellen Hex-Editoren, die nur das rohe hex Bytes einer Datei anzuzeigen, 010 Editor kann auch eine Datei in eine hierarchische Struktur parst eine Binary Template verwendet wird. Die Ergebnisse eine binäre Vorlage ausgeführt sind viel einfacher zu verstehen und zu bearbeiten, als nur die rohe hex Bytes verwendet wird.

http://www.sweetscape.com/010editor/

Versuchen Sie es in einem Hex-Editor zu öffnen und analysieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top