
Lucid ist ein Entwickler-orientiertes IDA-Pro-Plugin zum Erkunden des Microcode von Hex-Strahlen. Es wurde entwickelt, um ein nahtloses, interaktives Erlebnis für die Untersuchung von Mikrocode -Transformationen in der Dekompiler -Pipeline zu bieten.
Dieses Plugin wird nur als Prototyp- und Code -Ressource für die Community gekennzeichnet. Bitte beachten Sie, dass es sich um eine Entwicklungshilfe handelt, kein Allzweck -Reverse -Engineering -Tool.
Besonderer Dank geht an Genmc / @pat0is et al. für die Inspiration.
Lucid ist ein plattformübergreifendes (Windows, MacOS, Linux) Python 2/3 Plugin. Es ist keine Abhängigkeiten von Drittanbietern, so dass der Code sowohl tragbar als auch einfach zu installieren ist.
Führen Sie aus der Python -Konsole Ihres Disassemblers den folgenden Befehl aus, um das Plugin -Verzeichnis zu finden:
os.path.join(idaapi.get_user_idadir(), "plugins") Kopieren Sie den Inhalt des Repositorys /plugins/ Ordners in das gelistete Verzeichnis.
Starten Sie Ihren Disassembler neu.
Dieses Plugin wird nur für IDA 7.5 und neuer unterstützt.
Lucid lädt automatisch für jede Architektur mit einem vorhandenen Dekompiler-Dekompiler. Klicken Sie einfach mit der rechten Maustaste in einem Pseudocode -Fenster mit der rechten Maustaste und wählen Sie View microcode , um den lucid Microcode Explorer zu öffnen.

Standardmäßig synchronisiert der Mikrocode-Explorer mit dem Active Hex-Stray-Pseudocode-Fenster.
Lucid macht es mühelos, Mikroinstruktionen durch die gesamte Dekompiler -Pipeline zu verfolgen. Wählen Sie einfach eine Mikroinstruktion aus und scrollen Sie (oder klicken Sie auf ... wenn Sie müssen) über die Liste der Microcode -Reife -Schicht.

Beobachten Sie, wie sich der Entdecker auf Ihren ausgewählten Anweisungen konzentriert, während die umgebende Mikrocode -Landschaft verschwindet. Es ist im Grunde Magie.
Der Cursorverfolgung kann auf einer Sub-Operand / Sub-Inruction-Ebene funktionieren. Wenn Sie Ihren Cursor an verschiedenen Teilen derselben Mikroinstruktion platzieren, können Sie Unterkomponenten auf ihre jeweiligen Ursprünge zurückführen.

Wenn die Anweisungen an der verfolgten Adresse optimiert werden, wird Lucid versuchen, Ihren Cursor im gleichen ungefähren Kontext zu halten. Es wird die Cursorfarbe von grün nach rot verändern, um den Präzisionsverlust anzuzeigen.
Wenn der Microcode von Hex-Strahlen in der Reife zunimmt, beginnt die Dekompilierungspipeline Mikrocode als Unterantrieb und Unteroperanden, die baumbasierte Strukturen bilden.

Sie können diese einzelnen Bäume anzeigen, indem Sie mit der rechten Maustaste auf einen Anweisungen klicken und View subtree auswählen.
Da dies die erste Veröffentlichung ist, wird es wahrscheinlich eine Reihe kleiner Macken und Fehler. Hier sind einige bekannte Probleme zum Zeitpunkt der Veröffentlichung:
Wenn Sie auf Abstürze oder schlechtes Verhalten stoßen, stellen Sie bitte ein Problem ein.
Zeit und Motivation zulässigen, zukünftige Arbeiten können umfassen:
Ich begrüße externe Beiträge, Probleme und Feature -Anfragen. Bitte stellen Sie an der develop dieses Repositorys Anfragen an, wenn Sie möchten, dass sie für eine zukünftige Veröffentlichung in Betracht gezogen werden.