Code as Graph
AST (Abstract Syntax Trees)
: 프로그램 코드의 syntactic structure를 그래프로 표현함
: 고수준의 소스코드를 기계코드로 변환시켜줌
- [Java] javaparser
- Java 1-15 Parser and Abstract Syntax Tree for Java, including preview features to Java 13
- [Java] PropertyGraph
- A library to generate AST, CFG, PDG for Java program
- JDK version 8+
git clone https://github.com/Zanbrachrissik/PropertyGraph java -jar PropertyGraph/out/artifacts/PropertyGraph_jar/PropertyGraph.jar -d src -a
- A library to generate AST, CFG, PDG for Java program
CFGs (Control Flow Graphs)
: 코드가 실행되면서 분기되는 것을 그래프로 표현함
- [Java] PropertyGraph
- A library to generate AST, CFG, PDG for Java program
- JDK version 8+
git clone https://github.com/Zanbrachrissik/PropertyGraph java -jar PropertyGraph/out/artifacts/PropertyGraph_jar/PropertyGraph.jar -d src -c
- A library to generate AST, CFG, PDG for Java program
- [Java] bytecode-to-cfg
- Generation of a Control Flow Graph from a java bytecode using ASM
- [Java] kfg
- Library for building CFG for Java bytecode
- [Smali] Smali-CFGs
- Smali Control Flow Graph's
CPG (Code Property Graph)
:
- [C/C++/Java/Binary/Javascript/Python/Kotlin] joern
- Open-source code analysis platform for C/C++/Java/Binary/Javascript/Python/Kotlin based on code property graphs
- [Java] plume
- Plume is a code property graph analysis library with options to extract the CPG from Java bytecode and store the result in various graph databases.
DDG (Data Dependence Graph)
:
PDG (Program Dependence Graph)
: data 및 control 의존성을 명시적으로 그래프로 표현함
- [Java] accrue-bytecode
- Interprocedural Java byte code analysis framework together with several analyses. Notably includes a multi-threaded points-to analysis (flow-sensitive and flow-insensitive) and a PDG construction analysis.
- [Java] PropertyGraph
- A library to generate AST, CFG, PDG for Java program
- JDK version 8+
git clone https://github.com/Zanbrachrissik/PropertyGraph java -jar PropertyGraph/out/artifacts/PropertyGraph_jar/PropertyGraph.jar -d src -p
- A library to generate AST, CFG, PDG for Java program
- [Java] sourcedg
- System Dependence Graph generation from Java source code
- [Java] TinyPDG
- A library for building intraprocedural PDGs for Java programs
'0x50 Machine Learning' 카테고리의 다른 글
dlerror: cudart64_101.dll not found (1) | 2021.08.01 |
---|