Quark-Engine Project Overview
Quark-Engine Map
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.
Objects
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.
Evaluator
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.
utils
The utils directory is used to store repetitive tool code, print output control, and weighted score calculations.