A declarative static analysis tool for jvm bytecode based Datalog like CodeQL
ByteCodeDL这个名字是从CodeQL演化的,ByteCode对应Code,DL对应QL,是一款声明式静态分析工具,主要是为了弥补CodeQL无法直接分析字节码的遗憾。
本项目主要有两个目的:
- 教学目的,帮助大家入门静态分析,本项目将演示如何通过datalog实现一些静态分析算法,比起命令式静态分析,这种方式要简洁很多,学习了基本原理之后,也可以自己DIY规则。
- 提高挖洞效率,安全研究人员一般拿不到源码,大多数情况只能分析Jar包,然后通过IDEA看反编译之后的代码,效率比较低,希望ByteCodeDL提供的搜索功能、调用图分析功能、污点分析功能,能够提高安全研究人员的挖洞效率。
you can use the docker we builded like docker-compose.yml
- 搜索功能
- 调用图分析
- CHA
- RTA
- 指针分析
- 上下文无关指针分析
- 污点分析
见docs文件夹