Zerlegen zu identifizieren Verschlüsselungs-Algorithmus
Ziel (Allgemein)
Meine ultimate (langfristige) Ziel ist das schreiben ein Importeur für eine binäre Datei in einer anderen Anwendung
Frage Hintergrund
- Ich interessiere mich für zwei Felder in eine Binär-Datei-format. Man ist
verschlüsselt, und der andere ist komprimiert und ggf. auch verschlüsselt.
(Siehe wie kam ich zu diesem Schluss hier). - Ich habe ein viewer-Programm (ich nenne es viewer.exe), die öffnen können Sie diese Dateien für die Anzeige. Ich hoffe, ich kann dies bieten einige Anhaltspunkte.
- Werde ich (bald) haben eine korrelierte entziffert Ausgabe zu vergleichen und Werten zu suchen.
- Dies ist die relevante stackoverflow F/A, die ich gefunden habe
Frage Spezifische
Was ist die beste Strategie angesichts der Ressourcen, die ich zu identifizieren, die der Algorithmus verwendet?
Aktuellen Ideen
- Merke ich, dass ohne den Schlüssel, Identifizierung der algo aus eben Daten ist praktisch unmöglich
- Dass eine Datei und ein viewer.exe muss ich den key irgendwo. Ob es öffentliche, private, symmetrisch usw...das wäre schön herauszufinden.
- Ich würde gerne zerlegen viewer.exe mit OllyDbg mit den findcrypt plugin als ersten Schritt. Ich bin einfach nicht bewandert genug in dieser Art von Sache, um es zu erreichen noch.
Ressourcen
voll Beispiel-Datei
extrahiert binäre aus dem Bereich ich bin interessiert
entschlüsselte Daten In diesem zip-Archiv ist auch eine binäre Liste von Schwimmern, die x,y,z (model2.vertices) und einer binären Liste von Integer-zahlen (model2.Gesichter). Ich habe auch einen "stl" - Datei, die Sie anzeigen können, mit viele Kostenlose Programme, aber wegen der seltsamen Art und Weise der Speicherung der Daten in STL ' s, das ist nicht das, was wir erwarten, um aus der ursprünglichen Datei.
Fortschritt
1. Ich zerlegt das Programm mit Olly, dann Tat das einzige, was ich weiß, wie zu tun an dieser Stelle darauf und "gesucht für alle referenzierten text" nach dem anhalten die porgram, bevor es richtig Einfuhren von Dateien. Dann suchte ich nach Worten, sticht wie "crypt-hash, AES-Verschlüsselung, SHA, etc etc." Ich kam mit ein paar Dinge, vor allem "Blowfish64", die scheint gut mit der Tatsache, dass mydata gelegentlich ist 4 Byte zu lang ist (und da ist es garantiert zu mod 12 = 0) dies ist für mich aussieht Polsterung für 64-bit-block-Größe (ungerade Mengen der vertices in der Folge zu nicht mod 8 Mengen von bytes). Ich fand auch Fehlermeldungen wie...
“Ungültige Daten Größe (Größe-4) mod 8 0 sein muss"
Nach der Lektüre Igors Antwort unten, hier ist die Ausgabe von signsrch. Ich habe aktualisiert das Bild mit dem grünen Punkt, die verursachen keine Probleme, wenn ersetzt durch int3, rot, wenn das Programm nicht starten können, und orange, wenn es schlägt fehl, wenn eine Datei geladen wird, von Interesse. Kein Punkt, bedeutet das, ich habe es noch nicht getestet noch nicht.
Zubehör Info
- Im mit windows 7 64-bit
- viewer.exe ist win32-x86-Anwendung
- Die Daten base64-codiert sowie verschlüsselte
- Das entschlüsselte Daten werden Gruppen von 12 bytes, die 3 floats (x,y,z-Koordinaten)
- Ich habe OllyDb v1.1 mit der findcrypt plugin, aber mein Verbrauch ist beschränkt auf folgenden zusammen mit diesen Jungs youtube-videos
IDA hat eine Technik namens FLIRT, identifiziert bekannte Funktionen. Wenn Sie eine standard-crypto-Bibliothek, die Sie identifizieren könnten, der Algorithmus.
Weil ich war nicht bewusst, zu einem besseren Ort zu Fragen. Ich werde schauen, dass so schnell wie möglich
Ich bin nicht davon überzeugt, dass SuperUser ist besser als StackOverflow für diese Frage. Sie sollten erwägen, security.stackexchange.com zu. Ich bin mir nicht sicher, dass es deutlich besser als SO, aber.
Hmm, ich habe das freeware-IDA, ist FLIRT-builtin oder ein plugin? Ich werde, dass der check out auch.
InformationsquelleAutor patmo141 | 2012-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Viele Verschlüsselungs-algorithmen verwenden, die sehr spezifische Konstanten zu initialisieren, den Status der Verschlüsselung. Sie können überprüfen, ob die Binärdatei Sie mit einem Programm wie signsrch. Wenn Sie keine plausible trifft, öffnen Sie die Datei in IDA und Suche für die Konstanten (Alt-B (binäre Suche) würde hier helfen), dann Folgen Sie Querverweise, um zu versuchen und identifizieren Sie die key(s) verwendet.
Ok, ich verstehe, dass signsrch hat festgestellt, Konstanten, aber wie Suche ich nach Ihnen? Zum Beispiel, die Blowfish-bfp-Tabelle. 00856893 ist, dass die eigentliche Konstante ist oder dass die Position der Konstanten in dem Programm? Ich entschuldige mich für die naive Antwort
Es scheint, um die tatsächlichen Konstanten, die Sie verwenden können, die -L-option. Jedoch, wenn jene zahlen Datei-offsets, die Sie verwenden können, "Jump-Sprung zum Datei-offset" navigieren da.
InformationsquelleAutor Igor Skochinsky
Können Sie nicht unterscheiden, eine gute Verschlüsselung (mit AES XTS-Modus zum Beispiel), die aus zufälligen Daten. Es ist nicht möglich. Versuchen Sie es mit ent zu vergleichen, /dev/urandom Daten und TrueCrypt-volumes. Es gibt keine Möglichkeit, Sie zu unterscheiden voneinander.
Edit: Re-Lektüre Ihrer Frage. Der beste Weg, um zu bestimmen, welche den symmetrischen Algorithmus, hash-Modus verwendet wird (wenn Sie einen Schlüssel für die Entschlüsselung) ist, zu versuchen, Sie alle. Brute-force-Kombinationen möglich sind und Sie haben einige test, um festzustellen, wenn Sie erfolgreich entschlüsseln. Dies ist, wie TrueCrypt mountet ein volume. Es kennt nicht den algo vorher, so versucht es, alle Möglichkeiten und tests, dass die ersten paar bytes entschlüsseln zu WAHREN.
Danke. Option 1: Brute-force mit allen angemessenen Methoden, sobald ich den Schlüssel finden.
InformationsquelleAutor 01100110