Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
List the APIs as a list of pre-defined ast nodes
Save generic feature result
SMT formula of node ids, interpretable by Z3, allow flexible constraints on the ast nodes https://rise4fun.com/z3/tutorialcontent/sequences
The satisfiability evaluation result, filled after evaluation. True means we will investigate further on this package.
Allow any base_type and match only function name. This is a temporary to dynamic types in scripting languages.
Used in:
,The module name used to include the base class/type
The right value if current ast node is an assign expression
The definition if current ast node is class/function definition
* The arg nodes used for matching APIs, id indicates their index, name/value can be set. (1) If value is specified, the parent node should be kept only if the value matches. (2) If only value/index is specified, the specified args are sinks in taint analysis.
The value of arguments if current ast node is function calls
All the statements related to current ast node
Collect the range/locations of the node
Map each AstNode to a unique number, and allow flexible constraints expressed in SMT.
Each API should either be source, sink or danger. Note: danger APIs are mostly sinks, e.g. rmdir.
Record the accurate functionality for APIs.
Record children of the current node
Whether the base_type can be instantiated or not. This can be used in func_only mode to improve API matching.
Used in:
common types
declarations
references
* Python node types https://docs.python.org/2/library/ast.html https://docs.python.org/3/library/ast.html https://github.com/python-security/pyt/blob/master/pyt/core/node_types.py
* JavaScript node types https://github.com/Kronuz/esprima-python/blob/master/esprima/syntax.py
* Ruby node types https://github.com/whitequark/parser/blob/master/lib/parser/ruby26.y https://github.com/whitequark/parser/blob/master/lib/parser/ast/processor.rb
* Java node types https://github.com/Sable/soot/blob/develop/src/main/generated/jastadd/soot/JastAddJ/ASTNode.java
* Php node types https://github.com/nikic/PHP-Parser/blob/master/grammar/php5.y https://github.com/nikic/PHP-Parser/blob/master/grammar/php7.y
Used in:
Used in:
Used in:
the verbose file name and the relative path with regard to repo root
the file and directory specified in compile_commands
Used in:
Used in:
Runtime dependencies
Development dependencies
Used in:
basic info
host info
execute info
author info
release info
Used in:
Package information
Ast lookup results
Abstract syntax tree for files
Used in:
Calls can affect the results by return value or reference argument
Used in:
Used in:
link to the repository
type can be git/svn/hg etc.
Used in:
Sinks from Susi
Sinks from other sources
Used in:
Used in:
* Types of taint sources and sinks http://blogs.grammatech.com/what-is-taint-checking http://web.cs.iastate.edu/~weile/cs513x/2018spring/taintanalysis.pdf https://www.bodden.de/pubs/rab14classifying.pdf
Used in:
Sources from Susi
Sources from other sources