Bytecodedl
Uma ferramenta de análise estática declarativa para Datalog baseado em Bytecode JVM como CodeQL
Por que bytecodedl
O nome bytecodedl evoluiu a partir de codeql. O ByteCode corresponde ao código e DL corresponde a QL. É uma ferramenta de análise estática declarativa, principalmente para compensar o arrependimento de que o CodeQL não possa analisar diretamente o bytecode.
Este projeto tem dois propósitos principais:
- O objetivo do ensino é ajudá -lo a começar com a análise estática. Este projeto demonstrará como implementar alguns algoritmos de análise estática através do Datalog. Comparado com a análise estática imperativa, esse método é muito mais simples. Depois de aprender os princípios básicos, você também pode fazer as regras.
- Para melhorar a eficiência da escavação, os pesquisadores de segurança geralmente não podem obter o código -fonte. Na maioria dos casos, eles só podem analisar o pacote JAR e, em seguida, analisar o código descompilado através da Idea. A eficiência é relativamente baixa. Espero que a função de pesquisa, a função de análise de gráficos de chamadas e a função de análise de manchas fornecidas pelo BYTECODEDL possam melhorar a eficiência da escavação para os pesquisadores de segurança.
Instalar
- baixar ou construir fuligem-fact-gerador.jar
- Instale suflê
- Instale neo4j
Docker
Você pode usar o Docker que construímos como o Docker-compose.yml
Características
Uso
Veja a pasta Docs
Apoiar
Que problemas encontrados durante o uso podem ser feitos através
Três maneiras de nos comentar
Plugin
- IDEIA
- ByteCodedl Helper Bdlh
- Plugin de idioma de dados Intellij-Datalog
Reconhecimento
- Graças aos dois professores Li Yue e Tan Tian, da Universidade Nanyang, que introduziram o campo da análise estática por meio do curso de análise do programa que eles ofereceram.
- Graças ao DOOP, a fuligem-generator.jar é fornecida.