GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - CodingLi/ByteCodeDL: A declarative static analysis tool for jvm bytecode based Datalog like CodeQL

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

56 Commits
56 Commits

Folders and files

NameName
Last commit message
Last commit date
docs
docs
 
 
example
example
 
 
logic
logic
 
 
neo4j
neo4j
 
 
output
output
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
bdl-logo.png
bdl-logo.png
 
 
docker-compose.yml
docker-compose.yml
 
 
importOuput2Neo4j.sh
importOuput2Neo4j.sh
 
 
neoImportCall.sh
neoImportCall.sh
 
 

Repository files navigation

ByteCodeDL

ByteCodeDL

A declarative static analysis tool for jvm bytecode based Datalog like CodeQL

Why ByteCodeDL

ByteCodeDL这个名字是从CodeQL演化的,ByteCode对应Code,DL对应QL,是一款声明式静态分析工具,主要是为了弥补CodeQL无法直接分析字节码的遗憾。

本项目主要有两个目的:

  1. 教学目的,帮助大家入门静态分析,本项目将演示如何通过datalog实现一些静态分析算法,比起命令式静态分析,这种方式要简洁很多,学习了基本原理之后,也可以自己DIY规则。
  2. 提高挖洞效率,安全研究人员一般拿不到源码,大多数情况只能分析Jar包,然后通过IDEA看反编译之后的代码,效率比较低,希望ByteCodeDL提供的搜索功能、调用图分析功能、污点分析功能,能够提高安全研究人员的挖洞效率。

Install

  1. download or build soot-fact-generator.jar
  2. install souffle
  3. install neo4j

Docker

you can use the docker we builded like docker-compose.yml

Features

  • 搜索功能
  • 调用图分析
    • CHA
    • RTA
  • 指针分析
    • 上下文无关指针分析
    • 一阶上下文调用点敏感指针分析
    • 一阶上下文对象敏感指针分析
    • 一阶上下文类型敏感指针分析
    • 可选择上下文敏感指针分析
  • 污点分析
    • 上下文无关ptaint
    • 上下文敏感ptaint

Usage

见docs文件夹

Plugin

  • IDEA
    • ByteCodeDL helper BDLH
    • Datalog language plugin intellij-datalog

Acknowledgement

  • 感谢南大的李樾和谭添两位老师,通过他们开设的程序分析课程入门了静态分析这一领域。
  • 感谢Doop , 提供了soot-fact-generator.jar 。

About

A declarative static analysis tool for jvm bytecode based Datalog like CodeQL

Resources

Readme
GPL-3.0 license
Activity

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.