Bytecodedl
Ein deklaratives statisches Analyse -Tool für JVM -Bytecode -basierte Datalog wie CODEQL
Warum Bytecodedl
Der Name Bytecodedl wurde aus Codesql entwickelt. Bytecode entspricht dem Code und DL entspricht QL. Es handelt sich um ein deklaratives statisches Analyse -Tool, das hauptsächlich das Bedauern ausgibt, dass CODEQL Bytecode nicht direkt analysieren kann.
Dieses Projekt hat zwei Hauptzwecke:
- Der Unterrichtszweck besteht darin, Ihnen zu helfen, mit statischer Analyse zu beginnen. Dieses Projekt zeigt, wie einige statische Analysealgorithmen über Datalog implementiert werden können. Im Vergleich zur imperativen statischen Analyse ist diese Methode viel einfacher. Nachdem Sie die Grundprinzipien gelernt haben, können Sie auch die Regeln selbst in den Griff bekommen.
- Um die Effizienz des Grabens zu verbessern, können Sicherheitsforscher den Quellcode im Allgemeinen nicht erhalten. In den meisten Fällen können sie das JAR -Paket nur analysieren und dann den dekompilierten Code durch Idee betrachten. Die Effizienz ist relativ niedrig. Ich hoffe, dass die von ByteCodedL bereitgestellte Funktion für Suchfunktion, Aufruf -Graphanalyse und Färbungsanalysefunktion die Effizienz des Grabens für Sicherheitsforscher verbessern kann.
Installieren
- Download oder erstellen
- Souffle installieren
- Installieren Sie Neo4j
Docker
Sie können den Docker verwenden, den wir wie Docker-compose.yml erstellt haben
Merkmale
Verwendung
Siehe den Ordner docs
Unterstützung
Welche Probleme beim Gebrauch auftreten
Drei Möglichkeiten, uns zu feedback
Plugin
- IDEE
- Bytecodedl helfer bdlh
- Datalog Language Plugin Intellij-Datalog
Anerkennung
- Dank der beiden Lehrer Li Yue und Tan Tian von der Nanyang University, die das Gebiet der statischen Analyse durch den von ihnen angebotenen Programmanalysekurs einführten.
- Dank Doop wird Soot-Fact-Generator.Jar zur Verfügung gestellt.