Bytecodedl
Un outil d'analyse statique déclaratif pour le désir de données basé sur les bytecodes JVM comme CodeQL
Pourquoi bytecodedl
Le nom bytecodedl a évolué à partir de CodeQL. ByteCode correspond au code et DL correspond à QL. Il s'agit d'un outil d'analyse statique déclaratif, principalement pour compenser le regret que CodeQL ne peut pas analyser directement Bytecode.
Ce projet a deux objectifs principaux:
- L'objectif de l'enseignement est de vous aider à démarrer avec une analyse statique. Ce projet montrera comment implémenter certains algorithmes d'analyse statique via Datalog. Par rapport à une analyse statique impérative, cette méthode est beaucoup plus simple. Après avoir appris les principes de base, vous pouvez également bricoler les règles vous-même.
- Pour améliorer l'efficacité de la fouille, les chercheurs en sécurité ne peuvent généralement pas obtenir le code source. Dans la plupart des cas, ils ne peuvent analyser que le package JAR, puis regarder le code décompilé via l'idée. L'efficacité est relativement faible. J'espère que la fonction de recherche, la fonction d'analyse des graphiques d'appels et la fonction d'analyse des taches fournies par ByteCoDedl peuvent améliorer l'efficacité de la fouille pour les chercheurs en sécurité.
Installer
- Télécharger ou construire Soot-Fact-Generator.jar
- Installer Souffle
- installer neo4j
Docker
Vous pouvez utiliser le docker que nous avons construit comme docker-compose.yml
Caractéristiques
Usage
Voir le dossier Docs
Soutien
Quels problèmes rencontrés pendant l'utilisation peuvent être faits à travers
Trois façons de nous commentaire
Plugin
- IDÉE
- Bytecodedl Helper BDLH
- Plugin de langue de données Intellij-Datalog
Reconnaissance
- Grâce aux deux enseignants Li Yue et Tan Tian de l'Université Nanyang, qui a présenté le domaine de l'analyse statique à travers le cours d'analyse du programme qu'ils ont offert.
- Merci à DOOP, Soot-Fact Generator.jar est fourni.