Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

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

License

Notifications You must be signed in to change notification settings

yangbh/ByteCodeDL

Open more actions menu
 
 

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
    • SIMPLE-CHA
    • RTA
  • 指针分析
    • 上下文无关指针分析
    • 一阶上下文调用点敏感指针分析
    • 一阶上下文对象敏感指针分析
    • 一阶上下文类型敏感指针分析
    • 可选择上下文敏感指针分析
  • 污点分析
    • 上下文无关ptaint
    • 上下文敏感ptaint
  • 输出sarif
  • 实现JackEE
  • 性能优化

Usage

见docs文件夹

Support

在使用中遇到什么问题,可以通过

三种途径向我们反馈

Plugin

Acknowledgement

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.