Quark-Engine Project Overview¶
The entire Quark-Engine project can be composed of four major parts, namely
- Five-stage rule
- Dalvik Bytecode Loader
- Scoring System
- Self-define objects data structure
Quark module architecture diagram¶
The project is divided into three main folders.
The Objects directory is used to store all the main self define objects, including APK information object, Bytecode object, rule object, variable tracking table object, variable object, and five-stage rule object.
The Evaluator directory is used to store the Dalvik Bytecode Loader. The name comes from the CPython virtual machine used to execute the python bytecode. The Bytecode Loader itself is a huge switch. When the corresponding Bytecode instruction is given, our customized function event will be executed. However, the bytecode instruction does not interact with the CPU, so it is faster than executing Android DEX files dynamically.
The utils directory is used to store repetitive tool code, print output control, and weighted score calculations.